前言
最近在补充自己的java基础知识,研究生毕业可能从事开发工作,所以希望早点对这方面知识进行补充。最近在阅读《java程序员从菜鸟到笨鸟》和《疯狂Java讲义》。
知识总结
一、根据CLASSPATH环境变量定位类
在刚开始学习java,教程中给的配置环境变量的过程中几乎都会让配置CLASSPATH环境变量,但从来不给为什么要配置。原因是:
在使用“java Java类名”命令来运行java程序的时候,JRE无法搜索到java类,需要配置CLASSPATH中的(.)表示在当前路径下执行,此外,还需要JDK中lib下的dt.jart和tools.jar工具包,所以需要把这两个文件添加到CLASSPATH环境变量中。但是在java 1.5以上版本中,java就不需要配置CLASSPATH也能够运行java程序。
二、java内存回收机制
java程序的内存分配和回收都是由JRE在后台自动进行。JRE挥挥手那些不再使用的内存。通常JRE会提供一个后台线程来检测和控制,一般都是在CPU空闲或者内存不足的时候自动进行垃圾回收。
垃圾回收的过程:在Java中,当没有引用变量指向原先分配给某个对象的内存时,该内存便成为垃圾,JVM的一个超级线程会自动释放该内存区。
因此,在编写java程序时,一个基本原则:对于不再需要的对象,不要引用它们。因为如果一直保持对对象的引用,垃圾回收机制不会回收该对象。
三、文档注释
如果在编写Java源代码时,添加了合适的文档注释,可以通过JDK提供的javadoc工具将源代码的文档注释提取成一份系统的API文档。
javadoc工具只处理文档原文件中在类、接口、方法、成员变量、构造器和内部类之前的注释。
注释格式是:以(/*)开头,以(\/)结尾。具体格式如下:
javadoc基本命令:
1 | javadoc 选项 Java源文件|包 |
四、数组
1、数组的两种定义方式:
1 | type[] arraytname |
2、初始化:
在声明完数组织后,并没有为数组分配内存,需要进一步进行数组的初始化。
1 | int[] intarr; |
3、数组深度理解:
数组引用变量只是一个变量,数组对象上存储在堆内存区中,而数组引用变量存储在栈内存中。
五、面向对象
1、类的定义:
1 | [修饰符] class [类型]{ |
2、类的方法:
(1)方法重载:
方法重载要求:”两同一不同”—同一个类中的方法名相同,参数列表不同。返回值类型、修饰符与重载无关。
3、成员变量:
(1)成员变量和局部变量:
(2)注意:
在访问类变量的时候,尽量使用类来进行访问而不是使用对象进行访问,容易造成歧义。
(3)隐藏和封装:
4、package、import和import static:
包:引入包机制,提供了类的多层命名空间,用于解决类的命名冲突、类文件管理等问题。
1 | package packageName; |
5、深入构造器
(1)如何在一个构造器中调用里一个构造器
1 | public class Apple |
6、继承
JAVA继承的特点是单继承,每一个子类只能有一个直接父类,使用关键字extends。
(1)方法重写
遵循”两同两小一大”:方法名相同、形参列表相同、子类方法返回值类型比父类方法返回值类型更小或者相等。
(2)在子类中使用父类的方法:super关键字。
(3)instanceof 运算符 :判断一个对象是否是一个类。