![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
因为我的心
会有莫名的伤感,会有突如其来的运气,一切来得恰到好处!
展开
-
观察者模式
一、前言:二、代码实现:1、客户端调用: MangoAttention attentions = new MangoAttention();//目标 attentions.add(new CustomerObserver("deer")); attentions.add(new CustomerObserver("james")); attentions.add(new CustomerObserver("lison")); a原创 2021-08-23 16:53:46 · 182 阅读 · 0 评论 -
责任链模式
一、前言:二、代码实现:原创 2021-08-23 16:41:01 · 178 阅读 · 0 评论 -
Java策略模式
一、前言:二、代码实现:原创 2021-08-23 16:35:25 · 134 阅读 · 0 评论 -
模板方法模式
一、前言:二、代码实现:原创 2021-08-23 16:27:38 · 77 阅读 · 0 评论 -
Java外观模式
一、前言:二、代码实现:1、客户端调用: PickService pickService = new PickService(); PackService packService = new PackService(); SendService sendService = new SendService(); //采摘 Log.d("LUO","--------------"); pickService.doPi原创 2021-08-23 15:40:40 · 108 阅读 · 0 评论 -
Java组合模式
一、前言:二、代码实现:1、客户端调用: //根目录 DistrictNode root = new DistrictNode("根"); //一线目录 root.addChild(new DistrictNode("上海")); root.addChild(new DistrictNode("天津")); DistrictNode districtNode = new DistrictNode("北京原创 2021-08-23 15:06:58 · 81 阅读 · 0 评论 -
Java代理模式
一、前言:二、代码实现:1、客户端调用 //本地代理类 OrderService orderService = new ProxyOrder(); orderService.saveOrder();2、OrderService/** * 订单接口 */public interface OrderService { int saveOrder();}3、ProxyOrderpublic class ProxyOrder implement原创 2021-08-23 14:27:12 · 73 阅读 · 0 评论 -
装饰器模式
一、前言:二、代码实现:1、客户端调用 private void initEvent8() { AbstractFactory factory = new AppleFactory(); //得到水果 Fruit fruit = factory.getFruit(); fruit.draw(); //得到包装 Bag bag = factory.getBag(); //现需要增加防伪原创 2021-08-23 14:10:40 · 69 阅读 · 0 评论 -
桥接模式学习
一、前言:二、代码实现:1、客户端调用 //桥接模式 btn_7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //袋子型号 BagAbstraction bag = new BigBag(); //袋子材质原创 2021-08-20 17:34:08 · 75 阅读 · 0 评论 -
java排序算法汇总
一、排序算法概述排序就是将一组对象按照某种逻辑顺序重新排列的过程。比如,订单按照日期排序的——这种排序很可能使用了某种排序算法。在计算时代早期,大家普遍认为30% 的计算周期都用在了排序上。如果今天这个比例降低了,可能的原因之一是如今的排序算法更加高效,而并非排序的重要性降低了。现在计算机的广泛使用使得数据无处不在,而整理数据的第一步通常就是进行排序。几乎所有的计算机系统都实现了各种排序算法以供系统和用户使用。即使你只是使用标准库中的排序函数,学习排序算法仍然有三大实际意义:IT从业人员必备技能,也转载 2021-07-25 20:21:23 · 179 阅读 · 0 评论 -
java红黑二叉树
一、前言:package com.enjoy.tree;import java.util.ArrayList;import java.util.List;/** * @author 【享学课堂】 King老师 * 哈夫曼树 */public class HuffmanTree { //节点 public static class Node<E> { E data; //数据 int weight; //权重原创 2021-07-11 22:53:28 · 73 阅读 · 0 评论 -
数据结构与算法-HashMap
一、前言:总结:原创 2021-07-11 21:45:32 · 92 阅读 · 0 评论 -
数据结构与算法- 栈和队列
一、前言:二、队列:三、栈四、JVM原创 2021-07-11 18:43:14 · 67 阅读 · 0 评论 -
缓存简单介绍
一、前言:原创 2021-07-09 13:47:22 · 85 阅读 · 0 评论 -
数据结构学习-线性表
一、前言:二、数据结构:1、数组2、线性表3、顺序表4、顺序表的增删改查原创 2021-07-05 23:31:31 · 117 阅读 · 1 评论 -
适配器模式
一、前言:二、代码实现:1、客户端调用 //准备用途苹果盒代替 Orange orange = new Orange("peter",100); OrangeBag bag = getBag2(); orange.draw(); orange.pack(bag);客户端调用方法 private static OrangeBag getBag2(){ //准备用途苹果盒代替 AppleBag appleBag = new原创 2021-06-28 16:46:28 · 86 阅读 · 0 评论 -
建造者模式
一、前言:二、代码实现:1、客户端调用: //收银台 Builder builder = new HolidayBuilder(); //以下是模板代码,不轻易更改 builder.buildApple(120); builder.buildBanana(80); builder.buildOrange(50);原创 2021-06-28 16:14:50 · 74 阅读 · 0 评论 -
抽象工厂模式
一、前言:二、使用:1、客户端调用: //初始化工厂AbstractFactory factory = new com.dotc.patterndemo.create.factory.abstractFacttory.AppleFactory(); //得到水果 Fruit fruit = factory.getFruit(); fruit.draw(); //得到包装 Bag bag = factory.getBag();原创 2021-06-28 15:37:46 · 67 阅读 · 0 评论 -
简单工厂模式
一、前言:二、代码实现:1、调用实现//简单工厂模式Fruit fruit = StaticFactory.getFruit(StaticFactory.TYPE_APPLE); fruit.draw();//多工厂模式调用// Fruit fruitOrange = StaticFactory.getFruitOrange();// fruitOrange.draw();2、StaticFactory实现/** * 简单工厂模式 --- 静态工厂模式 */publ原创 2021-06-28 13:53:44 · 83 阅读 · 0 评论 -
设计模式三大分类-创建型、结构型、行为型
一、创建型:创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关心创建对象过程中的逻辑。创建型简单工厂模式严格意义来说,不属于GOF23种设计模式工厂方法模式只对结果负责,封装创建过程抽象工厂模式-原型模式拔一根猴毛,吹出千万个。单例模式单例和原型是互斥的 保证原创 2021-06-28 10:30:23 · 2140 阅读 · 0 评论 -
单例模式中的懒汉模式和饿汉模式是什么?区别又是什么?
1.懒汉模式:顾名思义,他是一个懒汉,他不愿意动弹。什么时候需要吃饭了,他就什么时候开始想办法搞点食物。即懒汉式一开始不会实例化,什么时候用就什么时候new,才进行实例化。2.饿汉模式:顾名思义,他是一个饿汉,他很勤快就怕自己饿着。他总是先把食物准备好,什么时候需要吃了,他随时拿来吃,不需要临时去搞食物。即饿汉式在一开始类加载的时候就已经实例化,并且创建单例对象,以后只管用即可。3.懒汉式代码实现:public class Singleton { //默认不会实例化,什么时候用就什么原创 2021-03-12 14:03:33 · 19355 阅读 · 4 评论 -
Java 虚拟机(JVM)
1、简述 JVM 垃圾回收机制在 JVM 中,有一个垃圾回收线程,它是低优先级的,在正常情况下是不会执行的,只有在虚拟机空闲或者当前堆内存不足时,才会触发执行,扫描那些没有被任何引用的对象,并将它们添加到要回收的集合中,进行回收。2、JVM 的内存结构Java 堆(Heap) java内存最大的一块,所有对象实例、数组都存放在java堆,GC回收的地方,线程共享。方法区(Method Area) 存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码数据等。(即永久带),回收目标主要是常转载 2021-03-12 11:14:28 · 105 阅读 · 0 评论 -
JAVA排序
一、前言:1、稳定性的定义能保证两个相等的数,经过排序之后,其在序列的前后位置顺序不变。(A1=A2,排序前A1在A2前面,排序后A1还在A2前面)2、排序算法不稳定的含义在排序之前,有两个数相等,但是在排序结束之后,它们两个有可能改变顺序,这就是说明该排序算法具有不稳定性。3、分类① 稳定性排序:冒泡排序,插入排序、归并排序、基数排序② 不稳定性排序:选择排序、快速排序、希尔排序、堆排序4、排序算法可以分为内部排序和外部排序。定义:内部排序是数据记录在内存中进行排序。1原创 2021-03-02 17:05:37 · 115 阅读 · 0 评论 -
JAVA中的栈和堆的区别
一、前言:1、简介:1、堆栈是两种数据结构,只能在一端对数据项进行插入和删除。2、在单片机应用中,堆栈是个特殊的存储区,主要是暂时存放数据和地址。3、堆,队列优先,先进先出4、栈,先进后出2、java中堆栈的概念1、栈(stack)与堆(heap)都是java用来在内存中存放数据的地方。2、java自动管理栈堆,程序员不需要理会(与C++不同)。3、栈,存储速度比堆快,仅次于CPU中的寄存器。缺点是,大小和生命周期是确定的缺少灵活性。4、栈数据在多线程或者多个栈之间是不可以共享的5、栈原创 2021-02-23 15:39:39 · 3459 阅读 · 0 评论 -
JVM 总结
1.JVM 原理https://blog.csdn.net/qq_41701956/article/details/819739442.JVM 面试题https://blog.csdn.net/qq_41701956/article/details/1000740233. JVM 内存模型https://blog.csdn.net/qq_41701956/article/details/...转载 2019-09-01 18:27:34 · 83 阅读 · 0 评论 -
Android 面试(三)
一、前言:这是Android 中高级面试题,也是必须掌握的,在这里总结一下。二、中高级面试题1、Activity生命周期?onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy()2、Service生命周期?service 启动方式有两种,一种是通过startSe...原创 2019-08-21 16:58:59 · 178 阅读 · 0 评论 -
Android 面试(二)
一、前言:这一篇是安卓高端面试的技术题,这些题目有点技术含量,有些没有具体的答案,需要好点时间去研究一下的。二、图片面试1. 图片库对比2. LRUCache原理LruCache是个泛型类,主要原理是:把最近使用的对象用强引用存储在LinkedHashMap中,当缓存满时,把最近最少使用的对象从内存中移除,并提供get/put方法完成缓存的获取和添加。LruCache是线程安全的,因为使...原创 2019-08-21 16:29:56 · 939 阅读 · 0 评论 -
Java 面试总结(二)
一、Java 基础:面向对象和面向过程的区别面向过程优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗 资源;比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最重要的因素。缺点: 没有面向对象易维护、易复用、易扩展面向对象优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特 性,可以设计出低耦合的系统,使系统更加灵...原创 2019-08-20 18:09:35 · 101 阅读 · 0 评论 -
Java面试总结(一)
Java 基础:&和&&都可以用作逻辑与的运算符&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。Collection 和 Collections的区别答:Collection是集合类的上级接口,继...原创 2019-08-20 16:05:38 · 192 阅读 · 0 评论