1.Java 中操作字符串都有哪些类?它们之间有什么区别?
String | String是不可变对象,每次对String类型的改变时都会生成一个新的对象。 |
StringBuilder | 线程不安全,效率高,多用于单线程。 |
StringBuffer | 线程安全,由于加锁的原因,效率不如 StringBuilder,多用于多线程。不频繁的字符串操作使用 Strirg,操作频繁的情况不建议使用String. |
StringBuilder>StringBuffer>String |
2.什么是Java的内存模型
JVM的内存模型是JVM的一种规范 定义了共享内存在多线程程序中读写操作行为的规范 |
屏蔽了各种硬件和操作系统的访问差异,保证了Java程序在各种平台下对内存的访问效果一致 |
解决了并发问题采用的方式:限制处理器优化和使用内存屏障 |
3.在 Java中,什么时候用重载,什么时候用重写?
重载是多态的集中体现,在类中,要以统一的方式处理不同类型数据的时候,可以用重载。 |
重写的使用是建立在继承关系上的,子类王继承父类的基础上,增加新的功能,可以用重写。 |
简单总结:重载是多样性,重写是增强剂;目的是提高程序的多样性和健壮性,以适配不同场景使用时,使用重载进行扩展;目的是在不修改原方法及源代码的基础上对方法进行扩展和增强时,使用重写. |
4.Java容器都有哪些?
(1)Collection 1)Set HashSet 、TreeSet 2)List ArrayList、LinkedList、Vector |
(2)Map HashMap、HashTable、TreeMap |
5.Collection 和 Collections 有什么区别?
Collection是最基本的集合接口,Collection派生了两个子接口List 和Set,分别定义了两种不同的存储方式。 |
Collections是一个工具类,它包含各种有关集合操作的静态方法(对集合的搜索、排序、线程安全化等)。此类不能实例化,就像一个工具类,服务于coiiection框架。 |