1.数据类型之间的转换?
1)字符串如何转基本数据类型?
调用基本数据类型对应的包装类中的方法 parseXXX(String)或 valueOf(String)即可返回相应基本类型;
2)基本数据类型如何转字符串?
一种方法是将基本数据类型与空字符串(“”)连接(+)即可获得其所对应的字符串;另一种方法是调用 String 类中的 valueOf()方法返回相应字符串
2.&与&&的区别
&;是一个位运算符,表示按位与运算,在运行上,&两边都要判断,不管错对
位于运算符:按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
&&:是逻辑运算符,表示逻辑与(and),在运行上先判断前面的,如果前面的错了,则后面的不在判断。
3.char型变量中能不能存贮一个中文汉字?为什么?
char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。
4.String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?
这个跟常量池没有关系,只要是new,都是重新分配堆空间,如果不区分栈和堆,这里创建了1个String Object。如果是从jvm角度来说的话,它是创建了两个对象,String s是在栈里创建了一个变量,new String("xyz")是在堆里创建了一个对象并被s引用到。
5. Collection 和 Collections的区别。
- Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
- Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。
6.GC是什么? 为什么要有GC?
GC是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。
7.通过迭代器遍历list的时候,如果想修改集合对象是否会报错,会报什么错误?如何解决
在使用Iterator来迭代遍历List的时候如果修改该List对象,则会报java.util.ConcurrentModificationException异常
我们可以使用CopyOnWriteArrayList来代替ArrayList,CopyOnWriteArrayList支持并发访问,所以同时进行迭代和修改是没有问题的。
8.如何对list集合中的数据去重
- 循环list中的所有元素然后删除重复
- 通过HashSet踢除重复元素
- 删除ArrayList中重复元素,保持顺序
- 把list里的对象遍历一遍,用list.contain(),如果不存在就放入到另外一个list集合中
1)用JDK提供的Set对元素进行去重
Set<Integer> set = new HashSet<>(list);
此种方式是利用了Set的特性:元素不可重复,其底层原理是通过先计算每个对象的hash值,再比较元素值是否相同,如果相同,则保留最新的.
2).用普通方法对List进行去重
两层循环,外层循环从第一个元素想最后一个元素循环,
内层循环是从最后一个元素向外层循环元素的当前元素循环
比较两个元素是否相等,如果相等,移除靠后的元素来进行去重
3)用JDK1.8 Stream中对List进行去重
list.stream().distinct();
首先获得此list的Stream.然后调用distinct()方法,java8中提供流的方式对数据进行处理,非常快,底层用的是forkJoin框架,提供了并行处理,使得多个处理器同时处理流中的数据,所以耗时非常短
9. float型float f=3.4是否正确?
1.搜索项目结构.png 1.搜索项目结构2.png jmyp.png不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 或float f = 3.4f 在java里面,没小数点的默认是int,有小数点的默认是 double; int 转成 long 系统自动作没有问题,因为后者精度更高 double 转成 float 就不能自动做了,所以后面的加上个 f
网友评论