java基础

基础篇
1、jdk jre jvm 之间的关系
    jdk:java开发者工具包
    jre:java运行环境
    jvm:java虚拟机额
    jdk>>jre>>jvm
2、面向对象(AOP)
    面向对象是面向过程的封装,封装了类的属性和方法
3、对象的创建过程
    对象创建之前,首先类被加载(从最大父类开始加载然后是子类),执行静态代码块,然后执行构造器,也是从父类开始,然后子类,创建对象实例静态犯法和类有关,直接使用类名.方法名来调用。
4、Java的反射机制
    当类加载器将类加载金jvm虚拟机中后,jvm虚拟机额会创建每一个类的元数据对象Class,Java语言允许通过元数据对象动态的创建对象实例,这种机制就被成为Java的反射机制,基本上所有的框架底层都使用了反射机制,spring,spring MVC,mybatis.
5、抽象类和接口有什么区别
    抽象类中可以有普通方法,可以有成员变量,不可被实例化/。
    接口中只能有抽象方法梦不能有抽象方法,可以有静态常量,不可被实例化,接口可以看成一种特殊的抽象类
6、重载和重写
    重写是子类继承父类,在方法名,参数列表,返回值相同的情况下重写父类的方法
    重载是在一个类中,可以有多个重名的方法,方法名相同,但是形参列表不同
7、Java中的多态
    多态是指可以创建父类对象的引用指向子类的对象,非静态方法的调用同名的话调用子类的,静态的调用父类的。
8、框架如何创建对象
    框架的配置有xml形式的、注解形式的,xml可以被解析,解析的技术有dom4j,sax解析,三大框架都是使用的dom4j。
9、集合类
9.1、常用的数据结构
    数组和链表
9.2、数组和链表的区别
    数组需要在内存中开辟一段连续的存储空间,需要指定长度
    数组中的每一个元素都有索引,查询的话通过索引可以直接定位到某一个元素,效率很高,但是进行删除的话,数组会进行移动所以效率很低。
    链表不需要连续的存储单元,链表的上一个元素通过指针指向下一个元素,所以链表结构进行查询的话,头部尾部比较快,中间慢,但是删除的话,只需要删除前后指针,从新建立指针就可以了,所以删除的性能很高。
9.3Java当中的集合类或集合框架
    collection节后是集合类的顶层接口,collections是工具类
    collection有两个子接口,一个list接口,一个set接口
    list接口有序可重复,set接口无序不可重复
    list接口常用的实现类有
        ArrayList基于数组实现的
        LinkedList基于链表实现的 
        vector 基于数组实现的,但是线程是安全的
        copyOnwriteArrayList 复制数组副本来实现的
    set接口常用实现类
        HashSet 基于hashMap来实现的,实现不课重复是通过hashCode方法和equals方法进    
    行两次比较,先比较hashCode,在通过equals
        TreeSet基于二叉树来实现的,可以对元素进行排序,默认自然排序,可以自定义比较 ······器,实现自定义排序
    Map接口(key value结构的)
    map接口的实现类
        Hash Map key不可重复,无序,可以为空
        基于数组和链表实现的:当存入一对键值对的时候,先对key进行hash,然后映射到一 个初始长度为16的数组上,当不同的key产生hash碰撞的时候,value会通过链表结构来进行存储,
    jsk1.8之后对hash进行了改进,当链表长度达到临界值8,会通过红黑树来存储value,hashMap有两个参数。一个是初始化长度为16,另一个是负载因子0.75,当满足扩容阈值的时候-数组的12
    个元素北村满,并且有了hash碰撞,动态扩容,以2被的增长方式进行扩容。
        HashTable:是线程安全的hashMap,key不纯为空
        Tree Map基于二叉树来实现的,可以对key进行自然排序,自定义比较器写比较规则
        concurrentHashMap是线程安全的,对整个hash桶采用分段策略,参分成若干的段     segment,对每一段上锁,极大的提高了并发修改的效率。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值