摘要:
1. -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly这里跟你的文件名(要配置支持库,window下比较麻烦)2. -XX:+PrintGCDetails打印GC信息3. -XX:+PrintGCTimeStamps打印GC发生的时间4. -XX:+ 阅读全文
posted @ 2019-04-05 20:55
lollong
阅读(178)
评论(0)
推荐(0)
摘要:
1.判断一段代码并发是否线程安全 (1)先执行的代码先发生于后执行的代码(但这只针对于汇编代码,因为java编译器会进行指令重排序, 不过,被synchrnized与volite修饰的代码块与变量不会被重排序,被volite修饰的变量就像一堵墙 下面的代码无法排上去,上面的代码无法排下去) (2)一 阅读全文
posted @ 2019-04-05 20:50
lollong
阅读(291)
评论(0)
推荐(0)
摘要:
对象并不是通过构造方法构造的,只是通过构造方法来//以程序员自己的意愿进行赋值而已,真正创建对象的是通过new来创建对象的,//并且紧接着就会进行默认初始化与显式初始化,有继承父类的话,就是父类对象先被 //创建出来,然后就初始化,再调用子类的构造方法,至于为什么父类对象实例化了后 //没有直接掉父 阅读全文
posted @ 2019-04-05 20:48
lollong
阅读(300)
评论(0)
推荐(0)
摘要:
1.new String的过程浅析 字符串常量是保存再常量池中的,直接通过赋值的形式的话,就会直接在常量池里找看有没有,有就直接指向这个常量 Eg:String s = “long”; 但如果是通过new关键字来创建对象的话,就会先开辟一片内存空间后,再把类里的Value指向常量池中,所以这样的两个 阅读全文
posted @ 2019-04-05 19:52
lollong
阅读(172)
评论(0)
推荐(0)
摘要:
1.Arrays.toString() 实际调用的是每个对象的toString()方法 2.Arrays.sort() 有几种重载的方法,针对每一种基本类型,除了Blooen,如果要对对象排序就需要传递一个Comparator的实现类对象,String类有一个预定义的可以忽略大小写的比较器对象,他实 阅读全文
posted @ 2019-04-05 19:52
lollong
阅读(227)
评论(0)
推荐(0)
摘要:
参考自《java的编程逻辑》 1.自动装拆箱 每个包装类都有静态方法ValueOf()可以输入一个基本数据类型返回一个对应的包装类的对象引用,而每个对象也有对应的实例方法xxxValue()来取得对应的包装类对象的基本数据类型. 2..ValueOf()与xxxValue()的实现细节 通过new 阅读全文
posted @ 2019-04-05 19:51
lollong
阅读(311)
评论(0)
推荐(0)
摘要:
1.函数调用 调用一个新函数会开辟一个新栈帧来保存自己的返回地址与局部变量与逻辑代码. 2.动态绑定 在编译期间不确定函数是哪个对象的,在运行期间通过类的虚方法表来查看子类是否有此方法,没有则一层一层向上查找.所有的除了变量与final与private修饰的方法是静态绑定的其他的方法是动态绑定. 3 阅读全文
posted @ 2019-04-05 19:49
lollong
阅读(127)
评论(0)
推荐(0)