1、包装类与基本类型之间可以转换
字符串转换为基本类型的两种方式:利用包装类提供的parseXxx(String s)静态方法(除Character之外的所有包装类都提供了该方法);利用包装类提供的Xxx(String s)构造器。
2、基本类型和“”进行连接,系统会自动把基本类型变量转换为字符串。
3、常量池用于管理在编译期被确定并被保存在已编译的class文件中的一些数据,包括类、接口、方法中的常量,还包括字符串常量。JVM常量池保证相同的字符串直接量只有一个,不会产生多个副本。
4、String的equals()方法判断两个字符串是否相等的标准:只要两个字符串包含的字符序列相同,比较则返回true.
5、单例(singleton)类:一个类始终只能创建一个实例。
6、final修饰的类属性,实例属性能指定初始值得地方:
类属性:必须在静态初始化块中或声明该属性时指定初始值。
实例属性:必须在非静态初始化块,声明该属性或构造器中指定初始值。
7、与普通成员变量不同,final成员变量(包括实例和类的)必须由程序员显示初始化,系统不会对final成员进行隐式初始化。
8、final修饰基本类型变量与修饰引用类型变量的区别:
当修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变。
对于引用类型变量,保存的仅仅是一个引用,final只保证这个引用类型变量所引用的地址不会改变,即一直引用同一个对象,但这个对象可以发生改变。
9、接口不能直接创建实例,但是接口可用于声明引用类型变量。这个引用类型变量必须引用到其实现类的对象。
10、接口体现的是遵循的一种规范。抽象类体现的是一种模板式设计,可以当作系统实现过程中的中间产品。
11、非静态内部类的成员可以访问外部类的private成员,但是反过来不成立。即,非静态内部类的成员只在非静态内部类范围内是可知的,并不能被外部类使用。如果外部类需要访问非静态内部类的成员,则必须显示创建非静态内部类对象来调用访问其实力成员。
12、java不允许在非静态内部类里定义静态成员。
13、静态内部类:即是用static修饰一个内部类。static的作用是将类的成员变成类相关,而不是实例相关。
java还允许在接口里定义内部类,接口里定义的内部类默认使用public static修饰,即只能是静态内部类。
在外部类以外的地方定义内部类(静态和非静态两种)变量的格式:OuterClass.InnerClass varName;
在外部类以外的地方创建内部类的实例的语法:OuterInstance.new InnerConstructor();使用外部类的实例和New来调用内部类的构造器。
14、对于局部成员而言,不管是局部变量还是局部内部类,它们的上级程序单元都是方法,而不是类,使用static修饰没有任何意义。如果需要用局部内部类定义变量,创建实例或派生子类,那么都只能在局部内部类所在的方法内进行。
15、匿名内部类:适合创建只需要一次使用的类,创建时会立即创建一个该类的实例。因此,匿名内部类不能重复使用。规则:匿名内部类不能使抽象类,匿名内部类不能定义构造器,可通过实例初始化块来完成构造器的任务。
16、如果匿名内部类需要访问外部类的局部变量,则必须使用final来修饰外部类的局部变量,否则系统将报错。
17、闭包是一种能被调用的对象,它保存了创建它的作用域信息。回调:即是允许客户类通过内部类引用来调用其外部类的方法。
18、枚举类:通过private将构造器隐藏起来;把这个类的所有可能实例都使用public static final修饰的类变量来保存;如果有必要,可以提供一些静态方法,允许其他程序根据特定的参数来获取与之匹配的实例。
19、一个java源文件中最多只能定义一个public访问权限的枚举类,且该java源文件也必须和该枚举类的类名相同。
所有的枚举类都提供了一个values方法,该方法可以很方便地遍历所有的枚举值。
20、垃圾回收机制的特征:
a、垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(数据库连接,网络Io等资源)
b、程序无法精确控制垃圾回收的运行,垃圾回收会在合适的时候进行。
c、在垃圾回收机制回收任何对象之前,总会先调用它的finalize()方法,该方法可能使该对象重新复活,从而导致垃圾回收机制取消。
21、强制垃圾回收:调用System类的gc()静态方法System.gc();调用Runtime对象的gc()实例方法Runtime.getRuntime().gc().
22、系统无法通过虚引用来获得被引用的对象。
23、如果想让浮点运算更加精确,就可以使用strictfp关键字来修饰类、接口和方法。native关键字主要用于修饰一个方法,类似于一个抽象方法,但是采用C语言实现。
24、关键字注意点:abstract和final不能同时使用,abstract和static不能同时使用,abstract和private不能同时使用。
25、jar(Java Archive File):java档案文件。JAR与ZIP的区别:JAR中默认包含了一个META-INF/MANIFEST.MF的清单文件,这个清单文件是在生成JAR文件时由系统自动创建的。