自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

城中行

不要停止思考!

  • 博客(20)
  • 收藏
  • 关注

原创 JVM虚拟机(下) -- JVM垃圾收集算法,GC收集器

前两篇主要讲到JVM的结构及垃圾回收的判断,本篇承接上文,更进一步,说说JVM垃圾收集算法及GC收集器先说说JVM垃圾收集算法,其中包括复制算法,标记清除算法,标记整理算法及分代回收算法.复制算法:复制算法将内存分为大小相同的两块,每次使用一块,当需要GC的时候就将还存活的对象复制到另一块内存中,并且将之前的那块内存清空.是不是很眼熟?上一篇中提到的新生代中两块Survivor空间也是这样...

2020-01-10 20:22:58 366

原创 JVM虚拟机(中)--堆,GC机制

内容承接上节,上节说到了虚拟机栈,本地方法栈及程序计数器及类的加载等相关内容,这节聊聊上节没提到的元空间,堆及堆上的GC机制,GC的算法将在下节继续说明.java创建的对象大部分都在堆上存储,是GC操作的主体.那么堆在内存如何分配的呢?如下图:首先堆上分为新生代和老年代,新生代又分为Eden区,From Survivor 区及To Survivor区,新生代上发生的GC叫做Mi...

2020-01-09 20:11:18 345

原创 JVM虚拟机(上) -- JVM结构及类的加载

概念类加载机制加载器JVM结构虚拟机栈本地方法栈程序计数器本节讲涉及JVM虚拟机相关知识点,包括JVM的体系结构,Class的加载.GC等相关知识放在下节.概念首先来了解概念,什么是JVM,JVM与JDK,JRE是什么关系.JRE ===> JRE是java运行环境,是java程序能跑起来的基础JDK ===> JDK是java开发工具...

2020-01-08 19:40:56 300

原创 Mybatis 源码分析与及Mybatis-spring整合(下)

承接上文https://blog.csdn.net/qq_32140607/article/details/103585497上次说到mybatis读取xml获取SQL,最后通过JDBC执行SQL的原理分析,本文将继续介绍Mybatis与spring整合之后的原理.代码部分同理先看一下测试代码,结构目录如下:这里在dao包底下存在一mapper,一个dao,这里涉及到两种写...

2019-12-18 18:20:04 139

原创 Mybatis 源码分析与及Mybatis-spring整合(上)

