Java基础知识点_11

final 、 finally和finalize 的区别

一、final :
final修饰类,表示最终的类,不能被继承
final修饰变量,表示一个常量,只能赋值一次
final修饰方法,表示最终的方法,不能被重新、重载

二、finally:
try catch 捕获异常最终都会执行

三、finalize:

是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除之前做必要的清理工作。这个方法是在垃圾收集器在确定了,被清理对象没有被引用的情况下调用的。

finalize是在Object类中定义的,因此,所有的类都继承了它。子类可以覆盖finalize()方法,来整理系统资源或者执行其他清理工作。

基本数据类型与包装类有什么区别

以int integer举例
int是基本数据类型,作为成员变量默认值为0
integer是引用数据类型,作为成员变量默认值为null,integer里面封装方法功能更加强大

抽象类和接口的区别

抽象类里可以有普通方法也可以有抽象方法,
接口里只能有抽象方法,但是在 jdk1.8 以后也可以在接口中添加普通方法和静态方法了,就是得用 default 修饰一下这个方 法

&和&&的区别

&运算符是:逻辑与;&&运算符是:短路与。
1.&和&&在程序中最终的运算结果是完全一致的,只不过&&存在短路现象,当&&运算符左边的表达式结果为false的时候,右边的表达式不执行,此时就发生了短路现象。如果是&运算符,那么不管左边的表达式是true还是false,右边表达式是一定会执行的。这就是他们俩的本质区别。
2. 当然,&运算符还可以使用在二进制位运算上,例如按位与操作。(hashmap底层的与运算)

java中break,continue,return 的区别?

1.break默认是跳出最里层的循环,也就是break所在的最近的那层循环
2.continue是终止本次循环,继续下次循环
3.return 结束当前方法或者将返回值返回给调用者

"" 和null的区别

1.null是没有地址
2." "是有地址但是里面的内容是空的

经典笔试题

判断以下两行代码,如果让你选你会用哪种? 为什么

String name = request.getParameter("name");
//第一种:
	if(name.equals("baby")){
        
    }
//第二种:
	if("baby".equals(name)){
        
    }

答:第二种,第一种如果name为Null会引起空指针

final和abstract可否同时使用?

不可以,因为final表示最终的,修饰类时不能被继承,比如String
而abstract表示抽象的,当修饰类时表示需要子类去继承,二者矛盾,所以不能被同时使用

Java中的变量,代码块,构造器之间执行的顺序是怎样的?

步骤:
1、父类静态变量和静态代码块(先声明的先执行);
2、子类静态变量和静态代码块(先声明的先执行);
3、父类的变量和代码块(先声明的先执行);
4、父类的构造函数;
5、子类的变量和代码块(先声明的先执行);
6、子类的构造函数。
posted @ 2021-07-30 15:06  Lucky_龍  阅读(70)  评论(0)    收藏  举报