自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 TCP/IP协议族基本知识

TCP/IP协议分层模型OSI参考模型 协议分层 描述 会话层及以上 应用层 浏览器与服务器之间的通信协议时HTTP,所传输数据的主要格式是HTML,HTTP属于应用层协议,而HTML属于表示层协议。 发送电子邮件的协议是SMTP,还可以通过表示层协议MIME进行扩展以发送声音,图片等,以及修改文字的大小和颜色。 文件传输协议FTP,传输过程...

2020-04-27 22:59:25 283

原创 计算机网络基本概念,OSI参考模型,网络设备构成及作用

本文主要描述计算机网络中的一些基本概念,整理自《图解TCP/IP》一书。TCP/IP:TCP/IP是通讯协议的统称,不仅仅包含传输层和网络层协议。 分组交换协议:分组交换是指将大数据包分解成一个个小的数据包(帧)进行传输的方法。 分组交换过程:发送端计算机将数据分组发送给路由器,路由器接收到这些分组数据以后,缓存到自己的缓冲区,然后再转发给目标计算机。 IETF:TCP/IP协议并非IS...

2020-04-26 22:50:55 1191 1

原创 sonarQube的基本使用

本文描述sonarQube的基本使用,包括配置规则集(质量配置)、配置质量阈、创建/配置项目、创建用户、创建用户组、以及权限配置,通知配置,问题处理,不包括sonarQube服务的搭建。管理员主界面管理员登陆后可看到sonarQube服务下所有项目的代码检查情况,并且工具栏会显示“配置按钮”,普通用户登录后工具栏没有配置按钮。1.新建用户组配置>>权限>>群...

2020-04-23 14:33:04 3394

原创 锁优化(自旋锁,锁消除,锁粗化,轻量级锁,偏向锁)(深入理解JAVA虚拟机-学习记录)

高效并发是从JDK 1.5到JDK 1.6的一个重要改进,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁消除(LockElimination)、锁粗化(Lock Coarsening)、轻量级锁(Lightweight Locking)和偏向锁(Biased Locking)等,这些技术都是为了在线程之间更高效地...

2020-04-21 22:31:30 444

原创 什么是线程安全,如何实现

定义:当多个线程访问同一对象时,不需要考虑这些线程在运行环境下的调度和交替执行,不需要进行额外的同步操作,不需要再调用方进行额外的协调操作,调用这个方法都能获得正确的结果,那这个对象就是线程安全的。就是说,代码本身封装了所有保障正确性的手段,调用方无需关心多线问题,更无需采取任何措施来保障多线程的正确调用。举几个例子,可以将JAVA语言中操作共享的数据分为5类,不可变,绝对线程安全,相对线程安...

2020-04-20 21:33:06 980

原创 JAVA内存模型中的原子性、可见性与有序性

Java内存模型是围绕着线程在并发过程中如何处理原子性,可见性和有序性这3个特征来建立的。原子性:由Java内存模型来直接保证的原子性变量操作由read,load,assign,use,store,write,我们大致可以认为基本类型的读写是具备原子性的。可见性:可见性是指当一个线程修改变量值后,其他线程能立即知道这个修改,volatile实现可见是由于立即同步回主内存和使用前刷新来实现的...

2020-04-16 21:30:08 268

原创 Volatile关键字在内存模型中的特殊规则

当一个变量被Volatile关键字修饰后,便具有两种特性,一是保证变量对所有线程的可见性,二是禁止指令重排序优化。可加性是指一个线程对变量的值进行修改后,其他加载了该变量线程能立即得知这个变化,普通变量做不到这一点,普通变量的值在线程中传递必须依靠主内存来完成,volatile变量在各线程的工作内存中不存在一致性问题,因为各线程每次使用钱都会先刷新。但是Java里面的运算并非原子操作,导致vo...

2020-04-15 23:12:15 130

原创 JAVA内存模型精讲-面试必备

