日常复习资料(保持更新,有错误的欢迎评论区反馈,谢谢!)

第一章  java基础
    第一节    java基本数据类型
        Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
        byteshortintlongfloat、doule、char、boolean;
        
        String 不是基本数据类型。
        
    第二节    java访问控制修饰符
        Java 支持 4 种不同的访问权限。
        
        default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

        private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

        public : 对所有类可见。使用对象:类、接口、变量、方法

        protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
        
    第三节    java面向对象(封装、继承、多态)
        封装:将内部实现方式进行隐藏,方便调用者使用,以及避免重复实现代码。
        继承:子类可以继承父类的方法,也可以重写父类的方法。
        多态:多态是基于继承实现的。
    
    第四节    Java 集合框架
        
        ArrayList: 底层基于数组实现容量大小动态变化,允许 null 的存在。第一次add的时候容量会变成10;之后add会判断容量,需要扩充的时候会新增一个数组,再将原来的数据复制进去,它类似的是LinkedList,和LinkedList相比,它的查找和访问元素的速度较快,但新增,删除的速度较慢。线程不安全。如果你需要线程安全就使用Vector。
        
        HashMap:数据结构为 数组+(链表或红黑树),它存储的内容是键值对;允许使用null键和null值,因为key不允许重复,因此只能有一个键为null;HashMap是线程不安全的,无序;新增逻辑:第一步,计算出键的hashcode值,该值用来定位这个元素放在数组的位置。分为两种情况,数组索引的位置是空的,这种情况很简单,直接将元素放进去就好了;第二种,不是空的,采用equals比较元素是否相同,如果相同直接覆盖,如果不相同则在原元素下使用链表结构存储该元素。因为链表元素太多的时候会影响查找效率,所以当链表的元素个数达到8的时候就变成了红黑树;初始容量大小是创建时给数组分配的容量大小,默认值为16,当存储的元素个数大于数组容量数乘以加载因子得到的值时,数组就会扩容到原来的两倍;加载因子默认0.75。HashMap不是线程安全的;多线程下重新调整HashMap大小的时候,存储在链表中的元素的次序会反过来,如果条件竞争发生了,那么就死循环了;不能在多线程下使用HashMap。
        
        线程安全的Map:HashTable,方法都被synchronized关键字修饰,效率非常低;SynchronizedMap,把传入进行的HashMap对象进行了包装同步而已;ConcurrentHashMap - 推荐,设计为非阻塞,在更新时会局部锁住某部分数据;好处是在保证合理的同步前提下,效率很高;坏处是严格来说读取操作不能保证反映最近的更新.
        
    第五节    java基础部分面试题
        
        
    
第二章  常用框架
第三章  数据库
第四章  缓存
第五章  中间件
第六章  并发编程
第七章  各类问题以及解决方案

      

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章