2020年5月----Java基础复习
Java基础的复习
大步往前走
这个作者很懒,什么都没留下…
展开
-
9.设计模式思想
内容提要• 结合代码介绍了设计模式背后包含的多种实用的设计原则• 同时给出“基于项目介绍设计原则”的方式• 给出了若干亮点说辞,同时介绍了如何在面试时引出该话题依赖倒转原则能减少修改所影响范围• 模块间(类之间)的依赖关系(比如相互调用)是通过接口和抽象类 发生,实现类之间不发生(或尽量少发生)依赖关系;• 接口或抽象类不依赖于实现类,相反实现类应该依赖接口或抽象类 ;• 如下不好的范例中,订单管理类依赖于数据库管理类,两者并不是接 口或抽象类;依赖倒转原则能减少修改所影响范围•原创 2020-05-11 16:16:04 · 157 阅读 · 0 评论 -
8.设计模式
内容提要• 通过单例模式,边写代码边讲述设计模式 ;• 通过代理模式,证明自己在项目里用过设计模式;• 面试时引出设计模式话题的技巧• 被问到相关问题时,如何全方位回答单例模式的单线程实现方式• 通过单例模式,确保实例化的对象只有一个 • 构造函数私有,通过静态方法对外提供对象单例模式的多线程实现方式(可以改进)• Synchronized代码块里写new代码,在同一个时间段里只能被一个线 程调用• 其它线程会先排队等待进入Synchronized代码块,然后发现无 法创建原创 2020-05-11 16:00:19 · 112 阅读 · 0 评论 -
7.final, finalize 和 finally
内容提要:• finally和finalize语法点和面试说辞• final可以作用在类、方法和属性上• 话题涉及到内存回收和面向对象设计,面试时该如何引出finally从句的说辞(复习):• 不管是否发生异常,不管发生何种异常,finally从句代码都会被执行• 哪怕try和catch里有return,finally从句也会被执行• 除非有System.exit(0)语句,finally从句才不会被执行 (项目里用到System.exit(0)的地方很少)• 画龙点睛:fina原创 2020-05-11 15:22:20 · 112 阅读 · 0 评论 -
6.异常处理准则
内容提要:• finally从句里放资源回收类代码• 尤其得当心的RuntimeException• 通过异常处理机制,尽可能小地缩小影响范围• 异常处理的重要准则finally从句的特性• 不管是否发生异常,不管发生何种异常,finally从句代码会被执行• try和catch里有return,finally从句也会被执行• 除非有System.exit(0)语句,finally从句才不会被执行运行期异常会中断程序• 运行期异常(RuntimeException)无需原创 2020-05-11 15:07:19 · 145 阅读 · 0 评论 -
5.从抽象类和接口角度展示面向对象方面能力
内容提要• 结合代码,讲述抽象类和接口的语法• 结合需求,讲述抽象类和接口的适用场景• 结合语法限制,讲述两者背后包含的面向对象思想 • 能实现多个接口,不能继承多个类抽象类和抽象方法的语法• 有抽象方法的必须是抽象类,反之不然 !• 抽象方法不能定义方法体!• 子类继承抽象方法时,必须实现抽象方法!,继承Animal的时候,必须得实现其中的抽象方法接口相关的语法• 接口的方法没有方法体• 一个类可以实现多个接口 !!!!• 实现接口的类需要实现接口方法不能多重继承,但可以实现原创 2020-05-11 14:25:21 · 204 阅读 · 0 评论 -
4.重载和重写
内容提要• 结合代码,观察覆盖,重载和方法重复• 从面向对象角度,分析覆盖时需要注意的两大准则子类方法覆盖(Override)父类方法方法的重载(Overload)• 重载:方法同名,不同参• 方法同名,同参,不同参数名,是重复方法• 方法同名,同参,不同返回值,是重复方法子方法覆盖时的限制• 子类方法不能缩小父类• 子类方法不能缩小父类方法的访问权限,如缩小,会造成父类 本该可见的方法不可见,违背面向对象思想的“父类定义通用 属性和方法”的原则• 子类方法不该抛出比父类方原创 2020-05-11 13:45:57 · 101 阅读 · 0 评论 -
3.从hashCode观察HashMap的用法
内容提要• 从数据结构的散列表里观察HashMap高效索引的机制。• 从散列表里的冲突机制观察 HashMap的数据结构。• 不重写hashcode和equals方法会有什么后果。• 讲述hashcode和HashMap方法该抛出哪些亮点说辞• 引出该话题的技巧数据结构里的散列表高速索引的机制• 长度为n的线性表,存放无序数据,平均查找时间是n/2• 引入hash函数(散列函数),关联数据和存储位置• 存取数据前,先用hash函数计算hash值• HashMap来源于数原创 2020-05-11 13:37:19 · 130 阅读 · 0 评论 -
2,结合底层代码讲述 fail-fast机制
内容提要• 遍历ArrayList会遇到的坑:边遍历边修改可能出错• 快速失效背后包含的保护机制• 通过迭代器可以边遍历边修改• 结合底层代码讲述fail-fast(快速失效)• 引出快速失效话题的方法遍历ArrayList时会遇到的坑• 就遍历,没问题• for,边遍历边修改没异常,但结果错• foreach,边遍历边修改会抛异常 for each抛异常的原因• foreach是通过迭代器Iterator实际上还是调的ArrayList的remove方法.原创 2020-05-11 13:07:04 · 178 阅读 · 0 评论 -
1.ArrayList和LinkedList
本章的目标:1. 掌握集合方面资深技能的说辞 2. 掌握面向对象和设计模式方面资深技能的说辞 3. 掌握异常处理方面资深技能的说辞 4. 掌握在面试中合理抛出上述说辞的方法面试中的相关问题• 引出话题的说辞• 从深拷贝和浅拷贝里看“引用”• 对比ArrayList和LinkedListArrayList和LinkedList有什么差别?如何选用?• Vector你还用吗?(其实很多项目里不用了)• ArrayList满了以后,如何扩容?• 两个对象里,哪个是线程不安.原创 2020-05-11 11:34:19 · 156 阅读 · 0 评论