2 1024个秘密

尚未进行身份认证

好好工作,好好学习,好好生活。

等级
TA的排名 7w+

并发编程 - Lock的通信方式Condition的使用和源码解析

Condition的使用和原理Lock的通信方式:conditionCondition的使用ConditionWaitpublicclassConditionWaitimplementsRunnable{privateLocklock;privateConditioncondition;publicConditionWait(Lockl...

2019-08-31 22:03:12

并发编程 - 重入锁以及AQS源码

一、J.U.C简介Java.util.concurrent并发工具包,包括线程池、阻塞队列、计时器、同步器、并发集合等;二、Lock的基本应用J.U.C的核心组件。三、ReentrantLock重入锁四、AQS原理分析五、AQS源码分析...

2019-08-31 18:46:05

并发编程 - volatile关键字底层详解

一、volatile能干什么?如下所示的代码里,有t1线程和主线程,主线程改变了stop的值,但是t1线程并不知道,一直在执行。publicclassTest{publicstaticbooleanstop=false;publicstaticvoidmain(String[]args)throwsInterruptedException{...

2019-08-25 20:28:50

并发编程 - 对象的wait / notify方法实现线程的通信机制

例如常见的生产者-消费者模式:一边生产,一边消费。需要线程之间的通信,就可以利用wait/notify方法来实现。object.wait()和object.notify()wait的作用:1、实现线程的阻塞;2、会释放当前的同步锁notify的作用:唤醒一个被阻塞的线程;notifyAll的作用:唤醒所有被阻塞的线程,再去重新竞争。代码demo:/***@descr...

2019-07-28 21:02:20

并发编程 - 偏向锁、轻量级锁、重量级锁的升级

线程安全&线程不安全线程不安全:多个线程同时去访问一块共享资源,会出现数据不一致的问题。demo:publicclassAtomicDemo{privatestaticintcount=0;publicstaticvoidincr(){try{Thread.sleep(1);...

2019-07-28 20:03:49

20190722 - Java垃圾回收详解

一、什么是垃圾回收垃圾回收(GarbageCollection,GC):释放垃圾占用的空间,防止内存泄漏。对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。GC并不是Java的专利,它的历史比Java更久远哦~二、什么样的就算垃圾呢2.1引用计数算法参考链接:https://mp.weixin.qq.com/s?__biz=MjM5ODI5Njc2MA==&mid=2...

2019-07-23 21:34:37

20190719 - 服务调用大全

一、服务的三要素一个网络服务主要包括以下三个要素:地址:调用方需要根据地质访问网络。IP地址、服务端口、服务协议;协议格式:协议都有哪些字段协议名称:或者叫协议类型,用协议类型(名称)区分不同的网络接口。服务调用的寻址过程如下:名词解释:服务实例:服务对应的IP地址加端口的简称。服务注册:某个服务实例宣称自己提供了哪些服务,即某个IP地址+端口都提供了哪些服务接口。服...

2019-07-22 22:02:48

20190718 - 微服务划分

微服务是一个很抽象的概念,它的划分更是抽象。划分的粒度太粗,服务太重;划分的粒度太细,在分布式系统中会让开发、测试、部署和运维都变得极其困难。所以,应该如何划分呢?一、要遵守两个原则1、单一职责把因相同原因变化的东西聚合在一起,需要调整的类也都放在一起;2、自治原则满足资源隔离,每个服务的数据私有。二、大佬们的拆分思想1、第一种拆分1.1纵向拆分从业务维度拆分,关联紧密的...

2019-07-19 10:17:09

并发编程 - 线程基础篇

一、并发的发展历史1、真空管/穿孔打卡工作流:把程序写在纸上,打成卡片,把卡片的程序输入到计算机上,电脑运行出结果打印到打印机上。最大的问题,计算机在等程序输入的时候,会处于空闲状态。2、晶体管/批处理操作系统工作流:把程序写在卡片上,读入到磁盘机上,电脑通过读取磁盘机上的内容进行运行,将结果输入到打印机上。解决了计算机空闲问题,计算机会一直处于运行状态。带来的问题:IO问题...

2019-07-17 21:50:24

网关2 - 网关如何调用API

什么是APIAPI-->官方解释:应用编程接口。首先,它是一个接口,其次它基于应用,并且它是可编程的。API的生命周期1、设计(方法名+入参+出参)名字:可以解释接口功能,见文知意;入参:不要公开不合理的参数;出参:错误码明确;2、构建(编写内部逻辑):注意,进入方法先判参;3、文档:接口的注释和接口文档写清楚;4、测试:测试接口是否满足功能;5、分享:即...

2019-07-17 19:52:45

网关1 - 认识网关

网关是个啥?将所有API调用统一接入网关,由网关负责接入和输出。为啥需要网关(APIgateway)?首先,单体应用时代,也就是把所有服务写在一个应用里,部署在同一个tomcat上,辣么,是不需要网关的。接着,业务越做越大,单体应用已经不满足需求了,这时候,微服务就出现了,也就是把原来集中于一体的应用分离开来,进行功能拆分,实现单独发布,运维等。这时候,如果多个客户端都需要调用这些服务,...

2019-07-17 14:14:41

20190716 - 微服务

一、基本概念Docker--》go语言Java+微服务+Docker可发挥最大效能Python、JS、PHP、Ruby、C++RPC:远程过程调用虽然每个系统实现的语言不一样,但是只要遵循某种协议对外提供接口,比如都对外提供HTTP的接口,它们便可以相互调用。徐庶:“基于远程调用的分布式系统,我很早就在研究,这里面的复杂度可是单机程序所不能比拟的。”庞统:“哦?愿闻其详...

2019-07-16 14:47:39

Spring - 基础篇

一、认识SpringSpring不仅仅只是一个框架,已然已经成为一种生态了。例如,我们熟知的“Spring全家桶”(包括SpringMVC、SpringBoot、SpringCloud等)。Spring最主要的目的就是简化开发。它可以帮助我们管理对象,管理它们之间的依赖关系,并提供一些通用的日志记录,包括性能统计,安全控制,异常处理等,还有提供面向切面,数据库事务等功能。并且它有很厉害的插...

2019-07-14 17:43:56

开工一年之成长感悟

步入职场已一年,有成长有感悟,简单总结如下:小成长刚开始:对未知的恐惧以及不自信,会不会很难,会不会拖团队后腿,一定要踏踏实实干活,认认真真的学习。过了一段时间后:逐步接了一些小需求,好像有了一点点自信,感觉也没有想象中的那么难,感觉也就是对数据的增删改查和调一些接口。再过一段时间后:开始接一些稍微大一点的需求,自己去捋流程,又感觉好像还是蛮难的,要考虑如何在开发前考虑周全,如何保证库表的...

2019-07-14 16:49:21

设计模式之大总结

设计模式在于理解,而不只在于形式。不要为了套用设计模式而使用设计模式,而是在业务上遇到问题的时候,很自然的想到设计模式可以做为一种解决方案。设计模式是一门艺术,来源于生活,属经验之谈。...

2019-07-14 16:47:00

设计模式之观察者模式

一、基本概念观察者模式定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化的时候,它的所有的依赖者(观察者)都会收到通知并更新,属于行为型模式。观察者模式有时也叫发布订阅模式。二、生活实例消息通知三、代码示例3.1JDK方式/***@description:JDK提供的观察者的实现方式*@author:annecheng,2019-0...

2019-07-14 16:45:17

设计模式之装饰者模式

一、基本概念装饰者模式是指在不改变元有对象的基础之上,将功能附加对象上,提供了比集成更有弹性的替代方案(扩展原有对象功能),属于结构型模式。适用场景:1、用于扩展一个类的功能或者给一个类增加职责。2、动态的给一个对象添加功能,这些功能也可以动态的撤销掉。二、生活实例煎饼果子加火腿加鸡蛋还是煎饼果子。三、代码实例/***@description:煎饼果子基础套餐*@au...

2019-07-14 16:40:14

设计模式之适配器模式

一、基本概念适配器模式是指将一个类的接口转换成客户期望的另一个接口,使得原本的接口不兼容的类可以一起工作。属于结构型设计模式。使用场景:1、已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。2、适配器模式不是软件设计阶段需要考虑的模式,是随着软件维护由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案。二、生活实例三、代码实例/***@descrip...

2019-07-14 16:35:12

设计模式之模板模式

一、基本概念模板模式,又叫模板方法模式,是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为型设计模式。使用场景:1、一次性实现一个算法的不变部分,将可变行为留给子类来实现。不变的部分一般声明为final,可以被重写的方法一般称为钩子方法,即在父类中给一个默认实现,在子类中可以重写,一般声明为抽象方法。...

2019-07-14 16:29:22

设计模式之代理模式

一、基本概念代理模式是指为其他对象提供的一种代理,以控制对这个对象的访问。代理对象在客户端与目标对象之间起到中介作用,属于结构型设计模式。可以保护目标对象,增强目标对象。二、生活实例房产中介~三、代码实例/***@description:订单类*@author:annecheng,2019-06-2917:42*/publicclassOrder{...

2019-07-14 16:18:47

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。