1.&& 为前一个条件为false则不再判断下一个条件
2.程序员无法明确强制垃圾回收期运行,system.gc(),提醒程序员希望进行一次垃圾回收
3.重构,方法名相同,参数类型,参数数量,参数次序不同
4.字符串通过new Stirng("","GBK")解码GBK编码的字符串
getBytes("UTF-8")得到UTF8编码的字节数组
5.
java虚拟机栈描述的是java方法执行时候的内存概念模型
(每个方法执行的时候都会创建一个栈帧,用来存放这个方法的操作数栈,局部变量表,方法出口,动态链接等信息)
特征:
.线程私有
.后进先出(LIFO)栈
.存储栈帧,支撑java方法的调用执行和退出
.可能出现OutOfMemoryError异常和StackOverflowError异常
区别: java虚拟机是为了执行java字节码文件所服务的
本地方法栈是为了执行本地Native方法所服务
6.Java线程之间的通信由Java内存模型(简称为JMM)控制,JMM决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存,写缓冲区,寄存器以及其他的硬件和编译器优化
volatile具备可见性,不具备原子性
可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。
this引用逃逸,可能造成final不可见
7.java函数中虚函数不可能是static
8.八进制 中8 二进制 :1000
八进制:010
十六进制:0x8
9. 方法执行的过程 父类的静态变量-父类的静态代码块 子类的静态变量-子类的静态代码块 父类的非静态变量-父类的非静态代码块-父类的构造函数 子类的非静态变量-子类的非静态代码块-子类的构造函数 规律就是 父类先于子类 静态的先于非静态的 变量先于代码块
10.ObjectOutputStream和ObjectInputStream 能够对对象进行传输
11.TreadLocal使用哈希表来保存线程本地变量,此类保证了各个线程间数据安全。 |