自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 彻底分析七大软件架构设计原则之依赖倒置原则(DIP)

前言:最近在看书的时候看到了一个很熟悉的名词,依赖倒置原则,这个对于Java开发人员来说应该都很熟悉,但是有多少人真的搞懂了这个名词的含义?网上大概搜索了一下基本上都是只有名词的定义,而不是真正的去解释这个含义,所以我决定写一篇文章分析一下这个名词的含义。如果哪里写的不对也欢迎指正和批评。正文:一:依赖倒置原则的定义1.High-level modules should not depend onlow-level modules. Both should depend on abst.

2021-01-19 22:53:18 277 1

原创 java8新特性之接口默认方法(扩展方法)

一、背景:java8新增加了特性,允许接口增加非抽象的方法实现,方法必须使用default声明,此方法可以在子类中直接使用,也可以在子类中重写,为什么要增加这一特性原因其实很简单,因为接口和实现类耦合度过高,使用java的同学肯定有感触,当要为接口增加一个方法时,所有实现类接口都要跟着改动,默认方法就是为解决这个问题而生,给接口增加方法而不破坏原有的接口实现。java8的大版本升级带来了很多功能上接口上的更新,为了向下兼容,所以增加的这一特性(bibi两句:这么解释其实有点打脸,piapia的,依然记得

2020-08-20 22:21:12 647

原创 GC相关的内容

2021-02-16 20:35:42 104

原创 七大软件架构设计原则

前言: 看了很多技术类的书籍,但是每看每忘,大概是没有找到非常正确的学习方法,开始使用思维导图去记录看过的一些知识,整理思维和帮助自己记忆也留作记录,但是不太会操作,所以只能截图发上来。主要目的是留给自己看的,当然如果写的有问题还请不吝指教正文:...

2021-01-31 11:57:00 141

原创 创建型设计模式之工厂方法模式

背景:如上一篇文章简单工厂模式,其中的一个问题就是工厂太单一,如果产品比较复杂,扩展是工厂会变的比较臃肿,变成了一个大杂烩的工厂,随着产品的赠品,一定会产生维护艰难的情况发生,而且也不符合单一职责的原则,所以为了解决这个问题引出了一个设计模式,工厂方法模式。根据单一职责原则,我们将工厂抽象,专门的工厂解决创建专门的产品。类图:举个例子:1:新建一个产品的上层抽象接口,比如我的目的是实现输出汽车的名称,首先抽象一个ICar的接口public interface ICar {.

2020-08-30 22:38:53 108

原创 创建型设计模式之简单工厂模式

应用场景:当某产品有一些种类且种类不是特别多的情况下,可以选择使用简单工厂来创建所需产品(对象),而不需要关心具体的创建细节,相对来说便于后面的维护和扩展(必须增加产品种类不需要改动太多之前的代码)简单工厂类图:代码如下:1:新建一个产品的上层抽象接口,比如我的目的是实现输出汽车的名称,首先抽象一个ICar的接口public interface ICar { public void name();}2:分别建两个类,实现ICar接口,重写name()pub.

2020-08-30 21:13:44 113

原创 java8新特性之参数函数化

背景:基于java8函数式编程,将函数式编程真实的代入代码中上代码:一个拍脑袋随便想的功能,开启汽车上的空调,例子比较智障,参考代码实现即可没有必要较真例子是否合理1:构建函数式接口(空调接口,具有开关功能)@FunctionalInterfacepublic interface ICarAirConditioner { void conditionerSwitch(Car car, String yuyin);}2:汽车类接口public interfac.

2020-08-26 22:46:21 837 2

原创 java8新特性之Lambda表达式

一:背景java8最重要的改变之一就是lambda,lambda源于数学中的λ演算,对应的含义是匿名函数,在java中我们可以将其理解函数可以向参数一样进行传递。lambda为java填补了函数式编程的缺失,这种方式从好的角度来说可以是编程风格更简洁,代码更紧凑。二:Lambda表达式基础语法1:lambda表达式的重要特征:(1)无需声明参数类型,编译器会进行类型推断。(2)参数大于一个,不包括一个则必须写圆括号,没有参数是有空圆括号()。(3)lambda表达式可以包含一条.

2020-08-25 22:09:32 134

原创 Java8匿名内部类

前言:本篇文章讲解java的匿名内部类,匿名内部类,顾明思意,是一个没有显示名字的内部类,其实质是对内部类的简化写法,匿名内部类会隐式的实现一个接口或者继承一个类。匿名内部类适合创建只使用一次的类,如果一个类只使用一次的话就无须使用平时常用的方法,继承或者实现父类后,再去实例化对象,使用匿名内部类可以简化这个编程的过程,并且不会编译生成单独的.class文件。匿名内部类的语法:1:基础语法new 类名/接口/抽象类(){};2:实现普通类的匿名内部类public c.

2020-08-18 22:33:21 859

原创 三个线程按顺序打印分别打印ABC

public static Lock lock = new ReentrantLock(); public static int count = 1; public static Condition condition1 = lock.newCondition(); public static Condition condition2 = lock.ne...

2020-02-29 15:54:59 290

原创 顺序递增打印正整数,从1开始打印到100,中间换行分隔。不允许重复打印出相同的数字,比如打印结果里出现2个5,3个6之类的。

public static Lock lock = new ReentrantLock(); public static int count = 1; public static Thread thread1 = new Thread(() -> { while (count < 100) { lock.lock();...

2020-02-29 12:48:20 745

转载 sleep() wait() yield() join()用法与区别

转载自https://www.cnblogs.com/yhc20091116/p/4317338.html1.sleep()方法在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”。不推荐使用。sleep()使当前线程进入阻塞状态,在指定时间内不会执行。2.wait()方法在其他线程调用对象的notify或notifyAll方法前,导致当前线程等待。线程会释放掉它所占...

2019-01-06 10:18:25 156

原创 leetcode-1.two sum(两数之和)

前言:元旦放假实在无聊,写点代码娱乐自己吧,平时工作负责项目管理方面的东西相对多了一些,作为一个热爱编程的人实在是手痒,趁着假期练练手,当然了,不是为了刷题,就是为了让自己保持一个编程的状态。个人觉得为了刷题而刷题会失去很多写代码的乐趣,由于自己水平有限,如果代码有问题或者有什么更好的办法也欢迎各位大神提意见,感谢。题目来源:https://leetcode-cn.com/problems...

2018-12-31 14:30:19 115

原创 输出n对圆扩号的所有有效组合

前言:n年前,面试某大厂时,面试官要求手写该算法,当时记得只说出了想用递归去做,但具体实现上由于紧张等原因吧,思路不够清晰,没有描述清楚,当时的面试也是挂掉了,后来也想过,但是没整理出来,直到最近看到leetcode上有道题(https://leetcode.com/problems/generate-parentheses/)与我当时面试的题及其类似,花了一上午的时间整理出来该题,仅供参考(...

2018-12-28 17:45:48 120

原创 java静态变量,静态代码块,普通代码块,构造函数加载顺序

前言:java成员变量和构造方法等加载顺序是一个很基础又很容易搞混的东西,今天写下来算是更明确一些正文:废话不多说上代码 public class Father { public Father(){ System.out.println("加载父类构造函数"); } public static String fatherStaic...

2018-12-23 22:31:38 1016

原创 就当是开卷有益吧

        时间21点55分,犹犹豫豫不知该给自己的这篇文章取什么名字,左思右想还是先写内容吧。        近来几天,颇为不宁,闻听互联网寒冬将至,不少互联网公司纷纷裁人,尚处于无车无房等待结婚状态的我,经常会有一种失业的恐惧,以此为背景下,在上周末参加了公司组织的一场两天的ScrumMaster的培训,当然了今天想说的不是这个培训怎么样,而是在培训开始前,我司领导的一个互动式讲话让我...

2018-12-17 22:37:14 110

空空如也

空空如也

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

TA关注的人

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