自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

转载 MAC idea快捷键

在mac下idea的常用快捷键如下,下面的快捷键都亲自试用,并有一些和eclipse对比的说明alt+f7查找在哪里使用 相当于eclipse的ctrl+shift+Gcommand+alt+f7 这个是查找选中的字符在工程中出现的地方,可以不是方法变量类等,这个和上面的有区别的command+F7可以查询当前元素在当前文件中的引用,然后按F3可以选择 ,功能基本同上选中文本,按comma...

2019-05-30 11:01:13 1235

原创 JDK源码解读-集合(三)-HashMap

HashMap的数据结构HashMap的结构是数组+链表+红黑树,数组中的每个位置被经常叫做桶。数据采用key-value方式存储。插入值的时候首先对key进行hash运算,计算出他在数组中的下标(桶的编号),每个桶中的元素有两种结构,在元素不多的情况下是链表,至于原因我想是因为这里不需要支持随机访问,而且用链表不需要连续的内存空间。当元素比较多的时候会改为红黑树进行存储,原因是链表的查询时间复...

2019-05-29 21:00:52 117

原创 JDK源码解读-集合(二)-CopyOnWriteArrayList

JDK源码解读-集合-CopyOnWriteArrayList属性分析/** The lock protecting all mutators */final transient ReentrantLock lock = new ReentrantLock();/** The array, accessed only via getArray/setArray. */private t...

2019-05-28 17:10:37 209

原创 JDK源码解读-集合(一)-ArrayList

