java基础整理{倾向于面试题}

一,集合
从数据结构出发
1,集合与集合的区别
list,set,map的区别:
list,set是继承与collection接口,map不是
特点:
list:有序有下标可重复
set:无序的无下标不可重复
map:键值对形式存在

2,集合子类的区别
2.1,Arraylist与linkedlist的区别:
  ArrayList:数据结构是数组
  linkedlist:数据结构是链表
     特点:ArrayList查询修改较快,新增删除较慢
        linkedlist查改慢,新增删除较快

参考如下图:Arraylist

       

 Linkedlist

 

2.2,hashset与treeset的区别:
   hashset:数据结构是哈希表
   treeset:数据结构是二叉数
      hashset中存储的对象判重,底层是跟hashcode,equals方法相关
   treeset:可以排序,需要定义排序规则
     java.lang.comparable:自然排序接口
     java.util.comparable:比较器接口

2.3,hashmap与hashtable的区别:
      数据结构都是哈希表
      hashmap是线程不安全的,方法前没有被synchronized修饰
      hashtable是线程安全的,方法前有被synchronized修饰

2.4,hashmap与treemap的区别:
   HashMap<Student,Teacher> hashmap = new HashMap();
   new Student(1,"zhangsan")
   new Student(1,"zhangsan")


   hashmap:数据结构是哈希表
   treemap:数据结构是二叉数
   hashmap中存储的对象判重,底层是跟hashcode,equals方法相关
   treemap:可以排序,需要定义排序规则
     java.lang.comparable:自然排序接口
     java.util.comparable:比较器接口
3,集合的底层原理
list如何去重:
  调用contains方法,以及重写equals完成的
set如何去重:
  跟hashcode,equals相关

二,线程
概念:最小的运行单元
线程与进程的区别:多对一的关系,一个进程可以对应多个线程,一个线程是属于一个进程
如何实现:extends Thread,implement runnable
线程的状态:就绪,初始化,运行,阻塞,销毁
状态的转换:start,wait,run方法中的线程内容是运行完毕的
常用方法及区别:
run,start的区别?
run指的是线程运行的内容,start指定是开启线程
sleep,wait的区别?
sleep是休眠,到了一定时间会自动唤醒,wait是需要人为的唤醒
死锁:
两个及以上线程共同抢占锁资源,有锁a与锁b,形成互锁,线程呈现僵持状态,抢占服务器资源的现象

三,面向对象
1,类属性与对象属性的区别/static?
   类属性是共有的
   对象属性是独有的,每个对象的属性都是单独存在的
2,方法的重写与重载?
   重写:同名同参
   重载:同名不同参
3,构造器是否可以被重写?
   不可用
   Class person{
         }
   }
   class Student{
   Student(){
       super();
       }
       
   }
4,final修饰的类,方法,属性的特点?
 final代表最终
 类:不能被继承
 方法:不能被重写
 属性:指向不能发送变化
5,抽象类与接口的区别?
5.1,定义关键字不同
5.2,继承或实现的关键字不同
5.3,子类扩展的数量不同
5.4,多态?
  Person p  = new Student();

四,异常
    1,如何出现栈内存溢出?
        递归
    2,runtimeException与Exception的区别?
         runtimeException是需要声明或者捕捉的,Exception则相反
    3,异常与错误的区别?
         异常通常是由程序导致的,是可以修复的,而错误则不然
   4, 异常的处理方式?
          捕捉跟声明

五,IO流
    1,字节流:InputStream,OutputStream
    2,字符流:Reader,Writer
    3,文件拷贝
    4,深拷贝与浅拷贝

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值