1.两个 对象的hashCode()相同,equals()也一定为true吗?
不对,两个对象的 hashCode() 相同,equals() 不一定 true。
String str1 = "通话"; String str2 = "重地"; System. out. println(String. format("str1:%d | str2:%d", str1. hashCode(),str2. hashCode())); System. out. println(str1. equals(str2));
执行结果:
str1:1179395 | str2:1179395 false
hashCode() 相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等
2.String属性基础的数据类型吗?
基础有8种:byte,short,int,long float,double, char,boolen,String属于对象
3. java操作字符串类型的类有几种?它们之间的区别?
3种:String,StingBuilder,StringBuffer.
String底层被final char[]修改的一个字符数组,所以String不可以被继承,不可以被修改。StringBuffer可以改变字符串的长度,可以进行相关的增删改查操作。
StringBuilder和StringBuffer区别:StringBuilder线程不安全适用于单线程操作,StringBuffer线程安全因为方法内部加了同步锁(synchronized),经常用于多线程操作
同步锁:一种是lock锁,一种是synchronize锁,还有一种呢是vilatile锁
三种锁都能保证我们的数据同步,不会出现重复数据的问题。
4.如何将字符串上反转?
可以使用StringBuffer或者StringBuilder的reverse()方法。
5.String类的常用 的方法?
equals()
toLowerCase()
toUpCase()
equalsIngonoreCase()
charAt()
subString()
endWith()
startWith()
split()
toCharArray()
compareTo()
concant()
抽象类不一定要有抽象方法。
6.普通类和抽象类的区别?
普通类不可以有抽象方法,抽象类可以有。
普通类可以实例化,抽象类不可以实例化。
7.抽象类能使用 final 修饰吗?
不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类.
接口和抽象类有什么区别?
- 实现:抽象类的子类 使用extends来继承,接口用implements实现。
- 抽象类可以有构造函数,接口不可以
- java只有单继承(继承一个抽象类),可以实现多个接口(implements)
- 接口的方法默认public修饰,抽象类的方法可以使用任何的访问修饰符。
8垃圾回收哪些需要回收?
有三个是不需要回收的,JVM栈,本地方法栈,程序计数器。只有方法区和堆需要进行GC(Garbage Cycle)
9.Mybatis添加数据同时获取添加数据之后的id?
在<insert 这个标签上面加上useGeneratedKeys=“true” keyProperty=“id”,可以测试的。