编程篇
以java为主的编程语言收集
阿甘修行
闲看庭前花开花落,漫随天外云卷云舒。
展开
-
【JVM】空间分配担保机制
1、空间分配担保的目的?避免FullGC过于频繁。2、JDK 6 Update 24之前在发生Minor GC之前,虚拟机必须先检查老年代最大可用的连续空间是否大于新生代所有对象总空间,如果这个条件成立,那这一次Minor GC可以确保是安全的。如果不成立,则虚拟机会先查看-XX:HandlePromotionFailure参数的设置值是否允许担保失败(HandlePromotion Fai...原创 2020-04-29 16:12:07 · 2806 阅读 · 0 评论 -
RocketMQ零拷贝原理
1、什么是零拷贝?零拷贝是指CPU不需要在应用内存和内核内存之间拷贝数据消耗资源。2、零拷贝的优势?(1)避免不必要的CPU拷贝,让CPU解脱出来去执行其他的任务;(2)减少内存带宽的占用;(3)减少用户空间和操作系统内核空间之间的上下文切换;3、数据拷贝的实现方式有哪些?3.1、 传统的数据拷贝(1)读取系统调用导致上下文从用户模式切换到内核模式。第一个副本由DMA引擎执行,该...原创 2020-04-10 11:28:36 · 2477 阅读 · 1 评论 -
JVM(Jdk1.8)常用参数
基于jdk1.8参数含义说明-XX:CICompilerCount=3最大并行编译数如果设置大于1,虽然编译速度会提高,但是同样影响系统稳定性,会增加JVM崩溃的可能-XX:InitialHeapSize=100M初始化堆大小简写-Xms100M-XX:MaxHeapSize=100M最大堆大小简写-Xmx100M-XX:NewSize=2...原创 2020-03-30 17:43:28 · 398 阅读 · 0 评论 -
JVM命令行性能监控工具
JVM命令行性能监控工具基于jdk1.81、在 java 的 bin 目录下,jdk 提供了很多使用的工具,下面学习一些监控和故障处理的工具。名称作用jpsJVM process status tool,显示指定系统内所有的 HotSpot 虚拟机进程jstatJVM statistics monitoring tool,用于收集 HotSpot 虚拟机各方...原创 2020-03-19 16:53:52 · 280 阅读 · 0 评论 -
tomcat增加JMX及远程调试端口配置
1、文件位置$TOMCAT_HOME/bin/catalina.sh2、增加jmx配置方便进行运行时区域监控。JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.X.X -Dcom.sun.management.jmxre...原创 2020-03-19 11:39:48 · 1314 阅读 · 0 评论 -
[java]线程池创建ThreadPoolExecutor
【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。说明: Executors 返回的线程池对象的弊端 如下1 FixedThreadPool 和 SingleThread Pool允许的请求队列长度为 Integer.MAX_VALUE,可 能会堆积大量的请求,...原创 2020-03-17 15:53:03 · 208 阅读 · 0 评论 -
[java] ThreadLocal原理及内存泄露的解决
1.ThreadLocal解决了什么问题?ThreadLocal提供了线程局部变量,通常维护一些资源或者变量,以避免线程争用或者同步问题;2.使用方式每个线程通过{@code get}或{@code set}方法,独立初始化的变量的副本。3.原理是什么?3.1 读取数据3.1.1 读取数据的整个流程public T get() { Thread t = Thread.curr...原创 2020-03-05 18:24:29 · 1072 阅读 · 1 评论 -
[java]01受检异常和非受检异常的区别
1、什么是非受检异常?非受检异常指的是java.lang.RuntimeException和java.lang.Error类及其子类;2、什么是受检异常?除了非受检异常之外的异常属于受检异常;3、受检异常和非受检异常的区别?受检异常必须处理(需要捕获处理),非受检异常不需要处理(没办法处理);实现类变更(多抛出一个受检异常),受检异常封装性会受影响(外层代码必须捕获,写好的外层代码可能...原创 2020-02-21 16:35:15 · 1408 阅读 · 0 评论 -
[数据库]数据库范式
什么是数据库范式?关系数据库的设计规范。不同的规范要求被称为不同的范式,越高的范式数据库冗余越小。作用?减少数据库中数据冗余的过程;数据库范式1、第一范式(1NF):在关系模式R中,当且仅当所有属性只包含原子值,即每个分量都是不可再分的数据项,则称R满足1NF。例如表所示的教师职称情况关系就不满足1NF。原因在于,该关系模式中的“高级职称人数”不是一个原子属性,若将其拆分为“教授”和...原创 2020-02-02 15:07:08 · 387 阅读 · 0 评论 -
[java][单例模式]双重检查锁
单例模式单例模式(singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。双重检查锁出现在单例模式中,单例模式分为饿汉模式和懒汉模式.这种静态初始化的方式是在自己被加载时就将自己实例化,所以被形象地称之为饿汉式单例类。这种在第一次被引用时,才会将自己实例化,所以就被称为懒汉式单例类。错误示例在实现懒汉单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码:...转载 2020-02-02 12:59:40 · 279 阅读 · 0 评论 -
[java]JVM内存分配机制
以下整理的为JVM内存分配机制,如有错误,还请指正原创 2020-01-22 17:08:34 · 105 阅读 · 0 评论 -
memcache内存管理
1、memcache启动参数memcached -h memcached 1.4.20-p <num> TCP端口,默认为11211,可以不设置-U <num> UDP端口,默认为11211,0为关闭-s <file> UNIX socket-a <mask> a...原创 2020-01-20 10:51:42 · 290 阅读 · 0 评论 -
fabric1.4.3安装笔记
1、准备条件硬件环境:centos 7.5linux内核:3.10+2、安装docker_ce版卸载旧版本sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ ...原创 2020-01-20 09:47:09 · 358 阅读 · 0 评论 -
[java][源码]java.lang.Object
1、基准jdk版本jdk版本JDK1.82、方法列表java.lang.Object序号方法名描述1Object默认构造器2registerNatives注册本地库3getClass获取对象的运行时类4hashCode获取对象的哈希码值5equals比较是否相等6clone复制对象7...原创 2020-01-19 16:25:31 · 394 阅读 · 0 评论 -
[计算机]位运算符
1、运算符号含义Java运算规则按位与a & b两个位都为1时,结果才为1按位或a | b两个位都为0时,结果才为0按位异或a ^ b两个位相同为0,相异为1按位取反~a0变1,1变0左移a << b各二进位全部左移若干位,高位丢弃,低位补0带符号右移a >> b各二进位全部右移若干位,若...原创 2020-01-17 13:58:46 · 232 阅读 · 0 评论 -
jackson注解使用
jackson常用注解1、类注解,忽略部分字段@JsonIgnoreProperties(value = { "name" }) 2、@JsonIgnore忽略单个字段,可标注在属性或者方法上3、@JsonProperty(value="create") 为属性定义返回的json名称4、@JsonFormat(pattern="yyyy-MM-原创 2015-02-26 10:17:16 · 498 阅读 · 0 评论