1。指令集分为精简指令集和复杂指令集,一个精简指令能完成多个复杂指令集完成的任务,但是编译器复杂
2。java没有寄存器,数据是放在栈里面
3。java是解释执行的,比编译执行差10倍。java首先会编译成字节码,然后解释执行。
4。JVM不能调用平台相关的程序,如注册表,如需要调用需要使用C.
5。JDK=java开发工具包 包括javac,jar,applicationviewer,
6。UTF-8 变长的字符集,用三个或者四个字节表示一个中文字符,用一个字节表示一个英文字符.同ISO8859兼容.
UTF-16 定长的字符集,用两个字节表示一个字符。和ISO,ASC码不兼容。
7。static变量有可能会造成内存泄漏。在不同的类加载器里,Static变量会有两份。
8。克隆 克隆分为深克隆和浅克隆
浅克隆:只是copy引用,引用还是指向同一个对象。
深克隆:重新copy一份对象。
9。序列化: 使得对象变成字节在网络上传播
static变量不能被序列化
不想序列化的用transition申明
序列化ID表示版本号
10。重写equals方法的时候,也需要重写hashcode方法。
11。static变量在多个类加载器加载的时候值会发生变化, 所以在做负载均衡的时候,不要使用static变量缓存数据。
12。异常分为check异常和uncheck异常,check异常就是EXCEPTION,强制需要用户处理,uncheck异常就是RuntimeException,不强制用户处理。