自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式(八):装饰模式

模式动机一般有两种方式可以实现给一个类或对象增加行为:继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。关联机制,即将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为,我们称这个嵌入的对象为装饰器(Decorator)装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,换言之,客户端并不会觉得对象在装饰前和装饰后有什么不

2020-12-27 15:48:59 966

原创 设计模式(七):桥接模式

模式动机设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:第一种设计方案是为每一种形状都提供一套各种颜色的版本。第二种设计方案是根据实际需要对形状和颜色进行组合对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便。设计方案二即是桥接模式的应用。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编写量。模式定义桥接模式:

2020-12-27 14:58:34 902

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

模式动机在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式。通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,现有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是因为现有类中方法名与目标类中定义的方法名不一致等原因所导致的。在这种情况下,现有的接口需要转化为客户类期望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不能利用现有类所提供的功能,适配器模式可以完成这样的转化。在适配器模式中可以定义一个包装类,包装不兼容接口的对

2020-12-27 14:14:11 968

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

模式动机Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例。 单例模式有以下特点:​ 1、单例类只能有一个实例。​ 2、单例类必须自己创建自己的唯一实例。​ 3、单例类必须给所有其他对象提供这一实例。​ 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。懒汉式单例//懒汉式单例类.在第一次调用的时候实例化自己 public class Singleton { private Singleton() {

2020-12-25 16:59:51 960

原创 设计模式(四):建造者模式

模式动机在现实生活中,有很多复杂的对象,拥有很多的组件,例如手机,有显示屏、CPU等;我们使用的时候是一起使用的,但是我们基本上不知道这些部件的实现细节,这时我们可以通过建造者模式对其进行设计和描述,建造者哦是将部件和其组装过程分开,一步一步创建一个复杂的对象,用户只需要指定复杂的类型就可以得到该对象,而无须知道其内部的具体构造细节。​ 在软件开发中,也存在大量类似汽车一样的复杂对象,它们拥有一系列成员属性,这些成员属性中有些是引用类型的成员对象。而且在这些复杂对象中,还可能存在一些限制条件,如某些属性

2020-12-25 15:24:39 993

原创 设计模式(三):抽象工厂模式

模式动机​ 在工厂方法模式中,每一个产品对应于每一个具体的工厂方法。但是一般的情况下,我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。产品等级结构:产品等级结构业绩回升产品的继承结构,例如一个抽象类是数据库,数据库有MySQL、Oracle等。产品族:在抽象工厂模式中,产品族着的是同一个工厂生产的,位于不同产品等级结构的一组产品,例如Oracle公司有Oracle数据库、Java语言等。​ 如果系统所提供的工厂所需生产的具体产品ing不是一个简单的对象,而是多个位于不同产品等级结构中属于

2020-12-24 16:22:20 1109 1

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

模式动机​ 在简单工厂模式中,如果在原来的实现的基础上,我们再增加一个产品类的实现,那么我们必须在原来的工厂方法里修改工厂类的源代码.那么有没有更好的方法,可以不修改工厂类的源代码而进行动态的可扩展呢?今天我们将要介绍的设计模式之工厂方法模式,就是这样的一个很好的设计思路:将工厂类进行抽象,根据不同的产品创建不同的工厂类,如果动态的增加了一个产品,我们只需要实现这个产品的具体类的工厂类即可。模式定义​ 工厂方法模式也称为工厂模式,属于创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口

2020-12-24 15:17:34 1289

原创 设计模式(一):简单工厂模式

模式动机​ 做过Web开发的开发者都知道,在将用户的密码存储在数据库中时,我们需要将密码首先加密然后在写入数据库。 在Java中,我们常用的加密手段有MD5、RSA等。我们使用的代码是:KeyPairGenerator.getInstance("RSA");如果我们需要使用MD5时传入的参数就是MD5。这里,就是我们今天需要讲解的简单工厂模式。模式定义​ 简单工厂模式又称为静态工厂模式,这个模式数据创建式模式。在简单工厂模式中,根据传入的参数,返回不同类的实例。模式结构简单工厂模式包含如下角

2020-12-24 14:17:35 2867 1

原创 了解多线程的意义和使用

1.java实现线程方式?1、继承Thread类创建线程类2、通过Runnable接口创建线程类3、通过Callable和Future创建线程2.线程和进程的区别?进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位进程中可能包含多个线程3.如何终止一个线程?1.执行结束2.thread.stop() 不推荐使用3.发通知 thread.interrupt() 复位方式( 抛异常 Thread.interrupted())4.interrupt和interrupted的区

