1、final 可以修饰属性,方法,类。修饰方法表示该方法不可被覆盖(重写)
2、final 修饰属性时,指的是引用不可变,Java初始化顺序:先静态,父类优于子类先初始化,成员变量优于方法先初始化。子类初始化时,默认优先调用父类构造方法
3、基本数据类型:byte(1) boolean(1)short(2)char(2)int(4)float(4)long(8)double(8)
4、finalize 方法:属于object类的方法。在垃圾收集器执行的时候会调用对象的finalize()方法,然后在下一个回收动作才真正回收对象所占内存。链接http://blog.youkuaiyun.com/shanghui815/article/details/6787855
6、字节码:字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。Java源代码编译后产生字节码,再由jvm解释和运行。
7、静态方法属于类,不属于实例。静态方法(类的方法),非静态方法(实例的方法)
8、Java对于8个基本类型,是采用类似于值传递,不会改变实际参数的值。而对于其他类,则是引用传递,可以改变实际参数的值,不能改变实际参数的参考地址。如demo(StringBuffer str , int n)
9、静态方法中不能出现this关键字。在类方法中可以用this调用本类方法(错)
10、原生类就是8中基本数据类型
11、
位(bit)
来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只可以表示0和1两种状态;两个二进制位可以表示00、01、10、11四种状态;三位二进制数可表示八种状态……。字节(Byte)
字节来自英文Byte,音译为“拜特”,1字节=8位。- Unicode用两个字节(2Byte)表示一个中文,即用16个位表示一个中文(16bit)
- 原码,反码,补码:正数的补码就是原码。负数的补码是取反在加1。这样的好处是:1. 0的表示不管是原码还是补码都是00000000
- 2.补码相加就是两个数的和或差。
12、short(2Byte=16bit)的表示范围是:(-2^15~2^15-1)。byte的表示范围是 -128~127.(-2^7~2^7-1).因为计算机是用补码表示数字,最后一位是1表示负数。-128二进制表示是10000000,补码(取反再加一)也是10000000 。而127二进制是 01111111。
13、内存泄漏:指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。
14、并行和并发的区别:
你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。
并发的关键是你有处理多个任务的能力,不一定要同时。
并行的关键是你有同时处理多个任务的能力。
所以我认为它们最关键的点就是:是否是『同时』。
15、构造块:比构造方法先执行,new 时执行。静态块:类加载时执行,只执行一次,new 时不执行。
private static t=new 类; 可以把它当成一个静态块