【面试】请问在java语言中以基本类型或者对象类型为实参时的本质区别(5分)
在调用函数时,会给参数赋一个临时名称用于函数内部,这个名称(参数名)叫做形参,实际传入方法的参数,叫实参。
实参的作用域在方法外,形参的作用域在方法内。
基本类型和对象在参数传递的过程中不同的形式:
1(对于基本类型,传递的时候,将实参值复制,方法内获得的形参与实参没有关系,只是值相同)值传递,在方法中修改形参不影响实参;2(对于对象,传递的时候,将实参引用复制,形参与实参引用相同,指向的是同一个对象)引用传递,在方法中修改形参会影响实参;3例外:对于类似String这种的不变类,仍然是引用传递,形参和实参相同。但修改时是创建了一个新对象赋给形参,这当然不会影响实参。
参考链接
运行时异常与一般异常有何异同?Java编译器对代码的异常捕获有什么要求?
除了Error外,异常分为运行时异常和检查异常,运行时异常不要求程序员必须进行处理;而一般异常如检查异常必须进行捕捉或抛出处理操作。
Java编译器对代码的异常捕获要求:有异常正确处理姿势应该是捕捉。运行异常如果throws,系统会一直往上抛,单线程由main抛后退出整个程序;多线程由Thread.run()抛后退出这个线程。运行时异常可以不捕捉,但是出现控制台抛出运行时异常,要么线程终止,要么主程序终止。如果不想终止,必须捕获所有的运行异常,不让这个异常处理线程退出。如队列里出现异常数据,应把异常数据舍弃,然后记录,而不应让异常数据影响下面对正常数据的影响。
参考链接