注意,本文所讲的内存模型与Java内存区域中的Java堆、栈、方法区等并不是同一个层次的内存划分,这两者基本上是没有关系的,如果两者一定要勉强对应起来,那从变量、主内存、工作内存的定义来看,主内存主要对应于Java堆中的对象实例数据部分[插图],而工作内存则对应于虚拟机栈中的部分区域。JAVA虚拟机规范中试图定义一种内存模型来屏蔽不同操作系统中的内存访问差异,以实现一致的内存访问效果。先上图,...

2020-04-15 22:15:33 121

原创 Java虚拟机如何执行方法中的字节码指令

许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,本文只探讨解释执行。在讲解方法执行之前,先来了解下方法执行的前置动作,方法调用。方法调用的唯一任务就是确定方法的调用版本(说白了就是调用哪个方法)主要包括解析和分派两个阶段来确定。确定方法版本后,则可以开始方法执行,方法执行的过程本质上是字节码指令执行的过程。...

2020-04-10 21:57:45 616

原创 Java虚拟机运行时的栈帧结构

栈帧(Stack frame)是用于虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈的栈元素,存储了方法的局部变量表,操作数栈,动态链接,方法返回地址,以及一些额外附加信息。每一个方法从开始调用到执行完成,就是一个栈帧在虚拟机栈中的入栈到出栈过程。局部变量表,是一组变量值存储空间,用于存放方法参数和方法局部变量。 操作数栈也常称为操作栈,方法执行过程中会有各种字节码指...

2020-04-10 21:35:38 105

原创 双亲委派模型-开篇道其精髓

双亲委派模型为啥叫双亲委派模型而不叫父亲委派模型,明明只有逻辑上的父类委派,没见到“母亲的影子”。而且父类也只是逻辑上的父类,不是典型意义上的通过继承出现的父子类关系,本质上是通过组合实现的代码复用。我们来大致看下。先熟悉一些概念,绝大多数程序会使用到3这种系统提供的类加载器:启动类加载器,这类加载器负责将放在<JAVA_HOME>/lib目录下的,或者被-XbootCla...

2020-04-09 21:04:25 226

原创 类加载机制(简明扼要,面试必备)

