自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 5分钟系列之-Java类加载器

文章目录类加载器类与类加载器双亲委派启动类加载器扩展类加载器<Extension ClassLoader>应用程序类加载器<Application ClassLoader>破坏双亲委派模型类加载器通过一个类的全限定的名来获取此类的二进制字节流这个动作在java虚拟机外部实现,让应用程序自己决定如何去获取所需要的类,实现这个动作的代码模块成为类加载器。类与类加载器对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在java虚拟机中的唯一性;比较两个类相等,只有在这两

2021-02-05 20:59:19 194

原创 5分钟系列之-Java类文件结构(三、字节码指令简介)

文章目录字节码指令简介1字节码与数据类型2加载和存储指令3运算指令4类型转换指令5对象创建与访问指令6操作数栈管理指令7 控制转移指令8方法调用和返回指令9异常处理指令10同步指令公有设计和私有实现Class 文件结构的发展本节内容作为了解即可,知道虚拟机字节码是怎么回事,有哪些类型的字节码,具体的字节码无需一一记住,正常的开发工作不会涉及到阅读字节码的内容。字节码指令简介  java虚拟机的指令由一个字节长度的、代表特殊操作含义的数组以及跟随其后的零至多个代表此项操作所需参数而构成。由于Java虚拟

2021-01-17 20:57:26 270

原创 5分钟系列之-Java类文件结构(二、字节码分析)

文章目录2.Class文件的结构2.1 无符号数2.2 表2.3 解读字节码文件2.3.6访问标志2.3.7类索引、父类索引与接口索引2.3.8字段计数器与字段集合简单名称描述符2.3.9方法计数器与方法集合2.3.10属性表属性表结构LineNumberTable解析第二个方法2.3.11附加属性附加属性计数器附加属性属性表集合2.Class文件的结构  class文件中各数据项严格按照顺序紧凑的排列在class文件中,没有空隙存在,各项的排列顺序如图。表1模板常常问类父,计数集合顺序数,接口.

2021-01-10 20:22:50 279

原创 5分钟系列之-Java类文件结构(一、字节码分析)

文章目录1.无关性的基石2.Class文件的结构2.1 无符号数2.2 表2.3 解读字节码文件2.3.1魔数2.3.2副版本号2.3.3主版本号2.3.4常量池计算器2.3.5常量池项目类型解析常量池第一项(CONSTANT_Methodref_info)解析常量池第二项(CONSTANT_Fieldref_info)解析常量池第三第四项( CONSTANT_Class_info)解析常量池中的第5项(CONSTANT_utf8_info)常量池剩余内容解析解析工具1.无关性的基石  各种不同平台的虚

2020-12-29 00:53:28 212

原创 5分钟系列之-java内存模型与线程(三、java与线程)

java与线程文章目录java与线程1.线程的实现1.1使用内核线程实现1.2使用用户线程实现1.3使用用户线程加轻量级进程混合实现1.4Java线程的实现2.Java线程调度2.1协同式线程调度2.2抢占式线程调度2.2.1线程优先级:2.2.2状态转换1.线程的实现  实现线程主要三种方式:使用内核线程实现、使用用户线程实现、使用用户线程加轻量级进程混合实现1.1使用内核线程实现  内核线程(Kernel-Lvel Thread,KLT)就是直接由操作系统内核支持的线程,这种线程由内核完成线程

2020-12-23 23:38:41 123

原创 5分钟系列之-java内存模型与线程(二、java内存模型)

文章目录java内存模型1.主内存与工作内存2.内存间的交互操作2.1八种操作2.2八种操作需要满足的规则2.3 对于volatile变量的特殊规则2.3.1.可见性:2.3.2.禁止指令重排序2.3.3 Java内存模型对volatile变量的特殊规定2.4 对于long和double型变量的特殊规则2.5原子性、可见性与有序性2.6 先行发生原则java内存模型        java虚拟机定义一种规范来屏蔽调各种硬件和

2020-12-23 01:32:53 162

原创 5分钟系列之-java内存模型与线程(一、硬件效率与一致性)