本文将分析Mybatis 如何获取SQL,执行SQL,与spring整合后spring做了些什么JDBCmybatis实际上对JDBC进行了封装,那么先写一个JDBC的测试方法 @Test public void testJdbc() throws SQLException, ClassNotFoundException { String sql="SELECT...

2019-12-17 21:17:20 199

原创 Semaphore 机制及源码分析

前情提要: https://blog.csdn.net/qq_32140607/article/details/102669386https://blog.csdn.net/qq_32140607/article/details/102796524首先交代概念Semaphore是一个计数信号量,Semaphore经常用于限制获取资源的线程数量;AbstractQu...

2019-10-31 19:14:44 169

原创 Lock 源码分析 --ReentrantLock

ReentrantLock 重入锁,从这里开始解析Lock的源码及机制首先从一个demo开始,这段代码循环5次,每次起一个线程,获取锁,执行逻辑,解锁.这篇的重点不在这个demo,无需过度关注.public class ThreadMain { private static int sum=0; private static ReentrantLock lock=...

2019-10-29 20:13:17 236

原创 synchronized 锁膨胀及相关知识点

synchronized 关键字在jdk1.6之前使用的是重量级锁,在1.6之后引入自旋与锁膨胀机制,降低了性能损耗.这里以jdk1.6以后版本为前提.CAS操作CAS的全称为Compare And Swap,直译就是比较交换。是一条CPU的原子指令,作用就是先比较两个值是否相等,如果相等则原子的更新某个位置的值,基于硬件平台的汇编指令实现.CAS 操作包含三个操作数 :内存偏移量位置...

2019-10-22 15:02:02 612

原创 多线程相关基本知识

本文涉及知识点: 并发与并行概念,cpu三级缓存基本概念,缓存一致性运转流程,volatile关键词可见性的实现方式等首先区分两个概念,并发与并行并行:只存在于cpu多核的场景,无论微观还是宏观都是同时运行多个指令并发:同一个时间点只会有一个指令在运行,cpu通过时间片轮换的方式使得多个指令快速交替运行介绍cpu的缓存与主存关系cpu缓存分三级,一级缓存有两个,一个是...

2019-10-16 19:42:10 170

原创 dubbo的搭建及各种配置样例

在文章开始的时候先引入官网的架构图,节点角色说明节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数和调用时间的监控中心 Container 服务运行容器 以上取自dubbo官网文档http://du...

2019-09-23 21:09:38 335

原创 懒汉,饿汉单例优缺点分析,内部类单例,枚举单例,容器单例等实现及优缺点分析

单例模式作为非常重要的一种设计模式,其实现方式多种多样,本文介绍懒汉,饿汉单例,内部类单例,枚举单例以及它们可能存在的失效场景分析.先说结论:单例模式需要注意的是线程安全,序列化和反序列化安全及防止反射攻击,懒加载模式在处理这几个问题时比较麻烦甚至无解(反射攻击),枚举单例则简洁与安全.接下来对这些内容举例.依旧通过代码分析.首先看看懒加载单例public class LazyS...

2019-08-21 17:51:24 420

原创 MySql 索引,Hash索引,B+Tree索引,索引失效总结

MySql 表有很多类型,这里只讲InnoDB,MyISAM这两种,侧重InnoDB 中的B+Tree索引,其他的大致说说.首先说说索引的类型,一般索引分为Hash索引和BTree索引(实际结构是B+Tree)先说Hash索引如果需要等值查询,Hash索引的优势非常大,但有一个前提:键值唯一(重点)但是Hash索引无法完成范围查询,无法使用索引排序,无法使用 like'XXX%...

2019-08-16 17:45:19 716

原创 Spring 事务失效的情况

事务失效问题 1,bean必须是代理对象才能让事务生效,spring事务依靠aop实现 2,入口函数必须是public,如果不是,则事务无法起作用 3,数据库必须支持事务(mysql的mylsam不支持事务),行锁才支持事务 4,切点配置必须正确 5,内部方法间调用导致事务失效,因为this不是代理对象,需要在代理配置中(如@EnableAspec...

2019-08-16 16:15:58 372

原创 Spring Aop 使用 ,Aop代理对象的获取, jdk动态代理,cglib动态代理的区别

Spring Aop 机制可适用于 日志,权限,事务等应用场景,Aop的使用及注意事项在之前的博客有写过https://blog.csdn.net/qq_32140607/article/details/97395223今天说说Aop生成代理对象的过程中与代理的关系先说结论:1:spring 的Aop通过动态代理来实现,代理分为jdk动态代理与cglib代理两部分2:jdk动态代理...

2019-08-09 18:06:21 1383 2

原创 spring 中的 FactoryBean 与BeanFactory 的区别

spring 中spring 中的 FactoryBean 与BeanFactory 的区别先说结论:BeanFactory 是定义IOC容器的核心接口,XmlBeanFactory,ApplicationContext等都实现了该接口;FactoryBean 是一个接口,实现该接口的bean,交由IOC管理时将提供一个除反射外的另一种构建bean的方式(getObject),用...

2019-08-02 18:37:15 166

原创 spring aop 的使用及注意事项(部分)

第一步在配置文件或注解中配置aspectj开启标识第二步导入需要的jar包,或在maven中添加配置其他版本可在https://mvnrepository.com/自行查询代码如下:@Aspect@Componentpublic class Aop { @Pointcut("execution(public * demo.AOP.TestAop.*(....

2019-07-26 16:46:57 615

原创 Spring中@Bean 与 @Autowired 的使用(部分复习)

@Bean 修饰的方法表示初始化一个对象并交由Spring IOC去管理,@Bean 只能和@Component @Repository @Controller @Service @Configration 配合使用.@Autowired 可修饰变量和方法,用于完成自动装配(将需要的外部资源注入)接下来看一段简单代码下面的代码包括三个POJO(ADemo,BDemo,CDe...

2019-07-19 20:50:23 12873

原创 java基础--工厂模式解析

工厂模式作为常见且非常重要的设计模式(其实设计模式都挺重要的),值得多次回顾与深入理解,以下为我自己对工厂模式的一些理解及分析工厂模式整体分为简单工厂,工厂方法,抽象工厂等,但简单工厂其实不能算是设计模式,而是一种编码习惯,但很多情况下会将简单工厂误认为是工厂模式的一种,这里也一起涵盖,接下来以电脑组装为例分别分析首先是简单工厂,简单工厂其实是一种编码习惯,上文已经说过,简单工厂的做法是将...

2019-07-05 19:33:04 99

原创 java基础--泛型(个人理解)

说到泛型,先从List说起,先上一段代码 List list=new ArrayList();//原生态类型 list.add("a"); list.add("b"); list.add(3); Object o=list.get(0);//object 类型使用需要强转 String os= (S...

2019-06-26 18:05:04 138

原创 java扫盲--java继承关系

抽出时间再过一遍java基础,记录自己之前没有学会或没有注意到的知识点java继承关系相关先说结论1:父类声明的变量和子类声明的变量同时存在,不会直接覆盖2:父类被重写的方法,在子类中无法访问,但变量可以3:静态方法不具备多态性测试代码如下: @Test public void testParent(){ Child child=new...

2019-06-20 15:11:17 380

空空如也

空空如也

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

TA关注的人

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