java基础(三)

时间:2023-03-08 19:18:37

1、枚举类,使用enum定义的枚举类默认继承java.lang.Enum,而不是Object类。枚举类的所有实例必须在枚举类中显示列出,否则这个枚举类永远都不能产生实例。相关内容较多,需要后续继续跟进。枚举类里定义抽象方法时无需显示使用abstract关键字将枚举类定义成抽象类,但因为枚举类需要显示创建枚举值,而不是作为父类,所以定义每个枚举类时必须为抽象方法提供实现。

2、java垃圾回收只会回收heap当中的对象,不会回收任何物理资源。垃圾回收机制回收任何对象之前,只会先调用finalize方法,对象在堆内存中,存在三种状态:激活状态、去活状态、死亡状态。两个强制系统垃圾回收的方法:System.gc()

和Runtime.getRuntime().gc()。在强制垃圾回收时,也不能确定系统什么时候回收垃圾,也就是说这时候如果显式的在finalize方法中做相关操作时并不总是有效,可能还没等到finalize方法执行进程已经结束。

3、java中的引用,分为强引用、软引用、弱引用、虚引用。目前未见到软引用、弱引用、虚引用的使用,以后碰到再分析

4、修饰符范围总表

修饰符适用范围总表
  顶层类/接口 成员属性 方法 构造器 初始化块 成员内部类 局部成员
public    
private      
protected      
包访问控制符
abstract        
final      
static      
strictfp        
synchronized            
native            
transient              

5jar打包

创建JAR文件:不显示压缩过程jar cf XX.jar XX  显示压缩过程 jar cvf XX.jar XX

查看JAR文件内容:jar tf test.jar  详细内容  jar tvf test.jar

解压JAR文件:jar xf test.jar  带提示信息解压 jar xvf test.jar

更新JAR文件:jar uf test.jar XX.class 更新时显示详细信息 jar uvf test.jar XX.class

问题描述:HelloDate目录下有HelloDate.class、HelloDate.java文件,利用jar命令将文件夹HelloDate打包成test.jar,修改MAINFEST文件后用java -jar运行提示“wrong name“的错误?

问题解决:HelloDate.java文件在编写时未使用Package打包,生成的HelloDate.class无文件目录信息,因此报错。有两种解决方法;

(1)生成jar文件时,使HelloDate.class位于jar的根目录下

(2)在HelloDate.java中使用Package打包,用jar命令打包生成的Package文件夹

问题总结:产生这个问题的原因还是文件目录的问题,由此可以看出Package的重要性,在以后的编码过程中要注意代码文件与class文件的管理,用好Package,另外若编写的程序是纯控制台运行的话,使用javaw,或双击jar是无法看到输出结果的