2020-12-23 17:59:19 2058

原创 并发编程带来的挑战

一、 简述锁升级的流程和原理为了防止多线程访问共享资源造成线程阻塞的问题,并不会立马对共享资源加重量级锁,使线程进入BLOCKING状态,而是先尝试加偏向锁,在一步步向轻量级锁、重量级锁膨胀的策略,如下图所示:image.png**偏向锁:**不存在资源竞争,资源总是由一个线程获取的情况下使用。在对象头存储了当前线程的id.**轻量级锁:**如果偏向锁被关闭或者已经被其他线程获取,这种情况下抢占同步锁会膨胀到轻量级锁。轻量级锁会通过CAS操作(自旋),把锁对象的标记字段替换为一个指针指向当前线程栈帧

2020-12-23 17:45:43 3587 1

原创 Java并发编程基础

Java语音从开始就内置了对多线程的支持,线程是操作系统的最小单元,多个线程同时执行可以明显提升程序性能。但是过多的创建线程以及不正当的管理线程也容易造成问题。所以,认识并合理使用线程变成提升编码能力的必要途径。什么是线程操作系统在运行一个程序时,会为其创建一个进程。例如:启动一个Java程序,系统会创建一个Java进程。上文提到操作系统的最小调度单元是线程,线程也被称为***轻量级进程***,一个进程可以创建多个线程。这些线程都有各自的计数器、堆栈以及局部变量等属性,而且还能访问共享的内存变量。处理器

2020-12-23 16:28:39 7511 1

原创 薪资被倒挂?是怒刷 LeetCode,还是另寻他路?

知道从啥时候开始,薪资倒挂这个词就开始火起来了。其实可以理解为一年比一年高的入行门槛以及愈发激烈的同行竞争。这也无可厚非,大量的互联网公司出现,市场上的程序员需求急剧上升,程序员获得了薪资市场的优势地位,薪资高也是公认的事实。如今的程序开发和10年前已经有了很大的不同。各种开源软件和开发工具,加上更多的入门资料、文档和技术博客,如果你愿意学习,可以在很快的时间内熟悉一项开发技能这使得很多不是计算机毕业的学生,也加入了程序员的行业。人多的结果就是企业提高门槛,校招生们努力提高实力。一来二去,可不就卷了么

2020-11-26 22:41:02 222

原创 成功拿下阿里P6的offer后,大佬总结的面试经验!

前言今天为大家分享一位来自阿里大佬的面试历程,通过系统的学习,跳槽到了阿里,拿到大厂offer,涨薪70%-80%的故事。学习笔记放文章末尾!阿里面试流程第一轮:电话技术初面;第二轮:技术面谈(围绕技术知识点、过去项目实战经验);第三轮:技术leader复试第四轮:HR最后确认一面首先确认对阿里的意向度;其次面试官会针对你曾经做过的项目来做具体技术的交流,你对项目细节是不是掌握到位,以及java技术基础和原理掌握程序,比如并发编程以及数据库和JVM三个方面,也会交流到分布式、线程池的实现等

2020-11-24 15:13:01 931

原创 一周课程抢先看 | RabbitMQ从工作机制到延时队列的实战

上周的公开课课程大家还满意吗?这周我们继续!周一到周六,每晚八点,我们等你来~课程内容月薪8K-3W的成长必修课时间:10月26日 星期一 20:00内容核心:1.3年30W+怎么走2.5年50W+怎么走3.为什么一定要进一线大厂4.35岁危机如何摆脱RabbitMQ从工作机制到延时队列的实战时间:10月27日 星期二 20:00内容核心:1.消息中间场景分析总结2.深入RabbitMQ的架构体系3.理解RabbitMQ的消息路由策略4.实战RabbitMQ的延时队列

2020-10-27 16:48:05 885 1

原创 全网疯传的Java后端岗成长笔记,先到先得!

又到了“金九银十”面试求职高峰期,在金三银四时也参与过不少面试,2020都说工作不好找,也是对开发人员的要求变高。前段时间自己有整理了一些Java后端开发面试常问的高频考点问题做成一份PDF文档(1000道高频题),同时也整理一些图文解析及笔记,今天在这免费分享给大家,希望大家在即将的十月面试做好复习,长期的积累和短期的突击让自己能找到一个满意的工作!Java成长笔记:1.Java基础复盘2.Web编程初探3.SSM从入门到精通4.SpringBoot快速上手二、1-3年高工1.并发编程

