自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (5)
  • 收藏
  • 关注

原创 Java设计模式-单例设计模式

在Java开发过程中,很多场景下都会碰到或要用到单例模式,在设计模式里也是经常作为指导学习的热门模式之一,相信每位开发同事都用到过。我们总是沿着前辈的足迹去做设定好的思路,往往没去探究为何这么做,所以这篇文章对单例模式做了详解。一、单例模式定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象...

2019-12-28 10:18:20 127

原创 java设计模式-工厂方法模式

抛出问题在学习设计模式的时候,我们首先要明白该设计模式能解决什么问题,在什么应用场景下是最优的,这样我们才会学以致用,避免出现为了设计而设计的情况。所以我也就啰嗦一下,一步一步的用简单工厂模式去抛出问题,更好的让大家明白为什么要使用工厂方法模式。今天我们举一个文件分割器的例子业务需求:分割图片、文本等格式的文件的工具我们先用简单工厂模式写//定义分割器的接口public in...

2019-12-25 16:51:42 155

原创 HTTP 状态

消息响应100 Continue(继续)101 Switching Protocol(切换协议)成功响应200 OK(成功)201 Created(已创建)202 Accepted(已创建)203 Non-Authoritative Information(未授权信息)204 No Content(无内容)205 Reset Content(重置内容)206 Partial ...

2019-12-24 18:48:16 121

原创 网络7层架构

7 层模型主要包括: 1. 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为 1、0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特。 2. 数据链路层:主要将从物理层接收的数据进行 MAC 地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。...

2019-12-23 20:03:02 1570

原创 AOP 主要应用场景

AOP 主要应用场景有: 1. Authentication 权限 2. Caching 缓存 3. Context passing 内容传递 4. Error handling 错误处理 5. Lazy loading 懒加载 6. Debugging 调试 7. logging, tracing, profiling and monitoring 记录跟踪 优化 校...

2019-12-20 18:05:12 2986

原创 SpringBoot分布式项目实现Session共享

在传统的单服务架构中,一般来说,只有一个服务器,那么不存在 Session 共享问题,但是在分布式/集群项目中,Session 共享则是一个必须面对的问题,先看一个简单的架构图:在这样的架构中,会出现一些单服务中不存在的问题,例如客户端发起一个请求,这个请求到达 Nginx 上之后,被 Nginx 转发到 Tomcat A 上,然后在 Tomcat A 上往 session 中保存了一份数...

2019-12-19 19:58:53 2707

原创 java 四大元注解及自定义注解

