java中的字符串String

一、String简介d

参考:https://www.cnblogs.com/zhangyinhua/p/7689974.html

String类代表字符串。 java.lang.String:

Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。 字符串String的值在创建后不能被更改

String源码

 1 /** String的属性值 */
 2     private final char value[];
 3
 4     /** The offset is the first index of the storage that is used. */
 5     /**数组被使用的开始位置**/
 6     private final int offset;
 7
 8     /** The count is the number of characters in the String. */
 9     /**String中元素的个数**/
10     private final int count;
11
12     /** Cache the hash code for the string */
13    /**String类型的hash值**/
14     private int hash; // Default to 0
15
16     /** use serialVersionUID from JDK 1.0.2 for interoperability */
17     private static final long serialVersionUID = -6849794470754667710L;
18     /**
19      * Class String is special cased within the Serialization Stream         Protocol.
20      *
21      * A String instance is written into an ObjectOutputStream according to
22      * <a href="{@docRoot}/../platform/serialization/spec/output.html">
23      * Object Serialization Specification, Section 6.2, "Stream Elements"</a>
24      */
25
26   private static final ObjectStreamField[] serialPersistentFields =
27         new ObjectStreamField[0];

创建字符串的3+1种方式:

public String(); 创建一个空白字符串

public String(char[] array); 根据字符数组的内容,来创建对应的字符串

public String(byte[] array); 根据字节数组的内容,来创建对应的字符串 一种直接创建

原文地址:https://www.cnblogs.com/liufeng1618/p/12158707.html

时间: 2024-11-10 07:37:08

java中的字符串String的相关文章

Java中的字符串-String &amp; StringBuilder

引言: 操作系统课程上学习的生产者消费者模型可以说是学习并发的最好例子.这里需要注意Java不支持进程,只支持多线程.本篇文章将以一个最简单的生产者消费者模型进行Java并发的讲解.学习了本篇博文你应该学会了一下几个内容 1. 多个线程如何正确并发对一个变量进行读和写 2. 生产者消费者模型的实现 Java并发: 上文说了Java中没有进程只有线程,所以Java的并发只涉及到线程.在Java里可以通过两种方法创建一个线程,第一种为继承Thread类,第二种为实现Runnable接口.两种方法个人

JAVA中,字符串STRING与STRINGBUILDER的效率差异

如果可变字符串操作较多的话,用STRINGBUILDER显然优势得多. public class HelloJava { public static void main(String[] args) { // TODO Auto-generated method stub String str = "a"; long starTime = System.currentTimeMillis(); for(int i = 0; i<10000;i++){ str = str + i;

Java中的字符串常量池

最近做到一个题目: 问题:String str = new String("abc"),"abc"在内存中是怎么分配的?    答案是:堆,字符串常量区. 题目考查的为Java中的字符串常量池和JVM运行时数据区的相关概念."abc"为字面量对象,其存储在堆内存中.而字符串常量池则存储的是字符串对象的一个引用. Java中的字符串常量池 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid&qu

protobuf在java中的字符串化

最近由于项目需要,大致研究了一下protobuf的java使用.说实话,习惯了C++的protobuf,java用起来真别扭. 由于需要将protobuf序列化后,存入redis,而且redis没法直接存储非字符串的数据,所以我只能想办法将protobuf序列化成字符串. protobuf的java实现里,并没有直接序列化成String类型变量的方法,但是提供了toByteArray()方法,可以序列化成byte[]. 于是乎很容易想到可以这么做: byte[] raw_bytes = prot

java学习-关于字符串String

有必要总结记录一下java的学习,否则,永远只是记忆碎片化和always google(费时) 刚好,小伙伴给了一份自己做的review,在学习的过程中,update一下自己的见解和学习内容: 关于String: 1 package string_keywords; 2 /** 3 * 参考url: http://developer.51cto.com/art/201106/266454.htm 4 * 5 * 常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.cla

Java中如何将String转成Date

Java中如何将String转成Date 最近在开发Json数据反序列化为Java对象的时候发现spring mvc 和 Jackson 对Date类型对支持不是特别好,虽然在Java对象序列化为Json数据的过程中提供了便利的注解,但是反序列化却没有,于是就引出了下面的问题,我需要手工的将字符串转换为Date类型的数据,java.text.SimpleDateFormat 为我们提供了这种转换的基础设施.如下列出了的格式化模式的简单定义,如果 ‘M’ 大于等于3位, 月份会显示为字母,否则是数

[转]java中的字符串相关知识整理

字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果写过C/C++的应该就了解,在字符串的操作上会有许多操作的函数与类,用于简化代码的开发.一方面是因为字符串在代码中会频繁用到,另一方面是因为字符串的操作非常麻烦. 最初我知道String的特殊待遇就是在delphi中,因为String在delphi里是一个关键字存在,与其他的基本类型是不一样的.那时

Android学习笔记----Java中的字符串比较

用习惯了C#.C++,在做字符串比较时想当然地使用如下语句: 1 string str1 = "abcd", str2 = "abcd"; 2 if(str1==str2) 3 { 4 return true; 5 } 6 else 7 { 8 return false; 9 } 殊不知在Java中,两个String类型的变量,尽管字符相同,使用”==“进行比较,也会返回false. Java中进行字符串比较需采用String类型的equals方法: 1 Strin

JAVA中创建字符串的两种方式的区别

我们知道,通常在Java中创建一个字符串会有两种方式,通过双引号直接赋值和通过构造器来创建. String x = "abcd"; String y = new String("abcd"); 然而,这两种方式之间的区别是什么?分别应用于哪些情况,之前还不是很懂. 1.双引号的方式 String x = "abcd"; String y = "abcd"; System.out.println(x==y);//true Sys