2020-10-20 14:40:02 420 2

原创 CSDN金牌导师Andy老师精心整理的1000+Java后端面试题

进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全其中概括的知识点有:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈共有1000+道面试题面试题整理十分全面,文末还有答案解析!(文章比较长,耐心看完,让你面试提升一大截!)获取以下面试专题答案的朋

2020-10-14 17:52:05 1969 1

原创 BAT必备500道面试题:设计模式+开源框架+并发编程+微服务等免费领取!

金九银十、秋招在即,为了帮助大家能够找到一份满意的工作,咱们给大家准备了一套BAT大厂必备的面试资料,可以直接免费领取,希望能够帮到大家!这套面试题基本上涵盖了面试中必问的内容,拿到这套已经整理过的面试题在平时用来查漏补缺也是很不错的,可以减少很多自己去整理和搜索的时间。扫码添加CSDN助教小姐姐就可以免费领取面试题+视频了:这套视频涵盖了大型互联网的主流技术,包括Redis/Dubbo/zookeeper/高并发、高可用、分布式、微服务技术等,还有大牛的架构师经验分享和实战内容!每个视频都对应

2020-09-24 17:28:55 361

原创 一周Java高级架构公开课视频资料整合--金九银十面试篇(免费领取)

课程内容主题:分布式任务调度系统的实现内容核心:1.为什么定时任务需要支持分布式?2.二十年历史的Quartz核心设计思想3.不改配置不重启,如何实现任务动态调度?4.集群部署如何保证不重跑不漏跑?主题:基于Netty手写高可用可伸缩微服务架构内容核心:1.先剖析一下Dubbo是什么2.通过一个应用场景诠释Dubbo的含义及作用3.一步步推导出代码实现的原理及核心4.老司机带你手写Dubbo框架主题:RabbitMQ从工作机制到延时队列的实战内容核心:1.消息中间场

2020-09-24 17:27:20 299

原创 手拿几个大厂offer,吐血整理的拿offer的秘密武器!

怎样才能拿到大厂的offer?没有掌握绝对的技术,那么就要不断的学习。如何拿下阿里等大厂的offer的呢,今天分享一个秘密武器,资深架构师整理的Java核心知识点,面试时面试官必问的知识点,篇章包括了很多知识点,其中包括了有基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等。由于整个文档比较全面,内容比较多,篇幅的限制,文章中分享没有全部附上详细的解析,但是整理成了一

2020-09-24 17:19:48 301

原创 一周内咸鱼疯转2.4W次,最终被所有大厂封杀!

(含答案)所有面试资料及技术好文精选文档都整理到网盘了。Java面试官手册需要加微信免费领取长按扫码或搜索微信号:gh16670101550,免费领取

2020-09-10 13:48:18 353

原创 吃透这套架构体系,三年成为架构师!

蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路!路其实一直都在那里,只是我们看不到而已!以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了这个位置上。想想有多少人对于自己将来要从事的职业和技术类型进行过深入思考和比较呢?当我跳出编码后,我开始思...

2020-09-10 13:43:17 444

原创 某金P8一面,竟然只问我这些简单问题?

最近看了很多简历,很多候选人年限不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来越难,大家找工作也不容易,于是就打算见一见。在沟通中发现,由于年限不小,他们的定位基本都是高级及以上,毕竟,年限摆在那里,面个中级也不体面。面试时我打算聊点基础的,先打开一下话题,结果发现对于一些开发中很基本的问题,比如: Git的分支你们是怎么管理的? 接口保证幂等性是基本的要求,那么幂等性你们是怎么做的? 你们有用@Transactio..

2020-09-10 13:40:40 489 2

原创 架构师技术文档:Redis+Nginx+Spring全家桶+Dubbo精选(免费领学习资料)

最近花了很长的时间去搜罗整理Java核心技术好文,我把每个Java核心技术的优选文章都整理成了一个又一个的文档。今天就把这些东西分享给老铁们,也能为老铁们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开文档学一学就好了。不多说,直接上干货!一、Redis技术好文精选整理 Redis哨兵、复制、集群的设计原理,以及区别 Spring+Redis+Docker+Dubbo 深入了解redis 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题 .

2020-09-10 11:19:09 2499 1

空空如也

空空如也

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

TA关注的人

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