文档介绍:Java类别问题
String与StringBuilder、StringBuffer的区别
如果要操作少量的数据用 = String
单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
Collection类,Collection包结构,与Collections的区别
Collection是集类,包含List有序列表,Set无序集合以及Map双列集合
Collection是集合类的上级接口,子接口主要有Set 和List、Map。
Collections是针对集合类的一个帮助类,提供了操作集合的工具方法:一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
java哪些集合类是线程安全的
vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。
statck:堆栈类,先进后出
enumeration:枚举,相当于迭代器
hashtable:就比hashmap多了个线程安全
线程安全是什么意思
就是线程同步的意思,就是当一个程序对一个线程安全的方法或者语句进行访问的时候,其他的不能再对他进行操作了,必须等到这次访问结束以后才能对这个线程安全的方法进行访问
ﻩ
九种基本数据类型的大小,以及他们的封装类。
java提供了一组基本数据类型,包括boolean, byte, char, short, int, long, float, double, void. 同时,java也提供了这些类型的封装类,分别为Boolean, Byte, Character, Short, Integer, Long, Float, Double, Void
既然提供了基本类型,为什么还要使用封装类呢
比如,如果想使用List来保存数值,由于List中只能添加对象,另外,有些情况下,我们也会编写诸如func(Object o)的这种方法
Switch能否用string做参数
在 Java 7之前,switch 只能支持 byte、short、char、int或者其对应的封装类以及 Enum 类型。在 Java 7中,String支持被加上了。
equals与==的区别。
1.==是一个运算符。
,可以.(点)出来。
Java的四种引用,强弱软虚,用到的场景
1.强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就 类似于必不可少的生活用品
,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。
,如果一个对象只具有软引用,那就类似于可有可无的生活用品。如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。
,如果一个对象只具有弱引用,那就类似于可有可无的生活用品。 弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它 所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。
,"虚引用"顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收。
Hashcode的作用
Hashcode这个方法是用来鉴定2个对象是否相等的,hashcode方法一般用户不会去调用,比如在hashmap中,由于key是不可以重复的,他在判断key是不是重复的时候就判断了hashcode这个方法,而且也用到了equals方法。
ArrayList、LinkedList、Vector的区别
ArrayList,Vector底层是由数组实现,LinkedList底层是由双线链表实现,从底层的实现可以得出它们的性能问题,ArrayList,Vector插入速度相对较慢,查询速度相对较快,而LinkedList插入速度较快,而查询速度较慢。再者由于Vevtor使用了线程安全锁,所以ArrayList的运行效率高于Vector。
Map、Set、List、Queue、Stack的特点与用法
Set集合类似于一个罐子,"丢进"Set集合里的多个对象之间没有明显的顺序。
List集合代表元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。
Stack是