
【Java】
文章平均质量分 91
Sean_css
每天进步一点点,成为你羡慕的人
展开
-
常见设计模式二:构造者模式
常见设计模式二:构造者模式前言构造者模式也是属于我们常用的设计的一种,比如我们在使用使用 StringBuilder、Retrofit、OkHttp 等,都使用了构造者模式,所以我认为构造者模式是工程师必须掌握的,不仅有助于我们看懂别人的代码,也有助于我们编写出高质量的代码。什么是构造者模式构造者模式又叫生成器模式, 构造者模式是将一个复杂对象构建和它的表示相分离,使得同样的构造过程可以创...原创 2020-03-12 15:19:18 · 2292 阅读 · 0 评论 -
常见设计模式四:代理模式
文章目录静态代理动态代理代理模式又称为委托模式,主要分为静态代理动态代理代理模式的设计里面是限制对对象的直接访问,要想访问具体对象需要通过该对象的代理类去访问。代理模式在很多地方是比较常见的,比如在 ARouter 内部,ARouter 的主要功能是通过其_ARouter 实现的,这里的 ARouter 就是_ARouter 的代理类。/** * Init, it must be...原创 2020-03-12 15:12:17 · 416 阅读 · 0 评论 -
常见设计模式三:工厂模式
文章目录前言一、简单工厂模式二、工厂方法模式三、抽象工厂模式前言前面分别介绍了单例模式和构造者模式,实际开发中,这两个模式的使用概率是很高的,还有一个使用率很高的设计模式就是工厂模式。今天来了解下工厂模式,工厂模式属于创建性模式的一种,而工厂模式本身又被大家分为三种:简单工厂模式工厂方法模式抽象工厂模式一、简单工厂模式简单工厂模式其实更多的是我们平时开发过程中的一个开发习惯,比...原创 2020-03-12 15:10:57 · 278 阅读 · 0 评论 -
常见设计模式一:单例模式
在 23 种设计模式中,我们平时接触使用的最多的可能就是单例模式了,虽然这个设计模式大家都会,也很简单,但是里面还是有些东西值得探讨一下的,最终目的是能够结合实际需要写出最适合的单例代码。单例模式的特点单例模式是为了保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。那么最起码要有以下的特点:不能被其他对象初始化(构造方法需要私有)全局只有一个实例(自己本身只能创建一个实例)对...原创 2019-08-08 13:44:04 · 247 阅读 · 0 评论 -
计算机网络学习之 Https 相关
计算机网络学习之 Https 相关文章目录计算机网络学习之 Https 相关一、前言二、HTTPS 简介为什么要使用 HTTPS?HTTP 和 HTTPS 的区别SSL/TLS三、HTTPS 握手过程1.Client Hello2.Server Hello3.Certificate, Certificate Status, Server Key Exchange, Server Hello Do...原创 2019-06-30 12:05:49 · 560 阅读 · 0 评论 -
计算机网络学习之 http 相关
文章目录一、简介Http 协议的特点二、URI 和 URLURIURLprotocol 协议hostname 主机名port 端口号(可选)path 路径query 查询(可选)fragment 片段(可选)三、网络分层体系3.1 应用层3.2 传输层可靠性连接性报文连接对象个数拥塞控制3.3 网络层3.4 链路层四、HTTP 报文4.1 请求报文1. 请求行2.请求头部3.请求体4.2 响应报文...原创 2019-06-28 19:06:25 · 769 阅读 · 2 评论 -
如何正确的终止一个线程?
文章目录前言1、使用 volatile 关键字修饰 变量的方式终止2、使用 interrupt() 方式终止2.1正常执行,没有被休眠、等待2.2 线程处于阻塞状态3、Stop 方法终止4、使用建议前言我们知道当调用 Thread 的 start()方法,执行完 run()方法后,或在 run()方法中 return,线程便会自然消亡。但是如果一些线程长时间的在后台运行,那么怎么去停止呢?下面...原创 2019-06-10 23:05:42 · 775 阅读 · 0 评论 -
Android提供的 LruCache 的分析
文章目录前言什么是三级缓存缓存的核心 LRU 算法LruCache官方描述看下成员变量和构造方法常用方法分析put() 添加缓存trimToSize() 控制缓存的容量remove() 删除缓存get() 获取缓存evictAll清除全部缓存数据最后前言在日常的开发当中,我们主要的工作就是把用户想要看的信息通过界面展示出来,难免就要和数据打交道,对于一些用户关心的数据,我们肯定是要每次都要从网...原创 2019-06-15 16:35:57 · 589 阅读 · 0 评论 -
HashMap 源码分析
文章目录前言HashMap 简介HashMap 源码分析一些变量和常量构造方法常用方法put、 putVal扩容关键方法 resize没有发生 hash 碰撞发生了 hash 碰撞先判断当前头节点的 key 是否相等,这个会根据 hash 值、key 是否为 null,不为 null 的时候,调用 key 的equals 方法进行比较 key 是否相等。如果为 null ,或者 key 相等,待...原创 2019-06-09 18:12:40 · 238 阅读 · 0 评论 -
LinkedHashMap 源码分析
文章目录前言LinkedHashMap 的介绍LinkedHashMap 分析构造方法存入数据afterNodeInsertion 方法删除数据afterNodeRemoval 方法获取操作afterNodeAccess 方法遍历最后前言前面对 HashMap 的源码做了分析,我们知道 HashMap 内部的数据结构是数组+单链表/红黑树实现的,这种数据结构是不能保证数据插入的有序性的,因为会...原创 2019-06-13 23:13:12 · 498 阅读 · 0 评论 -
LinkedList 源码分析
LinkedList 源码分析文章目录LinkedList 源码分析前言LinkedList 简介LinkedList 源码分析一些属性构造方法作为列表使用的一些方法:添加(add)的一些方法删除(remove)的一些方法修改(set)的一些方法查找(get)的一些方法清除(clear) 的一些方法作为队列使用的一些方法队列是什么?LinkedList 里面的实现add 、offerremove...原创 2019-06-07 16:04:52 · 519 阅读 · 0 评论 -
ArrayList 源码分析
文章目录前言ArrayList 简介ArrayList 源码分析一些属性构造方法add 方法addAll 方法remove 方法set 方法get 方法clear 方法indexOf 方法isEmpty 方法总结前言ArrayList 算是我们开发中最经常用到的一个集合了,使用起来很方便,对于内部元素的随机访问很快。今天来分析下ArrayList 的源码,本次分析基于 Java1.8 。Ar...原创 2019-06-06 16:42:20 · 448 阅读 · 0 评论 -
使用编译时注解实现简易的 ButterKnife 效果
一、前言二、准备三、编码实现3.1 编写注解3.2 编写注解处理器3.3 编写 api 模块四、使用一、前言现在有太多了关于注解的三方框架供我们使用,比如 ButterKnife、Dagger2 等,我们不仅要会使用,还要知道其中的大致原理。接下来就通过一个小的实例来熟悉下编译时注解。关于注解的基础知识就不介绍的,有兴趣的可以去看看这篇文章,写的挺...原创 2018-04-18 15:26:45 · 346 阅读 · 0 评论 -
Java常用集合框架(一)
Java常用集合框架(一)前言一、实现了 Collection 接口1.1、List 接口1.1.1 ArrayList1.1.2 LinkedList1.1.3 ArrayList LinkedList 使用场景1.2、 Set 接口1.2.1 HashSet1.2.2 LinkedHashSet1.2.3 TreeSet1.3、 Queue二、实现了 M...原创 2018-03-29 13:34:54 · 842 阅读 · 0 评论 -
Java反射笔记
Java反射笔记Class的获取Class 的名字Class 的修饰符获取 Class 的成员获取 Filed获取指定名字的属性获取所有属性获取 Method获取 ConstructorField 的操控Field 类型的获取Field 修饰符的获取Field 内容的读取与赋值Method 的操控Method 获取方法名Method 获取方法参数M...原创 2018-03-27 20:52:41 · 707 阅读 · 0 评论 -
Java IO流操作
首先我们得知道:我们存储在硬盘上的文件是byte byte byte…存储的,是数据的集合。java 中的 io 流主要分为:字节流字符流一、字节流字节流又分为输入流 InputStream输出流 OutputStream输入流负责从 源(可以是文件) 读取数据到 Java程序 中。输出流负责把 Java程序 中数据写入到 源(可以是文件) 中。原创 2018-02-02 15:41:39 · 850 阅读 · 0 评论 -
Java多线程
写在前面的话:这篇博客是我从这里“转载”的,为什么转载两个字加“”呢?因为这绝不是简单的复制粘贴,我花了五六个小时对其中每一行的代码都有认真的练习,对其中的一些小错误进行调整,并且重新排版,希望通过本篇博客可以让自己对 Java 多线程有更好的理解,同时也希望能够帮助正在学习多线程的你。 此文只能说是 Java 多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基...转载 2017-05-09 16:39:07 · 751 阅读 · 0 评论