java基础

本文介绍了Java中的final关键字的三种用途:修饰引用、方法和类。同时,讨论了String对象的创建方式及其内存分配差异。接着,对比了普通类与抽象类、接口的区别,以及反射机制和序列化的概念。此外,还解释了throw和throws的异常处理差异,以及hashCode和equals方法的关系。最后,提到了字符串操作类String、StringBuilder和StringBuffer的使用场景及性能比较,以及重载和重写的概念。
摘要由CSDN通过智能技术生成

一、final 在 java 中有什么作用?
(1)用来修饰一个引用
如果引用为基本数据类型,则该引用为常量,该值无法修改;
如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。
如果引用时类的成员变量,则必须当场赋值,否则编译会报错。
(2)用来修饰一个方法
当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。
(3)用来修饰类
当用final修改类时,该类成为最终类,无法被继承。
二、String str="i"与 String str=new String(“i”)一样吗?
String str="i"会将起分配到常量池中,常量池中没有重复的元素,如果常量池中存中i,就将i的地址赋给变量,如果没有就创建一个再赋给变量。
String str=new String(“i”)会将对象分配到堆中,即使内存一样,还是会重新创建一个新的对象。
三、普通类和抽象类有哪些区别?
抽象类不能被实例化;
抽象类可以有抽象方法,只需申明,无须实现;
四、接口和抽象类的区别
接口中只能含有抽象方法
抽象类中可以含有抽象方法含有非抽象方法
五、什么是反射
是java在运行时进行自我观察的能力
在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法。这种功能来自反射机制
六、什么是序列化
序列化是将对象转换为容易传输的格式的过程
七、throw 和 throws 的区别?
(1)throw
作用在方法内,表示抛出具体异常,由方法体内的语句处理;
一定抛出了异常;
(2)throws
作用在方法的声明上,表示抛出异常,由调用者来进行异常处理;
可能出现异常,不一定会发生异常;
八、hashcode和equals联系
hashcode不相等,equals一定不相等, hashcode相等,equals不一定相等(哈希码生成过程中产生冲突)
九、java 中操作字符串都有哪些类?
(1)String
String是不可变对象,它是线程安全的。
(2)StringBuilder
线程不安全,效率高,多用于单线程。
(3)StringBuffer
线程安全,由于加锁的原因,效率不如StringBuilder,多用于多线程。
不频繁的字符串操作使用String,操作频繁的情况不建议使用String。
StringBuilder > StringBuffer > String。
十、重载和重写
同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法。
在类中,要以统一的方式处理不同类型数据的时候,可以用重载
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变
子类在继承父类的基础上,增加新的功能,可以用重写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值