
JAVA
最原始的java代码学习
下山成精
这个作者很懒,什么都没留下…
展开
-
jvm垃圾回收器
垃圾回收器触发是由内存满了之后,会触发,它所管辖的区域是堆空间。垃圾回收器里面有几种算法,标记清除算法标记整理算法复制回收算法minGC Full GC原创 2020-06-11 11:16:08 · 159 阅读 · 0 评论 -
HashMap的hash()方法
基础知识回顾哈希算法因为Java的HashMap源码里面有个混淆函数hash(),我就想补一下哈希的定义。哈希算法有以下三个特点安全,给定数据 M 容易算出哈希值 X ,而给定 X 不能算出 M ,或者说哈希算法应该是一个单向算法。两个不同的数据,要拥有不相同的哈希。长度固定,给定一种哈希算法,不管输入是多大的数据,输出长度都是固定的。仔细想一下,如果哈希的长度是固定的,也就是取...原创 2020-04-10 10:58:44 · 404 阅读 · 0 评论 -
Java动态代理
摘要学习动态代理已经有一段时间了,目前主要有俩种方式,一种Java自带的JDK的方式实现代理模式,另外一种就是CGLIB字节码的方式实现。JDK动态代理主要是是通过反射的方式,继承目标类的接口方法,动态的生成一个新的类,然后将目标类初始化到这个新类里面,这个是不是像极了代理模式。CGLIB代理的是通过继承目标类,动态生成了一个目标类的子类,然后通过FastClass机制进行方法调用,说这个...原创 2020-04-02 19:56:49 · 157 阅读 · 0 评论 -
外观模式
外观模式定义外观模式提供了一个统一的接口,用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用。这样我们可以避免和子系统之间的紧耦合。最少知识原则只和你的密友谈话。当你正在设计一个系统,不管是任何对象,你都要注意它所交互的类有哪些,并注意它和这些类是如何交互的。这个原则我们可以提供了一些方针,就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:该...原创 2020-03-09 14:16:50 · 92 阅读 · 0 评论 -
命令模式 :封装调用
定义命令模式将"请求"封装成对象,以便使用不同的请求、队列或者日志来参数化其它对象。命令模式也支持可撤销的操作。命令模式设计图模式的意义命令模式,主要的是将请求对象和执行对象进行解耦,也就是类图里面的Invoker和Receiver,这个模式主切入的点很小,但是应用很广,也是解耦思想一个比较重要的模式。// 命令接口public interface Command { ...原创 2020-03-06 17:40:38 · 220 阅读 · 0 评论 -
单件模式
定义单件模式确保一个类只有一个实例,并提供一个全局访问点。普通多线程原创 2020-03-02 10:49:36 · 118 阅读 · 0 评论 -
观察者模式
定义定义了对象之间的一对多的依赖,这样一来,当一个对象改变时,它的所有依赖者都会收到通知并自动更新。类图思考这个模式我觉的还是比较简单的,在主题里面维护了一个观察者对象集合,当我们主题自身发生变化时,通过对这个集合进行循环,调用所有观察者的update方法,这样就相当于通知了所有的观察者对象。这个核心就是观察者必须继承同一个接口。同时观察者要把自己具体的注册到某个对象上去。...原创 2020-02-24 22:00:49 · 97 阅读 · 0 评论 -
装饰者模式
定义装饰者模式,动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更具有弹性的替代方案。背景星巴克的咖啡DarkRoast超优深培的也有decaf低咖啡因的咖啡等品类,买咖啡的时候同时顾客可以加点蒸奶、豆浆、摩卡、或者奶泡等。正解代码public abstract class Beverage { protected String description=""; ...原创 2020-02-23 22:14:07 · 102 阅读 · 0 评论 -
设计模式原则
开闭原则类应该对扩展开放,对修改关闭。原创 2020-03-02 20:37:01 · 95 阅读 · 0 评论 -
状态模式
定义状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。这个模式将状态封装成为独立的类,并将动作委托到代表当前状态的对象,行为会随着内部状态而改变。场景描述 糖果机就跟街上那个卡一元钱后,小苹果能转出来小球很类似,对于糖果机来说,一共有四种状态,分别是没有25分钱的状态,有25分钱状态,有糖果状态,没糖果状态,其中1和2、3和4状态是互斥的。没引入设计模式...原创 2020-02-21 22:49:30 · 103 阅读 · 0 评论