Java入门 ----- 第六弹

垃圾回收机制(GC):    Garbage Collection
垃圾:没有引用的对象,就是垃圾.

java程序的多个部分(方法、变量、对象)驻留在内存中以下两个位置:栈和堆。
*实例变量、数组和对象-------堆上。
*局部变量和方法-------------栈上。

java程序中,new 出来的东西都是驻留在堆(heap)内,栈(stack)里空间调用完都会自动释放,而堆里不是,
像C,C++都要人为的去主动释放,而JAVA会由JVM来处理,JVM何时去释放堆内存,只跟内存有关,
它在释放的时候会调用finalize()这个方法去释放,如果我们人为调用这个方法是无效的。

面试:finalize,final ,finally这三个关键字有何区别,分别用在什么地方?

我们在JAVA里是否可以自己去释放内存,怎么去释放?
1.Runtime.getRuntime().gc();
2.System.gc();

arraycopy()
System.out.println();
System.exit(0);
Scanner sc=new Scanner(System.in);

int i=sc.nextInt();
String s = sc.next();

一个类没有构造函数,怎么去调用该类中非静态方法???
该类中肯定有一个方法得到该类的对象   静态的方法,返回的是该类的对象(单例模式)
Runtime
Calendar

异常:Exception(硬件故障,资源耗尽等)
open file
read file
close file

Object------->Throwable--------->Exception/Error(系统级的错误eg:栈溢出,JVM内存耗尽)

编译时错误:语法错误
运行时错误:语法没错,有异常抛出

Exception的子类有:
ArithmeticException========>除数为0异常
NullPointerException=========>空指针的引用异常
ArrayIndexOutOfBoundsException========>数组越界异常
RuntimeException========>不需要捕捉和声明,JVM会捕捉并打印出栈轨迹(e.printStackTrace();)
ClassNotFoundException========>找不到.class 文件
NumberFormatException=======>int i=Integer.parseInt("12");       int i=12a;
IlleageArgumentException========>String f(String s)       f("hello");

RuntimeException的子类:
ArithmeticException
NullPointerException
ClassCastException
IllegalArgumentException
IndexOutOfBoundsException

java中抛出一个异常.一个异常对象被抛出.程序的执行被终止,接着,由catch块来捕捉异常.

异常的5大关键字:
 try:把可能出现异常的程序防在try块中. try{  xxxx }

 catch:捕捉异常,并进行合理的处理.

  1多个catch时,注意使用顺序(先子类后父类)2 Exception是一个万能捕捉器3 try-catch的嵌套使用 

 throw:人为的抛出异常,如果不对其进行捕捉或者回避,编译不通过.   RuntimeException除外
 throws:声明异常,可以不对其进行捕捉,让使用者去捕捉异常.

 finally:绝对能被执行的代码放在finally块中.即使catch{}中有return语句,也会在return语句执行之前执行。


注意:
 1、在try{}catch{}finally{}之间不能有其他任何代码块.
 2、try{}不能单独使用。可以和catch{}匹配使用,也可以和finally{}匹配使用
 3、try{}------没有异常---------fianlly{}
         try{}------有异常-------catch{}--------finally{}
        try{}-------有/没有------------finally{}

如何自定义异常?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值