第一章Java基础 木木胥
1,基础语法与面向对象
,1.1重载与重写的区别
1.2==与equals的区别
。对于基本类型,==是比较两边的值是否相同
。对于引用类型,==是比较两边的引用地址是否相同,用来判断是否引用着同一对象.equals要看实现
.Object.equals(Object other)的内部实现就是==,即判断当前对象和other是否引用着同一对象。比如String,它的内部实现就是去比较两个字符串中每个字符是否相同,比较的是内容
。比如ArrayList,它的内部实现就是去比较两个集合中每个元素是否equals,比较的也是内容
1.3 String, StringBuilder和StringBuffer的区别
油炸小液
。它们都可以用来表示字符串对象
.String表示的字符串是不可变的,而后两者表示的字符串是内容可变的(可以增,删,改字符串里的内容).StringBuilder不是线程安全的,StringBuffer是线程安全的,而String也算是线程安全的适用场景
。大部分场景下使用String就足够了
,如果有大量字符串拼接的需求,建议用后两者,此时
油炸小波
。此字符串对象需要被多线程同时访问,用StringBuffer保证安全。此字符串对象只在线程内被使用,用StringBuilder足够了另外针对 String类是final 修饰会提一些问题,把握下面几点。本质是因为String要设计成不可变的,final只是条件之一,不可变的好处有很多:线程安全,可以缓存等