虚拟机把描述类的信息从class文件加载到内存,并对数据进行校验,转化解析和初始化,最终形成可以被虚拟机使用的java类型,这就是虚拟机的类加载机制。在Java语言里面,类型的加载,链接和初始化过程都是在程序运行期间完成的,Java可以动态扩展就是依赖这个特性实现的。类加载时机类从被加载到内存中开始,直到被卸载,它的整个生命周期包括:加载(Loading),验证(Verifaction...

2020-04-08 22:36:09 176

原创 类文件结构精华要点,面试必备

无关性的基石 类文件结构各种不同平台平台的虚拟机与所有平台都统一使用的程序存储格式---字节码,是实现平台无关性的基石。然而,语言无关性也渐渐被开发者重视,实现语言无关性的基础仍然是虚拟机和字节码存储格式,Java虚拟机不和包括Java之内的所有语言邦定,它只与class文件,这种特定的二进制格式文件关联,class文件中包含了Java虚拟机指令集和符号表以及其他辅助信息。 ...

2020-03-31 22:21:12 197

原创 虚拟机(JVM)常见的5个调优问题及解决方案

高性能硬件上JVM运行速度却不够快,有时出现长时间停顿 集群间同步导致的内存溢出 堆外内存导致的溢出错误 外部命令导致的系统缓慢 服务器JVM进程崩溃 不恰当的数据结构导致内存占用过大 由Windows虚拟内存导致的长时间停顿...

2020-03-24 21:18:34 629

原创 了解JVM内存分配策略-只需记住这5点

Java技术体系所提倡的内存管理主要解决两个问题,一是自动化内存分配,二是自动化内存回收,内存分配主要集中在新生代的Eden区,如果启用了本地线程分配缓冲,则将将按线程有限在TLAB上分配。对象优先在Eden区上分配大多数情况下,内存分配发生在Eden区,当Eden去没有足够的内存进行分配时,将触发一次Minor GC。Minor GC指发生在新生代的收集动作,因为Java对象大多数朝生夕...

2020-03-21 20:51:41 152

原创 虚拟机(JVM)垃圾(GC)收集,带着这3个问题,清晰好记

哪些内存需要回收什么时候回收如何回收

2020-03-19 22:32:00 146

原创 一张图看懂JVM内存区域,清晰好记

运行时数据区域Java虚拟机在执行Java程序时会把它所管理的内存分为若干个不同的数据区域,这些区域有各自的用途,以及创建时间和销毁时间,有的区域随着虚拟机进程的启动尔存在,有的区域则依赖用户线程的启动和结束尔创建和销毁。根据Java虚拟机规范,Java虚拟机所管理的内存将会包括以下几个运行时数据区。程序计数器(Program Counter Register)线程私有的一块较小的...

2020-03-07 17:55:12 318

原创 初探JAVA(一般人记不住)

JAVA技术体系包括JAVA程序设计语言、各种硬件平台上的JAVA虚拟机、JAVA API类库、CLASS文件格式、来自商业机构和开源社区的第三方JAVA类库。前三个可以统称为JDK、JDK是用于支持JAVA程序开发的最小环境。根据JAVA技术关注的重点业务领域来划分,可以分为4个平台:1、Java Card2、Java ME3、Java SE4、Java EE...

2020-03-07 16:46:02 198

原创 eclipse fat-jar插件安装

1:离线安装首先要下载Fat Jar,下载地址:https://sourceforge.net/projects/fjep/files/下载后的文件是net.sf.fjep.fatjar_0.0.31.zip,解压下载好的ZIP包,将里面的Jar复制到Eclipse安装路径下的plugins文件夹中。如果Eclipse已经启动需要重启一下,没有启动直接打开Eclipse即可。打开E...

2019-04-09 09:09:00 320

原创 om.serotonin.messaging.WaitingRoomException: No recipient was found waiting for response for key com

com.serotonin.messaging.WaitingRoomException: No recipient was found waiting for response for key com.serotonin.modbus4j.serial.SerialWaitingRoomKey@43f at com.serotonin.messaging.WaitingRoom.respon...

2019-03-06 10:33:28 4600 6

转载 访问日志记录

装载http://www.2cto.com/database/201203/123487.html背景:假设这么一个情况,你是某公司mysql-DBA,某日突然公司数据库中的所有被人为删了。尽管有数据备份,但是因服务停止而造成的损失上千万,现在公司需要查出那个做删除操作的人。但是拥有数据库操作权限的人很多,如何排查,证据又在哪?是不是觉得无能为力?mysql本身并没

2017-03-09 11:38:04 876

IEC61850标准中文完整版.zip

IEC61850标准是基于通用网络通信平台的变电站自动化系统唯一国际标准,它是由国际电工委员会第57技术委员会(IECTC57)的 3个工作组10,11,12(WG10/11/12)负责制定的。

2020-10-15

Spring 5 英文文档全套.7z

总览 历史,设计理念,反馈,入门。 核心 IoC容器,事件,资源,i18n,验证,数据绑定,类型转换,SpEL,AOP。 测试 模拟对象,TestContext框架,Spring MVC测试,WebTestClient。 资料存取 事务,DAO支持,JDBC,O / R映射,XML编组。 Web Servlet Spring MVC,WebSocket,SockJS,STOMP消息传递。 网络反应 Spring WebFlux,WebClient,WebSocket。 整合 远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存。 语言能力 Kotlin,Groovy,动态语言。

2020-04-28

Modbus poll.zip

Modbus polModbus

2020-03-30

Axure高保真Web端组件库.rar

内容丰富,真实有效内容丰富,

2020-03-30

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

TA关注的人

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