JDK源码解读-集合-ArrayList如何扩容private void grow(int minCapacity) { // overflow-conscious code //获取原集合的长度 int oldCapacity = elementData.length; //扩容到原来的1.5倍 int newCapacity = oldCapacit...

2019-05-28 17:08:34 168

原创 Java8新特性-Date API用法(七)

LocalDate使用public class LocalDateTest { public static void main(String[] args) { //LocalDate的获取方式 //根据年月日初始化 LocalDate localDate1 = LocalDate.of(2019, Month.MAY, 6); ...

2019-05-28 17:05:04 115

原创 Java8新特性-Map API用法(六)

Java8增加了Map的API,方便我们的操作,使用的场景还是比较多的,在这里做下总结。API介绍方法名称用途说明forEach遍历Map新的遍历Map的形式,以前用entrySet的时候泛型写的很复杂,新的api简单易懂。compute根据原来的值,更新值如果返回的值为null,会从集合中删除掉该键值对,而不是把值更新为nullcomputeIfAb...

2019-05-28 17:02:46 898

原创 设计模式(一):单例模式

运用场景一个类在全局只需要一个实例,例如线程池,缓存注册或者配置对象。实现方式饿汉式单例原理它是在类加载的时候就立即初始化,并且创建单例对象。优点实现简单,绝对线程安全,在线程还没出现以前就实例化了没有加任何的锁,执行效率高缺点如果该类实例化需要加载大量资源,创建比较耗时,类加载的时候无论之后用没用到都会初始化,浪费了内存空间测试代码/** * @author X3471...

2019-05-15 08:56:50 156

原创 设计模式(十):模板模式

概述模板模式通常又叫模板方法模式(Template Method Pattern)是指定义一个算法的骨架,并允许子类为一个或多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式。如何实现一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。情景模拟比...

2019-05-15 00:20:29 76

原创 设计模式(九):原型模式

文章目录概述代码模拟总结浅克隆深克隆值传递与引用传递值传递引用传递概述原型模式(Prototype Pattern)是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。调用者不需要知道任何创建细节,不调用构造函数。代码模拟场景是需要获取同一个姓名的20个学生实例。创建学生,根据姓名获取学生的时候需要去数据库查询获取学生的分数,耗时100mspublic class Stu...

2019-05-15 00:19:20 181

原创 设计模式(八):观察者模式

设计模式(八):观察者模式概述观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新。场景介绍定义一个观察者接口类,同时写两个实现类,作为两种观察者public interface Observer { void update(String state);}...

2019-05-15 00:14:43 64

原创 设计模式(七):代理模式

设计模式(七):代理模式目录文章目录设计模式(七):代理模式目录概述静态代理场景介绍总结和装饰器的区别静态代理的优缺点优点缺点动态代理JDK实现动态代理场景介绍总结实现原理CGLIB实现动态代理总结JDK VS CGLIB区别概述为什么我可以去做这件事情但是非要代理类去做?例如办理签证,手续相当复杂,一般会选择把材料寄过去,由别人代理办理然后寄过来,代理的好处自然就是提高效率。、从代码的...

2019-05-15 00:13:24 82

原创 设计模式(六):策略模式

设计模式(六):策略模式目录文章目录设计模式(六):策略模式目录概述场景介绍总结策略模式 + 委派模式总结概述将不同的内部算法封装成不同策略,调用者可以根据在调用的时候主动控制不同策略,实现同一功能。例如:登录这个功能,系统内部支持多种策略:手机验证码,用户名密码,微信号,QQ号登录等。场景介绍登录接口,有个login方法public interface Login { vo...

2019-05-15 00:05:57 81

原创 设计模式(五):委派模式

设计模式(五):委派模式目录文章目录设计模式(五):委派模式目录概述场景介绍总结对比概述委派模式主要用于任务分发调度派遣。委派者是连接任务执行者和调用者媒介。既然媒介它必然需要包含所有执行者的引用对象,在根据调用者的输入选择适当的执行者去执行,委派和代理模式中的静态代理有很多相似的地方,持有执行者的对象引用,具体业务都是执行者来执行。场景介绍整天的业务场景是一个项目经理管理和两个成员共...

2019-05-15 00:03:51 113

原创 设计模式(四):装饰器模式

设计模式(四):装饰器模式目录文章目录设计模式(四):装饰器模式目录装饰器模式的特点举例装饰器模式的特点为了某个实现类在不修改原始类的基础上进行动态地覆盖或者增加方法,持有原始类的引用同源,该实现保持跟原有类的层级关系。举例首先我们定义Drink接口,包含一个taste方法,返回这个喝的味道怎么样public interface Drink { String tast...

2019-05-14 23:23:56 136

原创 设计模式(三):适配器模式

设计模式(三):适配器模式之前写了两篇,反思了下怎么才算真正理解设计模式,觉得只要可以举个例子让大家明白,就算真正理解了,所以设计模式离不开场景,这里就给大家举个形象的例子,帮助大家理解适配器模式。目录文章目录设计模式(三):适配器模式目录类适配器场景介绍总结使用场景对象适配器场景介绍总结类适配器场景介绍首先先介绍下自己,Java技能包括基础和web,我学的是java,所以实现了该接口...

2019-05-14 23:15:27 132

原创 设计模式(二):工厂模式

设计模式(二):工厂模式文章目录设计模式(二):工厂模式简单工厂概述代码模拟总结工厂模式概述代码模拟总结抽象工厂模式概述代码模拟总结简单工厂概述简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。代码模拟首先定义一个接口Car,包含一个drive的方法public interface Car { void dr...

2019-05-14 23:10:45 298

原创 Java8新特性-CompletableFuture(五)

JAVA8新特性CompletableFutureCompletableFuture比Future好在哪future接口可以构建异步应用,但依然有其局限性。它很难直接表述多个Future 结果之间的依赖性。实际开发中,我们经常需要达成以下目的:将两个异步计算合并为一个——这两个异步计算之间相互独立,同时第二个又依赖于第 一个的结果。等待 Future 集合中的所有任务都完成。...

2018-09-07 09:37:25 286

原创 Java8新特性-分组groupingBy-实战(三)

利用Java8 StreamAPI完成项目需求需求将一批数据转换成页面的格式,如下 表格1 IP 类型 次数 172.12.12.1 QQ 2 172.12.12.2 微信 1 172.12.12.2 QQ 2public class Demo2 { public static class ...

2018-09-06 23:40:24 1721

原创 Java8新特性-CompletableFuture-实战(二)

CompletableFuture重构我的业务代码描述业务场景根据一个手机号获取一批结果集合,业务需要时并发查询solr服务和rw服务,然后将rw的第一条结果取出来和solr的结果合并成一个list返回,同时solrServer服务返回结果的时候,还需要根据结果去调用tag服务和pic服务丰富数据延迟模拟和期望返回时间solrServer延迟1srwServer延迟5st...

2018-09-06 23:38:24 293

原创 Java8新特性-Optional<T>(四)

Optional的作用显示的告诉调用者这个值有可能是空值,需要显示的判断,避免出现空指针的异常。例如:public class People { //一个人,肯定是有头的 private String head ; //但是一个人不一定有帽子, private Optional&lt;String&gt; hat ; public ...

2018-09-06 23:30:19 3110 1

原创 Java8新特性-Stream API 之Collector(三)

Collector与Collectors之间的关系作为collect方法的参数,Collector是一个接口,它是一个可变的汇聚操作,将输入元素累计到一个可变的结果容器中;它会在所有元素都处理完毕后,将累积的结果转换为一个最终的表示(这是一个可选操作);Collectors本身提供了关于Collector的常见汇聚实现,Collectors的内部类CollectorImpl实现了Colle...

2018-08-15 00:40:06 411

原创 Java8新特性-Lambda-实战(一)

起因今天早上和小伙伴闲聊中讲到了代码中很多switch case,或者if else if…感觉low到爆,然后大神用反射方法对这边进行了改造,代码瞬间看上去好多了。 下午review自己项目中的代码,竟然也发现了这类代码,需求是根据关键字判断关键字的类型,手机?QQ?EMAIL…,之前看了Java8实战,就有了一些想法,也对为什么要出现函数式变成,函数式接口有了一些理解,有点茅塞顿开的感...

2018-08-14 22:33:25 1203

原创 Java8新特性-Stream API(二)

Java8 Stream API定义 流是JavaAPI的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集合的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码了与传统写法的优势声明性——更简洁,更易读可复合——更灵活可并行——性能更好演示代码: publ...

2018-08-14 22:20:30 229

原创 Java8新特性-Lambda表达式(一)

JAVA8 Lambda表达式Lambda表达式是所有Java8新特性中比较重要的特性,同时也是一些后续新特性的基础,比如在Stream特性中就大量运用了这一新特性,本篇文章主要是个人的一些理解和示例代码什么是Lambda表达式 个人的理解是一种匿名函数的语法,在功能上与匿名函数一致。lambda表达式为匿名函数定义了更简洁灵活的语法为什么需要Lambda表达式下...

2018-06-21 01:01:53 253

原创 如何使用intellij

第五位

2018-06-15 11:29:30 817

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除