java内存模型与线程(一)文章目录java内存模型与线程(一)1. 衡量效率指标2.硬件的效率与一致性2.1高速缓存2.2乱序执行优化1. 衡量效率指标衡量一个服务性能好坏高低 ,每秒事务处理数事重要的指标之一(TPS),它代表一秒内服务能处理的请求数,而TPS的大小又与程序并发能力有着重要的关系。2.硬件的效率与一致性如何压榨cpu资源2.1高速缓存计算机的存储设备与cpu的运算速度有几个数量级的差距,因此现代计算机都加上一层读写速度尽可能接近与cpu处理速度的高速缓存来充当内存与cpu的

2020-12-21 23:09:24 140

原创 JAVA线程安全与锁优化

线程安全与锁优化文章目录线程安全与锁优化线程安全JAVA语言中的线程安全1.不可变2.绝对线程安全3.相对线程安全4.线程兼容5线程对立线程安全的方法实现1.互斥同步手段1 syncronized关键字手段2ReentrantLock2.非阻塞同步3无同步方案可重入代码线程本地存储锁优化自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁锁优化之前的加锁操作重量级锁加锁过程偏向锁,轻量级锁,重量级锁状态的转化回顾提问:线程安全当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行。也不用

2020-12-20 14:16:04 265

原创 spring boot项目application.properties配置不生效简单排查

今天有个新来的小伙伴弄了小半天项目就是跑不起来,实在没办法让我给看一下,现象就是application.properties中配置的东西都读取不到。删到最简结构,配置文件只配置一个端口号都不起作用。直接告诉他去targer目录下看配置文件存在不存在,他看了一下没有。原因找到了,下面贴下解决方案:在maven 的pom.xml下增加这段即可:&lt;build&gt; &lt;reso...

2019-03-04 21:22:16 31981 8

原创 spring boot启动过程源码分析

2018-11-22 17:04:56 1668

翻译 ehcache官方文档(译)

IntroductionDistributed caching allows you to harness additional benefits of horizontal scale-out, without losing on low latency offered by local on-heap tiers.集群可以让你获得水平拓展的好处,同时又不失去本地查找低延迟的能力。...

2018-11-22 16:41:36 4651

原创 java锁源码分析-1获取锁的过程

这篇文章(包括后边两篇)是六月份写的,写完后由于工作较忙,草稿一致没时间修改,今天偶尔翻到,担心哪天弄丢了,于是先以草稿的形式发布,内容有瑕疵,等以后有时间再修复。解读类的结构首先来看类的继承关系,ReetrantLock继承的Lock接口,其内部还存在三个内部类,Sync,NonfairSync和FairSync 其中NonfairSync和FairSync都是继承自Sync。 ...

2018-11-22 16:31:11 2463

原创 作为开发需要掌握的常用linux命令

查看cpu使用情况top - 21:20:06 up 19 min,  1 user, load average: 0.00, 0.01, 0.05Tasks:  85 total,  1 running,  84 sleeping,   0 stopped,  0 zombie%Cpu0  :  0.0us,  0.4 sy,  0.0 ni, 99.6 id,  0.0 wa, 0.0 hi,...

2018-05-22 22:59:11 22218

原创 Docker的安装

安装docker参照官方文档通过 yum安装Log into your machine as a user with sudo or root privileges.1.$ sudo yum update  (更新yum到最新)2.$ sudo tee /etc/yum.repos.d/docker.repo [dockerrepo]name=Docker

2018-03-31 18:29:31 29213

原创 mysql索引概述

索引的主要作用是加快数据的查找,但是索引本身也是需要存储的,由于索引文件可能很大,因此不能常驻内存,在用到的时候需要从硬盘种加载,常识性我们都知道,计算机io是非常耗时的操作,那么如何减少io便是索引设计的重点。mysql的索引使用的是b+树(数据结构不详细介绍,请自行查阅资料),那么为什么要用b+树,不用b-树或者红黑树。假设树每访问一层需要一次io,那这样首先把红黑树给排除掉。再来对比b-

2018-03-31 18:25:20 28019

原创 设计模式之观察者模式(监听模式)与建造者模式在实际开发种的巧用

