Java基本语法
StubbornAnt
这个作者很懒,什么都没留下…
展开
-
Java String不可变
String是否相等==判断的是对象的内存起始地址是否相同,equals判断自定义的语义是否相同JVM为了提高内存效率,将所有不可变的字符串缓存在常量池中,当有新的不可变的字符串需要创建时,如果常量池中存在相等的字符串就直接将引用指向已有的字符串常量,而不会创建新对象new创建的对象存储在堆内存,不可能与常量区的对象具有相同地址public class Demo { public st原创 2016-05-26 17:42:13 · 531 阅读 · 0 评论 -
Java 类初始化顺序
初始化时机初始化分为类变量的初始化与对象的初始化两个相对独立的过程类变量的初始化在程序中第一次用到该类时 类变量的初始化过程:首先将静态变量定义时的初始化语句放到静态初始化块的开始部分,然后从该类的原始祖先开始依次向下执行每个类的静态初始化块对象的初始化发生在创建对象时 对象的初始化过程会先将类的定义成员变量时的初始化语句及非静态初始化块都放到构造函数的开始部分,然后从该类的原始祖先开始依次原创 2016-06-07 16:24:50 · 498 阅读 · 0 评论 -
java移位运算
三种移位运算>>>逻辑右移,没有具体的数学意义>>算术右移,对正数,在不越界的情况下相当于除以二,对负数在不越界的情况下相当于余数为1的除以二(通常负数除以正数,余数应该为负数)<<左移位,无论对于整数负数,在不越界的情况下相当于除以二移位会对所有位(包含符号位)进行移动,左移时低位补零,右移时,>>符号位移走后,高位补原符号位,>>>高位补零示例public class Demo {原创 2016-06-12 12:15:13 · 468 阅读 · 0 评论 -
Java基本类型数组转ArrayList
先来看源码当我们调用Arrays.asList(array) 时,实际是执行了包可见的ArrayList的构造函数(注意通常这个构造函数对用户是不可见的,所以不能通过List list = new ArrayList(array)来进行转换)由于a是一个E[]数组,E又是ArrayList的泛型,所以我们传入的实参array必须是对象数组,或者对象列表如果传入的是基本类型数组,整个数组会被当做原创 2016-05-26 10:29:26 · 2232 阅读 · 0 评论 -
java System.arraycopy
概要System.arraycopy(src, srcPos, dest, destPos, length)是系统提供的native方法,将src数组从srcPos开始copy到dest数组从destPos的位置,复制长度length数组copy到自身时并不会覆盖实例注意当copy数据到原数组时并不会因为1覆盖掉2后而使得后面的复制内容全部为1,由于是native方法,无法查看源码,猜想其实现原创 2016-06-16 15:23:23 · 577 阅读 · 0 评论 -
java 序列化机制深度解析
概要序列化机制允许将实现序列化的Java对象转换为字节序列,这些字节序列可以被保存在磁盘上或通过网络传输,以备以后重新恢复原来的对象,序列化机制使得对象可以脱离程序的运行而独立存在 可序列化的类包括:实现了Serializable的类,数组,枚举,String类也是可序列化对象由于序列化保存的是对象的状态,因此不会保存类的静态变量 -通过ObjectOutputStream和ObjectIn原创 2016-06-17 11:02:13 · 2346 阅读 · 0 评论