1. gc?如何控制gc?编程时需要注意些什么?
gc无法控制,就算写finalize()方法也没用.不要频繁new,能复用的要复用,包括使用static
2. final如何使用?何时需要使用?用final修饰的变量能不能改变?
修饰类,修饰方法,修饰变量,基本类型不能改变值,对象类型不能改成其他对象,但能改变该对象的内容
3. java中socket的使用,如何非阻塞?
nio相关
4. jni相关,何时需要用jni?
本地接口,要求效率,java无法实现时,我的感觉是需要释放内存时,可以自己控制内存
5. 内部类相关
好多种内部类,内部类在vm中是如何实现的,非static内部类可以使用外部类对象的任何成员,因为内部类保有外部类对象的句柄(handle)
static内部类基本只是一个访问权限的问题
非static内部类(局部,如在函数中定义),使用局部变量时,局部变量需要使用final修饰,拷了一个局部变量的handle进去,用final修饰改局部变量,保证内部类使用时与外部使用同一个值(基本类型)或者对象
6. 线程相关
7. 容器类相关注意,list,array,map
8. 数据类型,基本类型及其他,handle,object,内存问题
基本类型不在堆上
所有的object都是在堆上,需要用new来产生,而且无法主动回收
9. String类相关
String对象是不可变的,变的假象是新产生的String对象,如果要变,可以使用StringBuilder,StringBuffer(线程安全,重量级)
gc无法控制,就算写finalize()方法也没用.不要频繁new,能复用的要复用,包括使用static
2. final如何使用?何时需要使用?用final修饰的变量能不能改变?
修饰类,修饰方法,修饰变量,基本类型不能改变值,对象类型不能改成其他对象,但能改变该对象的内容
3. java中socket的使用,如何非阻塞?
nio相关
4. jni相关,何时需要用jni?
本地接口,要求效率,java无法实现时,我的感觉是需要释放内存时,可以自己控制内存
5. 内部类相关
好多种内部类,内部类在vm中是如何实现的,非static内部类可以使用外部类对象的任何成员,因为内部类保有外部类对象的句柄(handle)
static内部类基本只是一个访问权限的问题
非static内部类(局部,如在函数中定义),使用局部变量时,局部变量需要使用final修饰,拷了一个局部变量的handle进去,用final修饰改局部变量,保证内部类使用时与外部使用同一个值(基本类型)或者对象
6. 线程相关
7. 容器类相关注意,list,array,map
8. 数据类型,基本类型及其他,handle,object,内存问题
基本类型不在堆上
所有的object都是在堆上,需要用new来产生,而且无法主动回收
9. String类相关
String对象是不可变的,变的假象是新产生的String对象,如果要变,可以使用StringBuilder,StringBuffer(线程安全,重量级)
10.包,访问权限控制
并推荐Java程序员仔细阅读的经典Java书籍:《core java》《thinking in java》(所有的thinking系列的书好像都较难)
或许这是一个C、C++程序员眼中的java的关键点,但相信的是,这些内容不能理解的很透,那就无法写出高质量的java代码