上一篇博客讲到String对象一旦被创建该内容就不能被修改了如: String s = "hello world"; s.substring(6); s.replace("hello","hi"); String s1 = s+"java"; System.out.println(s);//结果:hello world String中的方法只是返回新的字符串,并不改变原来的String对象 System.out.println…
一.字符串的不变性: 文章使用的源码是jdk1.8的.(下同) 1.首先可以看到`String`是`final`类,说明该类不可继承,保证不会被子类改变语义 2.String的值实际上就是一个字符数组对象,字符数组成员变量`value`使用`final`修饰,说明该引用地址不变(不可指向其他对象)但是该数组对象本身是可以改变的,同时`value`使用private 修饰,String中也没有提供可以让外部访问该属性的方法,所有返回类型为String的方法,都只是返回了新的String对象,例如如…
字符串相关类: String, StringBuffer String类为不可变的字符序列 String s1="hello"; String s2="hello"; System.out.println(s1==s2); //true s1=new String("hello"); s2=new String("hello"); System.out.println(s1==s2); //false System.out.p…
1.String.StringBuffer.StringBuilder三者的对比String:不可变的字符序列:底层使用char[]存储StringBuffer:可变的字符序列:线程安全的,效率低:底层使用char[]存储StringBuilder:可变的字符序列:jdk5.0新增的,线程不安全的,效率高:底层使用char[]存储 2.StringBuffer与StringBuilder的内存解析以StringBuffer为例:String str = new String();//char[]…
Stringbuffer.StringBuilder String.StringBuffer.StringBuilder三者的异同? String:不可变的字符序列:底层使用char[]存储 StringBuffer:可变的字符序列:线程安全的,效率低:底层使用char[]存储 StringBuilder:可变的字符序列:jdk5.0新增的,线程不安全的,效率高:底层使用char[]存储 源码分析: String str = new String();//char[] value = new c…
1.  系统类 java.lang包   System类 sys.out;sys.exit;sys.gc; sys.currentTimeMillis();----得到从1970-01-01到当前时间的毫秒数,long型 sys.getProperties();&sys.getProperty();user.dir确定&得到当前工程的工作目录,String型 2.  日期类 java.util包     Date类 @Deprecated——> 方法前加上该注解,表示该方法已过时,有…
一.Java Number & Math 类: 1.Number类: 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等.然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形.为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类.所有的包装类(Integer.Long.Byte.Double.Float.Short)都是抽象类 Number 的子类. 这种由编译器特别支持的包装称为装箱,所以当内置数据…
StringBuffer 类: 1. java.lang.StringBuffer 代表可变的字符序列: 2. StringBuffer 和 String 类似,但是 StringBuffer 可以对其字符串进行改变: 3. StringBuffer 类常见的构造方法: 3.1 StringBuffer() 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符.: 3.2 StringBuffer(String str) 创建一个 StringBuffer 对象,包含与 String 对…
[StringBuffer]   <1>java.lang.StringBuffer代表可变的字符序列. <2>StringBuffer和String类似,但是StringBuffer可以对其字符串进行改变. <3>StringBUffer类的常见构造方法:        StringBuffer();        //创建一个不包含字符串序列的"空的"StringBuffer对象        StringBuffer(String str);…
集合 Collection:集合顶层接口 AbstractCollection:集合抽象类 关联数组 Map:顶层接口 AbstractMap:抽象类实现,提供了子类的通用操作 HashMap:哈希表实现,并发非安全 IdentityHashMap:根据==判断key相等的哈希表 LinkedHashMap:能够记录访问或者插入顺寻的哈希表,在拉链结构的基础上多了一个链表结构 Properties:属性文件类 SortedMap:排序接口 EnumMap:以枚举类型作key的map实现,内部采用…