一、java中元注解有四个:@Retention @Target @Document @Inherited;(1)@Retention:描述注解的生命周期;  参数:枚举RetentionPolicy    1)source:源码级别,编译后失效;    2)class:二进制级别,编译有效,运行失效;    3)runtime:运行时级别,该注解在运行时仍然有效;(2...

2019-12-18 15:33:51 515

原创 Java:CAS(乐观锁)

本文讲解CAS机制,主要是因为最近准备面试题,发现这个问题在面试中出现的频率非常的高,因此把自己学习过程中的一些理解记录下来,希望能对大家也有帮助。什么是悲观锁、乐观锁?在java语言里,总有一些名词看语义跟本不明白是啥玩意儿,也就总有部分面试官拿着这样的词来忽悠面试者,以此来找优越感,其实理解清楚了,这些词也就唬不住人了。synchronized是悲观锁,这种线程一旦得到锁,其他需要锁的...

2019-12-12 19:56:03 113

转载 Java不可重入锁和可重入锁理解

最近正在阅读Java ReentrantLock源码,始终对可重入和不可重入概念理解不透彻,进行学习后记录在这里。基础知识Java多线程的wait()方法和notify()方法这两个方法是成对出现和使用的,要执行这两个方法,有一个前提就是,当前线程必须获其对象的monitor(俗称“锁”),否则会抛出IllegalMonitorStateException异常,所以这两个方法必须在同步...

2019-12-12 16:23:36 115

原创 java同步静态方法与非静态方法(使用synchronized关键字)

1、非静态方法同步一个类中所有的非静态方法同步时采用同一把锁--类实例本身(即该类的对象)。该实例的一个非静态同步方法获取对象锁后,该实例的其他非静态同步方法要想获得锁,必须等获取锁的方法释放锁后才能获取。但是该类的其他实例的非静态同步方法要想获取锁,可不用等待,因为每个实例使用的是不同的锁。2、静态方法同步一个类中所有的静态方法同步时采用同一把锁--类本身。一旦一个静态同步方法获取...

2019-12-12 16:00:10 334

转载 JAVA多线程中join()方法的详细分析

虽然关于讨论线程join()方法的博客已经非常极其特别多了,但是前几天我有一个困惑却没有能够得到详细解释,就是当系统中正在运行多个线程时,join()到底是暂停了哪些线程,大部分博客给的例子看起来都像是t.join()方法会使所有线程都暂停并等待t的执行完毕。当然,这也是因为我对多线程中的各种方法和同步的概念都理解的不是很透彻。通过看别人的分析和自己的实践之后终于想明白了,详细解释一下希望能帮助到...

2019-12-11 16:57:02 129

原创 Java中synchronized同步锁用法及作用范围

synchronized 它可以把任意一个非 NULL 的对象当作锁。他属于独占式的悲观锁,同时属于可重入锁。Synchronized 作用范围 1. 作用于方法时,锁住的是对象的实例(this); 2. 当作用于静态方法时,锁住的是Class实例,又因为Class的相关数据存储在永久带PermGen(jdk1.8 则是 metaspace),永久带是全局共享的,因此静态方法锁...

2019-12-10 16:36:48 610

原创 java 集合框架

这个写的比较详细,直接借鉴过来....https://www.runoob.com/java/java-collections.html

2019-12-05 18:46:01 91

原创 JVM 类加载机制

JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这 五个过程。一、加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个 Class 文件获取,这里既可以从 ZIP 包中读取(比如从 jar 包和 war 包中读取),也可以...

2019-12-05 14:37:45 169

原创 JVM垃圾回收算法

一、标记清除算法(Mark-Sweep)这个是最基础的垃圾回收算法,分为两个阶段,标注和清除。标记阶段标记出所有需要回收的对象,清 除阶段回收被标记的对象所占用的空间。如图:从图中我们就可以发现,该算法最大的问题是内存碎片化严重,后续可能发生大对象不能找到可 利用空间的问题。二、复制算法(copying)为了解决 Mark-Sweep 算法内存碎片...

2019-12-04 09:47:52 116

原创 JVM如何确定垃圾

一、引用计数法在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收 对象。二、可达性分析为了解决引用计数法的循环引用问题,Java 使用了可达性分析的方法。通过一系列的...

2019-12-04 09:37:38 713 1

原创 JVM内存模型

一、JVM内存模型组成主要由:方法区,堆,本地方法栈,虚拟机栈,程序计数器五个部分组成二、详细介绍1)、程序计数器(线程私有) 一块较小的内存空间, 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的 程序计数器,这类内存也称为“线程私有”的内存。 正在执行 java 方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如 果还是 Nati...

2019-12-02 20:00:00 93

mybatis-generator生成工具(最新版,非gui版本)

mybatis现如今已经成为了我们使用比较频繁的持久层了,但是我们在开发的过程中,如果手动的去写持久层的东西比较耗时和麻烦,虽然GitHub已经有gui版本的生成工具了,虽然可以减轻一部分工作量;但是在使用起来还是不太方便!所以自己重构了一套既可以生成前台页面,又可以生成mybatis持久层的工具,分享出来,希望能够帮助到大家!

2020-09-16

java文件操作工具类

java文件操作工具类是java中针对文件操作的一个工具类,可以方便的读取,下载,上传文件等操作,希望可以帮到大家。

2019-11-11

java的Date工具类

这是本人自己整理的java中的Date工具类,包含了常用的时间格式化方法和转换方法;在工作中使用起来还是蛮方便的;希望对大家有帮助!

2019-11-09

Nginx+Tomcat+Redis集群和session共享所有jar包(新)

Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享所需要的所有jar包,包括如下jar包:commons-logging-1.2.jar,commons-pool2-2.4.2.jar,jedis-2.8.2.jar,tomcat-juli.jar,tomcat-redis-session-manage-tomcat7.jar

2018-07-26

Nginx+Tomcat+Redis集群和session共享所有jar包

Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享所需要的所有jar包,包括如下jar包:commons-logging-1.2.jar,commons-pool2-2.6.0.jar,jedis-2.9.0.jar,tomcat-juli-7.0.90.jar,tomcat-redis-session-manager1.2.jar

2018-07-25

空空如也

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

TA关注的人

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