- 博客(72)
- 资源 (17)
- 问答 (1)
- 收藏
- 关注

原创 java 类的加载结论四
结论:13. 在classpath 下的类,如果自定义类加载器没有重写loadClass 方法而是重写了 findClass 方法,自定义的类加载器会委托给其父类加载器进行类的加载,然而classpath 目录下的类,刚好能被ApplicationClassLoader系统类加载器进行加载,故不会调用子类的findClass 方法进行类的加载,且由于两个类加载器的父加载器都是同一个系统类加载...
2020-03-18 22:57:56
187

原创 java 类的加载结论三
关于ClassLoader类的javaDoc分析请点击结论:8. 每一个类加载器的实例中都存在着一个与之相关的父类加载器,类加载器加载类或者资源时是通过使用委托机制进行的9. ClassLoader 默认情况下是被注册支持并行的,如果在层级结构不严谨时,必须要具备并行加载类的能力,否则容易造成死锁10. 类加载器加载类并非只从文件系统(classpath)下进行加载类,还可以...
2020-03-16 22:05:26
144

原创 ClassLoader javaDoc 解读
java.langpublic abstract class ClassLoaderextends ObjectClassLoader 类继承的Object类,位于java.lang 包下,它是由根类加载器进行加载的,因为它位于rt.jar 包中A class loader is an object that is responsible for loading classe...
2020-03-15 16:20:04
169

原创 史上最全:Spring 关于事务传播总结
PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务,就加入到这个事务中。这是最常见的选择。 PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常。 PROPAGATION_REQUIRES_NEW:新建事务,如...
2018-08-31 11:26:12
205

原创 NIO(零拷贝,非零拷贝) 与IO 进行文件的copy
最近在深入学习java NIO ,把自己的一些体会分享出来,总结,java NIO效率要高于 java IO,而java nio 零拷贝操作效率要高于 非零拷贝操作,具体代码如下:import java.io.*;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;public class StreamCopyF...
2018-07-03 16:47:43
1214

原创 NIO之scatter 与 gather 操作
scatter : 是指可以将channel 中的数据 读取 ByteBuffer 数组中。gather : 是指将ByteBuffer 数组 中的数据写入到channel 中代码:import io.netty.buffer.ByteBuf;import java.io.IOException;import java.net.InetSocketAddress;import java....
2018-07-03 10:32:58
751
1

原创 springboot+Rabit实战三:(springboot+rabbit 项目搭建)
一:pom.xml 引入rabbitmqjar 包:org.springframework.bootspring-boot-starter-amqp 二:配置文件中配置rabbit 的连接信息,如下图:#application settingspring.application.name=spring-boot-rabbitmqserve
2017-12-23 18:59:34
554

原创 springboot+Rabit实战一:(Rabbit MQ windows 环境搭建)
本文是博主最近几天自己亲自上手搭建环境和采用springboot结合的一个小demo,做完后自己便写下来方便后面使用者少走弯路
2017-12-23 16:55:47
1116

原创 VMware 中Linux 系统中网络bridged(桥接模式)设置:
步骤: 1、在工具栏中的虚拟机--》设置 --》网络适配器: 在右边的网络连接中选择bridged(桥接模式)--》确定 2、 配置网卡IP地址: 启动虚拟机,打开文件ifcfg-eth0 命令如下: vi /etc/sysconfig/network-scripts/ifc
2014-12-12 17:43:24
3491
2

