Java SE知识补充

来源:互联网 发布:淘宝靠谱电玩店 编辑:程序博客网 时间:2024/05/23 00:33
1.集合接口的结构:
Collection:List、Set
Map

2.集合接口各自的作用:
Collections类:对集合进行操作
Collection接口:存储对象,可重复
List接口:可重复存储,有序,线性结构
Set接口:不重复的,无序
Map接口:存储键值对,键是唯一的


3.List 实现类有哪些?区别?
  ArrayList: 底层技术是数组,遍历和随机访问速度快,
             插入和删除效率低;
             线程非安全,速度快;
  Vector: 线程安全,速度慢;
             支持枚举遍历。
  LinkedList: 底层是链表
             插入 和 删除效率高,遍历和随机访问慢。


4.Set接口实现类有哪些?区别?
  HashSet:唯一
          可以存null值
          数据结构是 哈希表
  存储数据唯一原理:
   先调用hashCode()方法,值不同,
   认为是不同对象可存储;值相同,
   再掉用equals()方法比较,相同
   认为是相同对象 不能存储,不相同,
   则可以存储。
 TreeSet:
     数据结构 二叉树
     可自然升序排序,
     可自定义排序重写 compareTo()方法
 LinkedHashSet
     数据结构是: 链表和哈希表
     可存null值
     可按添加顺序访问


5.Map接口实现类有哪些?区别?
 HashMap:
    线程非安全,速度快
    可存 null键,null值
    如果键相同了,会覆盖之前的值(键是唯一的)
 Hashtable
    线程安全,速度慢
 TreeMap
    可按键排序




6.String,StringBuffer,StringBuilder区别?
String:定长 ,new的存在堆中,不是new出来的存在方法区的常量池中
== 判断地址 对象
equals()比较值
concat()连接,创建新的对象
频繁更改字符串的值时:
StringBuffer:线程安全,速度慢
StringBuilder:不安全,慢


7.String类常用的方法?
length()长度
charAt(index)
substring(begin,end):从begin到end-1


8.== 与 equals区别?
== 判断地址 对象
equals()比较值


9.什么是装箱拆箱?8个封装类是什么?
装箱:基本->引用 
      把值包装成对象
拆箱:引用->基本
      把对象中的值取出来
Byte Short Integer Long Float Double Character Boolean


10.什么是序列化和反序列化?
永久性的存储对象
ObjectInputStream 反序列化
ObjectOutputStream 序列化


11.线程的生命周期?
新建 new
就绪
运行
阻塞
区别:
wait():参数可选 ms,放弃了执行权,放弃了锁
sleep():必须带参 ms,放弃了执行权,不放弃锁
死亡


12.实现线程的两种方式?区别?
继承Thread:继承类中所有能继承的方法
实现接口Runnable只有实现run();更有利于资源共享,可以绑定同一对象


13.强制垃圾回收对象的方法?
强制通知
System.gc();//对象为空后执行


14.finalize,final,finally的作用?
finalize:垃圾回收机制
final:
类:不能被继承
方法:不能被重写
变量:常量,值不能被改变
finally:必须执行的代码
当遇到System.exits(0)时例外
原创粉丝点击