之前一个月负责对接的一些工作,公司业务系统中有要和第三方平台合作的情况,而且将要对接的第三方还不止一家,并且未来可能更多,但业务流程相对固定,创建订单->成功回调,取消订单,获取订单轨迹等。其中创建订单、取消订单 与轨迹获取是必有的过程,而且是我方主动发起的请求,因为订单可能发给不同的对接公司,所以如果是采用常规用if()else()来做代码应该是这样if(标识为a公司){a公司接口数据组织

2018-02-28 17:30:58 39452

原创 RocketMQ 解决 No route info of this topic 异常步骤

rocketmq运行时提示 No route info of this topic 异常产生的原因可能是①Broker禁止自动创建Topic,且用户没有通过手工方式创建Topic②Broker没有正确连接到Name Server③Producer没有正确连接到Name Server 首先解决①这种情况,启动顺序要先启动nameserver,再启动broker,启动broke

2018-02-28 17:10:38 161981 20

翻译 RocketMQ中文文档(译)

前言:近日需要研究一下RocketMQ,为了方便日后查找,因此对官方英文文档进行翻译记载,也希望能帮助到要学习的朋友。阅读后发现,文档还是比较粗略的,大概也只能了解些概念和简单实用。快速入门部分比较简单,因此暂时没翻译只翻译其中重要的几个部分,快速入门日后会补上。目前rocket的版本是4.2.0 官方参考文档的地址是:http://rocketmq.apache.org/docs/rmq-arc...

2018-01-30 09:55:30 65701 3

原创 大话分布式环境接口幂等性与一致性解决方案

小陈是IT国的一个小商贩,刚开了一个布庄和一个制衣店,生意还不错,由于刚刚开业,这布庄和制衣店的账房都由马掌柜,比如说十八里店的张员外要定制一个六十大寿的锦袍,马掌柜就在布庄的库存账簿里减去一匹布在制衣店的出货账簿里加上一件衣服,如果说由于制衣店的伙计实在忙不过来把制衣订单给退了回来,马掌柜会再把布庄的账簿加上一匹,从开始到现在是一直没有出错过。上述就是单机事务保证一致性,马掌柜就是事务

2018-01-15 21:52:54 46485 2

原创 常用场景下缓存穿透,缓存雪崩,缓存并发处理策略

缓存通常使用方式是先查询缓存,缓存没有再查询数据库,数据库有则设置进缓存。使用缓存主要是降低数据库的读压力,保护数据库,假如出现以下场景就可能导致压力全压在数据库上导致数据库服务挂掉。场景1.遭受攻击大量随机生成的key访问,或是真正访问但数据库就是没数据2.上线前没有进行老数据缓存预加载,大量老数据请求去查询数据库3.热点key失效,对热点key的并发访问大4.缓存失效,

2018-01-13 15:56:49 51499 1

原创 5分钟掌握jvm 类的加载机制

类的加载分为以下几个阶段加载-&gt;验证-&gt;准备-&gt;解析-&gt;初始化-&gt;使用-&gt;卸载           |         链接阶段     |           ------------------------速记法:家宴准备,姐使用蟹1.加载,在虚拟机方法区中生成一个这个类的对象,作为方法区中这个类各种信息的访问入口,这个加载文件的来源可以是本地某个目录,wa...

2018-01-07 21:13:17 45056

原创 超详细的java线程池源码解读

线程池的继承关系是这样的ThreadPoolExecutor继承了AbstractExecutorService,AbstractExecutorService是一个抽象类,它实现了ExecutorService接口,ExecutorService又是继承了Executor接口。 继承关系:ThreadPoolExecutor->AbstractExecutorService->ExecutorS

2017-12-22 18:34:59 22267 1

原创 五分钟熟记数据库事务

事务的概念:是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务的特性:ACID(速记法:吃一个圆  -持久性,一致性,隔离性,原子性)⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。⑵ 一致性(Consistency)  一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后...

2017-12-18 15:08:55 14621

原创 目录

【历史文章】为什么volatile也无法保证线程安全一篇文章搞定java线程

2017-12-06 11:27:56 6275

原创 为什么volatile也无法保证线程安全

要了解Volatile首先要从java内存模型说起

2017-12-05 18:11:07 24965 6

原创 一篇文章搞定java线程

[TOC]线程状态转换既然想了解多线程,线程的概念和什么是多线程想必不用多说,那首先说说线程的几个状态以及状态直接的转换,下边这张图展示了线程的几个状态,详细说说状态直接是如何转换的。 当new 一个线程它只是初始态,如果你不调用start()方法那这个线程永远都不会被执行,当调用start()方法后这个线程就变成了可运行状态,等待调度运行,调用start()不会马上进入运行状态,只是可运行,

2017-12-05 16:00:48 16481

空空如也

空空如也

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

TA关注的人

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