原创 windows中的vmware的Linux系统中安装jdk步骤
关于Windows下的vmware虚拟机的Linux系统中安装jdk步骤以及设置环境变量
2014-11-11 01:13:28
4349
原创 go 与java netty 之间的通信实现
前言: 笔记上一篇介绍了,go语言如何使用protobuf及生成go的protobuf文件,具体内容请见上一篇:go 与 protobuf 安装和使用1.protobuf文件定义及注意事项// [开始声明]syntax = "proto3"; //定义protobuf的包名称空间package message;// [结束声明]// [开始 java 选项配置]option java_package = "xxxx.core.message";opt...
2021-11-26 12:12:06
2457
原创 小米8 升级MIUI 12后卡顿严重,发烫,耗电高,如何降级到MIUI11
前言: 作为一个程序员,同时一名资深的米粉,一直懒得碰手机刷机操作,然今年手欠将系统升级到MIUI 12 后,整个手机(笔者手机小米8)就出现严重卡顿,伴随着发烫,同时电量能几小时耗尽手机,于是终于鼓起精神开始了小米8降级之旅,以下是具体步骤:步骤:步骤一:手机备份从设置 --> 我的设备 --> 备份和重置 --> 备份到电脑(过程比较长)。完成后,在小米文件的根目录中会出现 MIUI 这个文件夹,将这个文件夹复制到电脑上去。步骤二:手机解锁首先要将手机登录..
2020-09-08 14:08:09
28840
2
原创 关于springboot 2.2.2 的版本不支持mybatis 中namespace 数据集共享问题
最近搭建一个新项目时,采用了比较新的版本,然后发现mybatis 中namespace 数据集共享问题,报错信息如下:XML fragments parsed from previous mappers does not contain value forcom.tanruyu.provider.mapper.UserMapper.Base_List在我的项目中会存在两个命名相同的xxxMapper.xml 文件,其中一个xml 文件去引用另一个xml 文件中的数据库,结果不能引用。之前的版本.
2020-08-17 16:39:01
527
原创 JDWP 远程调试使用教程
一: 什么是 JDWP ?它的全称是: java debug wire protocol (java 调试协议),二: JDWP 使用说明 :java -agentlib:jdwp=help 查看 jdwp 的使用说明jdwp usage: java -agentlib:jdwp=[help]|[<option>=<value>, ...]Option Name and Value Description .
2020-07-08 22:53:44
2191
原创 深入剖析线程池ThreadPoolExecutor 原理
一: 线程池定义:1. 为什么会出现线程池?频繁创建线程是一个比耗时且有一定的资源开销,故引入了线程池,将线程通过池子的管理,进行重复利用。2. 如果创建线程:a ) 通过Executors辅助类创建线程池的实例:它默认提供了4种线程池策略:newFixedThreadPool(int nThreads) 创建一个固定数量的线程池,它的缓存任务队列的大小是Int 的最大值,同时拒绝策略采用抛出异常 RejectedExecutionExceptionExecutors 返回的线程
2020-07-07 10:04:23
425
原创 CyclicBarrier 的用法及使用场景
CyclicBarrier : 作用:一个同步辅助工具,它允许一组线程全部进行相互等待彼此到达公共的屏障点后,相互等待的线程会进行并发执行后续的代码逻辑 它同时实现了可循环的屏障操作,并且在屏障释放前可以执行额外的一个操作。 应用场景: 非常适合固定大小的线程的程序中使用,这些线程间或彼此等待。 实际项目场景的应用: 数据的采用多线程的组装 使用方式: 1. 创建好 Cyclic...
2020-06-19 15:30:28
1837
4
原创 Java CountDownLatch 使用及应用场景
CountDownLatch 作用:它一个同步辅助工具,它允许一个或多个线程去等待被其它的多个线程执行的一组操作,当所有的线程操作完成后,去等待的线程才允许继续往下执行 应用场景:比如:主线程 要等待所有的子线程完成一些特定点的操作之后,主线程才往下执行。 如数据的拼接,组装,一个复杂耗时的计算,最终要汇总执行的结果。 使用方式: 1. 在一组执行操作的多个线程中,当完成了指定操作后,就调用 CountDownLatch 实例的 downCount() 方法,...
2020-06-19 09:55:57
684
原创 wait , notify, sleep 方法实现细节和区别比较
关于 wait 方法和 notify 方法实现细节主要是根据 官方的javaDoc 文档和 openJDK 源码中得出,jdk 源码地址:http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/30fb8c8cceb9/src/share/vm/runtime/objectMonitor.hpp1. wait() 方法1.1 调用wait 方法时,必须当前线程持有该对象的monitor1.2 对象调用wait 方法后,它会将当前线程放入该对
2020-06-15 10:48:10
325
原创 关于GC 垃圾回收的问题
package com.tanruyu.jvm.gc.learn;/** * 验证何时进行垃圾收集 * * -verbose:gc -Xms20M 堆初始内存 -Xmx20m 堆最大内存 -Xmn10M 堆中的新生代内存大小 -XX:+PrintGCDetails -XX:SurvivorRatio=8 新生代中的Eden 与 Survivor 内存大小比例 * * @author ruyu.tan * @version V1.0 .
2020-06-05 15:33:22
230
原创 java 字节码解读
解读前,可以先看一下笔者另一篇关于字节码结构介绍说明一:源代码:package com.tanruyu.jvm.bytecode;import java.io.Serializable;public class ByteCodeTest1 implements Serializable{ private int a; public int add(int coun...
2020-04-12 12:03:15
377
原创 java字节码的结构及其类型解读
一:字节码结构组成部分:结构层 占用字节 说明 魔数 Magic Number 4 oxCAFEBABE 次版本号 minor version 2 主版本号 major version 2 java8对应52 常量池常量个数 constant pool count 2 常量池表...
2020-04-12 11:50:30
580
原创 java 类的加载结论五之java双亲委托模型作用分析
java 类的双亲委托机制好处: 1. 可以确保JAVA 核心库的类型安全:(比如:java.lang.Object 用记不能自定义该类,即使在后续过程中通过了编译,但是在执行时,Object 已经被启动类加载器加载了,在同一命名空间中只能存在一个类型的Class 对象) 所有的Java应用都至少会引用java.lang.Object 类,也就是说在运行期,java.la...
2020-03-23 23:20:57
145
原创 java 类的加载结论四之类命名空间特性详解操作
结论:在 《java 类的加载结论四》的第16个结论,这里面在复述一下:命名空间: 每个类加载器都有自己的命名空间,命名空间由该加载器及所有父加载器所加载的类组成。==> 子类加载器能看见父类加载器加载的类,而父类加载器不能看见子类加载器所加载的类。jvm 这样子设计有效提高了安全性. 特征: 1. 在同一个命名空间中,不会出现类的完整名...
2020-03-22 16:29:25
199
原创 java 自定义类加载器代码示例
/** * 自定义类加载器 */class MyClassLoader extends ClassLoader { private String path;//自定义类加载路径 private String classLoaderName;//类加载器名称 private final String fileExtensionName = ".class";//...
2020-03-18 23:15:52
439
原创 java 虚拟机中类加载器中的概念定义
类加载器: 类加载器是一个用于加载类的对象。ClassLoader 是一个抽象类。类加载器通过给定的class 文件名,尝试进行定位或者加载生成构成定义该类的数据。通常的做法是在文件系统中将名称转化为文件名,并从文件系统中根据名称进行读取。类的卸载:由Java虚拟机自带的类加载器所加载的类,在虚拟机的生命周期中,始终不会被卸载。(java虚拟机自带的类加载器主要是Bootrap ...
2020-03-18 22:48:30
168
原创 mysql 查询时没有对字符串区分大小写处理方法
原因分析:mysql 查询时没有对字符串区分大小写的原因主要在于创建表时没有指定其校对规则,或者校对规则设置成了不区分大小写。区分大小写的设置通常是: utf8****_bin ,以 “_bin" 结尾的表示区分大小写,它表示的是:binarycase sensitivecollation不区分大小写的设置通常是: ut8***_ci , 以 “_ci" 结尾的表示不区分大小写...
2020-03-16 14:17:36
601
原创 java 类的加载结论二
结论二:4.系统类加载器的父加载器是扩展类加载器,而扩展类加载器是根类加载器,但是在调用ClassLoader.getParent() 方法获取父加载器时,根类加载器返回null5.java 中的数组类对象并不是由类加载器进行加载的,它是由jvm根据需要进行动态加载的。除了数组,java任何的类都是由类加载器进行加载的6. 数组对象调用其getClass()方法获取其Class 对象...
2020-03-15 18:33:24
111
原创 java 类的加载结论一
结论:类的双亲委托机制:1. java 虚拟机中存在的类加载器: 根类加载器:加载jre/lib/rt.jar 或者 -Xbootclasspath 选项指定的jar 包 扩展类加载器:加载jre/lib/ext/*.jar 或者 -Djava.ext.dirs 指定目录下的jar包 应用(系统)类加载器:加载classpath 或者 -Djava.class.p...
2020-03-15 11:12:16
153
原创 java类的初始化结论二
结论:1.JVM 参数:-XX:+TraceClassLoading 输出类的加载信息2. 类初始化时会加载其实现的接口,不会初始化其实现的接口3. 接口中如果是常量且该常量值为字面量时,不会加载其接口本身和其父接口,故也不会进行初始化;其中原因是在编译过程中如果常量是字面量会被编译器将常量值直接放入调用类的静态池中4. 接口中如果是常量且该常量值为不为字面量时,会...
2020-03-12 21:38:37
169
原创 java类的初始化结论一
结论:1.类的主动使用会导致类的初始化 主动使用有: new 一个类的实例, 调用类的反射,访问类的静态变量或将静态变量庙会,调用类的静态方法,初始化一个类的子类,启动类main 方法所有类, JDK 1.7以后动态语言的调用2. 创建对象时,先执行静态代码块,然后执行代码块,最后执行其构造方法3.类的静态代码只有在类的初始化被执行(对应类对象在jvm只有一个),只能执行一次...
2020-03-11 22:13:53
128
原创 HttpClient 发送soap 请求方法
import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.commons.lang3.StringUtils;import org.apache.http.HttpEntity;import org.apache...
2019-05-23 13:41:27
4301
1
原创 配置多数据源后,springboot 日志中不输出sql 解决方案
最近将项目配置多数据源后,突然发现sql语句在日志中无输出了,一开始以为log4j2.xml 配置出问题了,无论怎么配置修改(试了网上n多方法,只修改log4j2.xml 文件),不能正确的输出日志。 最终怀疑是 添加多数据源导致的。最后,看到一个说在配置文件中增加配置如下:application.yml 文件中配置如下:logging: level: com.xxx.b...
2019-05-10 13:28:32
5906
原创 windows下 redis 集群服务搭建
一. 下载最新的redis 版本笔者是3.2.100下载地址:https://github.com/MicrosoftArchive/redis下载ruby 并安装:https://rubyinstaller.org/downloads/下载集群脚本:http://download.redis.io/releases/中的linux 版本号为3.2.10 的包中的 src 目录...
2019-04-17 18:10:13
273
原创 java中关于byte,short,int,long 与 byte[] 数组的转换原理
package com.tanruyu.jvm.decompile;import java.nio.Buffer;import java.nio.ByteBuffer;import java.nio.ByteOrder;import java.util.Arrays;/** * 将字节数组 与 数字互转 工具类 * * 本篇代码 工具实现,将数字转化 成byte [] ...
2019-01-17 13:23:39
1343
原创 关于二进制按位运算的那些事
一:与运算(&): 可以看作二进制的 乘法运算1 & 0 = 01 & 1 = 10 & 0 = 00 & 1 = 0eg: 5 & 6 = 4===》 5的2进制: 0000 0101===》 6的2进制: 0000 0110&运算===》 0000 0100 ===> 对应的 10 进制是:4二:...
2019-01-17 11:43:44
1163
原创 二进制的那些事
一:关于二进制码相关概念: 原码: 计算机中对数字的二进制定点表示方法。它在数值前面增加了一们符号位,用于表示 正数和负数。 反码(~): 计算机中对数字的二进制定点表示方法,它是相对于原码来说,正数的反码是自己本身,负数的反码是其原码中的各位码取反(除最高位), (0 取反 1 ,1 取 反得0)。 补码:计算机中对数字的二进制定点表示方法,正数的补码是自己本身,负数的补码是 ...
2019-01-17 10:37:15
420
原创 ServiceLoader 机制原理和源码分析
一:工作原理:serviceloader 是一个server 提供者加载设施,目前 应用了到了SPI( jdbc 驱动),它提供了延迟加载功能。当调用 ServiceLoader.load(Class clz) 方法时,会到jar中中的目录 "META-INF/services/" + clz.getName 进行文件读取,然后当在调用LazyIterator.hasNext() 时,...
2018-12-28 14:34:36
908
原创 loading 功能实现(遮罩)
1. loading 样式图标可以从网站定制: https://loading.io/2. css 样式:@keyframes lds-spinner { 0% { opacity: 1; } 100% { opacity: 0; }}@-webkit-keyframes lds-spinner { 0% { opacity: 1; ...
2018-12-06 13:23:28
3343
loading 示例
2018-12-06
springboot-web-dome
2017-11-28
SecureCRT and SecureFX 7.0 完全集成破解版.rar
2015-08-30
请教关于 easyui 的跨域问题
2014-05-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人