1.java垃圾回收机制 GC(了解)
a.什么是垃圾? 没有任何引用的实体对象就是垃圾
b.什么时候回收 jvm来决定
程序可以建议立即回收,
如何建议:System.gc() Runtime.getRuntime.gc();
但是是否立即回收都由 jvm决定
jvm回收垃圾之前会调用对象finalize方法
这个方法只会被调用一次,显示的去调用无效
不建议去重写finalize方法,也不建议去干扰jvm处理垃圾回收
让jvm自己管理即可
2.java异常处理机制
java中已经多所有的错误进行了分门归类
两大类
java.lang.Error 系统级错误,程序无法处理
java中对其它的所有错误做了更细致的分类,都是Error的子类
java.lang.Exception 异常 通过程序可以进行处理
java中对Exception也做了更细致的分类,都是Exception的子类
这两个类都继承了java.lang.Throwable类
java中的异常有可以分为两类
一类是jvm能自动帮我们处理的,当然自己也可以处理RumtimeException类及其子类
还有一类是jvm不不能帮我们处理,必须我们自己处理,否则程序编译都不通过
补充:命令行参数 主函数需要的参数
在eclipse中如何输入命令行参数,右击代码 Run as--->Run Configurations--->Arguments
--->填写命令行参数,中间空格隔开
每种类型的异常产生都是一个具体的异常类的对象产生了
异常中的五个关键字 try catch finally throw throws
如果自己处理异常一般来说会把可能会产生异常的代码片段放入
到try块中 catch 中处理异常,处理的时候类型一定要能匹配上
try后可以跟多个catch注意的子类一定要放在父类的前面
Exception可以处理所有异常 但是可能会倒置提示异常信息并不精确和友好(平时写程序可以这样,做项目的时候要细致处理)
finally 关键字
throw关键字 在某种情况下,人为制造出异常
throws关键子,回避异常,使自己的程序能够通过编译
子类重写父类方法时,不能回避比父类方法中回避的更多的异常,只能
少,或者多出jvm能自动捕捉的异常是可以的
异常中常用的方法
getMessage() 打印信息
toString()异常的类信息和异常信息
printStackTrace() 包含上面的内容,还告诉你异常是在哪产生,在哪引起的
自定义异常 需要继承异常类
函数如果有返回值的情况 又有异常处理要保证函数有返回值
finally一定在return之前执行
有try一定要有catch吗 可以没有catch finally有一个即可
对于异常处理暂时使用是比较简单的只要用
try{
}catch(Exception e){}即可 项目中在详细讲解如何回避,如何处理
3.java.lang包中的常用类的使用(学会查帮助)
a.java.lang.Math类 final修饰不能继承
b.java.lang.String类 不可变的字符串-->一旦认为改变改变的不是字符串本身,而是有了新的指向
c.java.lang.StringBuilder一个线程不安全 速度更快
java.lang.StringBuffer只是一个线程安全
可变字符串 功能类似
a.什么是垃圾? 没有任何引用的实体对象就是垃圾
b.什么时候回收 jvm来决定
程序可以建议立即回收,
如何建议:System.gc() Runtime.getRuntime.gc();
但是是否立即回收都由 jvm决定
jvm回收垃圾之前会调用对象finalize方法
这个方法只会被调用一次,显示的去调用无效
不建议去重写finalize方法,也不建议去干扰jvm处理垃圾回收
让jvm自己管理即可
2.java异常处理机制
java中已经多所有的错误进行了分门归类
两大类
java.lang.Error 系统级错误,程序无法处理
java中对其它的所有错误做了更细致的分类,都是Error的子类
java.lang.Exception 异常 通过程序可以进行处理
java中对Exception也做了更细致的分类,都是Exception的子类
这两个类都继承了java.lang.Throwable类
java中的异常有可以分为两类
一类是jvm能自动帮我们处理的,当然自己也可以处理RumtimeException类及其子类
还有一类是jvm不不能帮我们处理,必须我们自己处理,否则程序编译都不通过
补充:命令行参数 主函数需要的参数
在eclipse中如何输入命令行参数,右击代码 Run as--->Run Configurations--->Arguments
--->填写命令行参数,中间空格隔开
每种类型的异常产生都是一个具体的异常类的对象产生了
异常中的五个关键字 try catch finally throw throws
如果自己处理异常一般来说会把可能会产生异常的代码片段放入
到try块中 catch 中处理异常,处理的时候类型一定要能匹配上
try后可以跟多个catch注意的子类一定要放在父类的前面
Exception可以处理所有异常 但是可能会倒置提示异常信息并不精确和友好(平时写程序可以这样,做项目的时候要细致处理)
finally 关键字
throw关键字 在某种情况下,人为制造出异常
throws关键子,回避异常,使自己的程序能够通过编译
子类重写父类方法时,不能回避比父类方法中回避的更多的异常,只能
少,或者多出jvm能自动捕捉的异常是可以的
异常中常用的方法
getMessage() 打印信息
toString()异常的类信息和异常信息
printStackTrace() 包含上面的内容,还告诉你异常是在哪产生,在哪引起的
自定义异常 需要继承异常类
函数如果有返回值的情况 又有异常处理要保证函数有返回值
finally一定在return之前执行
有try一定要有catch吗 可以没有catch finally有一个即可
对于异常处理暂时使用是比较简单的只要用
try{
}catch(Exception e){}即可 项目中在详细讲解如何回避,如何处理
3.java.lang包中的常用类的使用(学会查帮助)
a.java.lang.Math类 final修饰不能继承
b.java.lang.String类 不可变的字符串-->一旦认为改变改变的不是字符串本身,而是有了新的指向
c.java.lang.StringBuilder一个线程不安全 速度更快
java.lang.StringBuffer只是一个线程安全
可变字符串 功能类似