- 博客(180)
- 资源 (23)
- 收藏
- 关注
转载 jvm:ObjectMonitor源码
synchronized的使用synchronized关键字是Java中解决并发问题的一种常用方法,也是最简单的一种方法,其作用有三个:(1)互斥性:确保线程互斥的访问同步代码(2)可见性:保证共享变量的修改能够及时可见(3)有序性:有效解决重排序问题,其用法也有三个:修饰实例方法 修饰静态方法 修饰代码块修饰实例方法public class Thread1 implements Runnable{ //共享资源(临界资源) static int i=0; .
2020-05-19 16:44:44
7970
19
原创 设置垃圾回收器
java -XX:+PrintFlagsFinal可以看到1.8默认的是 UseParallelGCParallelGC 默认的是 Parallel Scavenge(新生代)+ Parallel Old(老年代)在JVM中是+XX配置实现的搭配组合:UseSerialGC 表示 “Serial” + "Serial Old"组合UseParNewGC 表示 “ParNew” + “Se...
2020-03-28 17:05:03
1106
原创 G1垃圾收集器
G1收集器是一款在server端运行的垃圾收集器,专门针对于拥有多核处理器和大内存的机器,在JDK 7u4版本发行时被正式推出,在JDK9中更被指定为官方GC收集器。它满足高吞吐量的同时满足GC停顿的时间尽可能短。G1收集器专门针对以下应用场景设计可以像CMS收集器一样可以和应用并发运行 压缩空闲的内存碎片,却不需要冗长的GC停顿 对GC停顿可以做更好的预测 不想牺牲大量的吞吐量性能 ...
2020-03-28 16:10:24
1061
原创 js 获取不同时区的问题
<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>根据时区取得时区时间</title> ...
2020-03-18 11:46:11
1443
原创 Nginx跨域解释
#指定允许跨域的方法,*代表所有 add_header Access-Control-Allow-Methods *; #预检命令的缓存,如果不缓存每次会发送两次请求 add_header Access-Control-Max-Age 3600; #带cookie请求需要加上这...
2020-03-17 16:18:39
407
原创 spring如何解决循环引用的
https://zhuanlan.zhihu.com/p/84267654https://www.imooc.com/article/34150spring实例化一个Bean的时候: 实例化目标Bean(此时首先放入singletonFacties中) 注入其依赖属性核心:/** Cache of singleton objec...
2020-03-17 11:57:01
1555
原创 springmvc 获取request response session的工具方法和国际化处理
RequestContextHolder中的宝藏工具方法RequestAttributes requestAttributes=RequestContextHolder.getRequestAttributes();ServletRequestAttributes servletRequestAttributes=ServletRequestAttributes.class.cast(...
2020-03-17 09:53:45
319
原创 计算机网络(总结)
物理层: 网络设备的机械特性 电器特性 功能特性 过程特性 数据通信的基础知识 数字信号 模拟信号 频分多路复用 时分多路复用数据链路层: 封装成帧 透明封装 无差错接收 点到点线路的数据链路层 PPP 广播信道的数据链路层 CSMA/CD 设备:以太网 集...
2020-03-14 11:06:41
337
原创 Mybatis处理MySQL中的时间问题
1、MySQL中的时间表达1) DATETIME显示格式:yyyy-MM-dd HH:mm:ss时间范围:[ '1000-01-01 00:00:00'到'9999-12-31 23:59:59']2) DATE显示格式:yyyy-MM-dd时间范围:['1000-01-01'到'9999-12-31']3) TIMESTAMP显示格式:yyyy-MM-dd HH:m...
2020-03-04 15:39:13
1418
原创 UTC时间和北京时间(Java处理)
1、时间说明 具体时间说明:https://blog.youkuaiyun.com/top_code/article/details/50462922 图借鉴上述链接中的内容: UTC时间:是世界标准的时间。 北京时间:UTC+8 东京时间:UTC+92、UTC时间格式有很多,需要辨清自己是属于哪种格式,否则会出错...
2020-03-04 15:16:26
4290
原创 支持静态方法中拿到Bean的方法(持续集成的思想)
1、定义一个Adapterpublic class BeanFactoryAdapter { /** * BeanFactory */ private static MyBeanFactory beanFactory; /** * getBean * @param targetClass 要获取的类 * @retur...
2020-02-29 11:47:51
589
原创 ElasticJob+ShardingJDBC的Hello World
ElasticJob+ShardingJDBC的Hello World----------------------------------------------------------------------------import com.dangdang.ddframe.job.api.ShardingContext;import com.dangdang.ddframe.job.a...
2020-02-28 13:54:06
687
原创 过滤器(Filter),拦截器(Interceptor)和AOP拦截的区别
1.过滤器过滤器可以拦截到方法的请求和响应(ServletRequest request, ServletResponse response),并对请求响应做出像响应的过滤操作,比如设置字符编码,鉴权操作等2.拦截器拦截器可以方法执行之前(preHandle)和方法执行之后(afterCompletion)进行操作,回调操作(postHandle),可以获取执行的方法的名称,请求(Htt...
2020-01-17 09:42:10
1530
原创 TCC-分布式事务
TCC-分布式事务解决方案(国内GitHub优秀方案解决)框架名称 幂等性 嵌套调用 RPC框架支持 默认支持事务日志存储方式 可靠性验证 star数量 Github地址 tcc-transaction 不支持 嵌套调用尝试失败 不耦合RPC框架 DB、redis、zk、file 通过 42...
2019-11-23 14:33:18
293
原创 Mybatis-查询
MyBatis查询 1、一对多查询+一对一查询 <collection property="subResource" javaType="list" select="selectByTAndO" column="{pMenuId=child_pid,userId=userId}" ofType="Entity" > </co...
2019-11-22 18:23:16
423
转载 RabbitMQ 延时消息队列
https://www.cnblogs.com/xiaoxing/p/9250823.html一、简述二、示例demo单个延迟队列 多个延迟队列一、简述延时消息在日常随处可见:1、订单创建10min之后不发起支付,自动取消。2、30min定时推送一次邮件信息。最常用到方式为定时任务轮训,数据量小的时候使用没什么问题 而当有千万甚至上亿的数据量时就会出现数据读取的瓶...
2019-09-26 10:29:15
847
原创 幂等性的总结
与题主分享一点在高并发的核心技术中如何实现幂等性问题的研究,希望对题主有所帮助。实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。例如:1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;3. 发送消息,也应该只发一次,同样的短信发给...
2019-09-06 09:29:51
584
原创 NGINX正向代理+java设置代理
server { resolver 8.8.8.8; resolver_timeout 5s; listen 80; location /check.do{ return 200; } location / { proxy_pass $scheme:...
2019-08-20 19:46:53
1801
原创 netty-超时的设置
官方给出的处理方法:// An example that sends a ping message when there is no outbound traffic// for 30 seconds. The connection is closed when there is no inbound traffic// for 60 seconds.public class...
2019-08-14 17:18:02
10246
原创 elastic-job(通过zookeeper管理元数据)
任务名称: namespace /elastic-job-demo |---------demoSimpleJob1 |-------------leader |-----election ...
2019-08-13 18:01:35
2286
原创 zookeeper curator选主(Leader)
在分布式系统设计中,选主是一个常见的场景。选主是一个这样的过程,通过选主,主节点被选择出来控制其他节点或者是分配任务。选主算法要满足的几个特征:1)各个节点均衡的获得成为主节点的权利,一旦主节点被选出,其他的节点可以感知到谁是主节点,被服从分配。2)主节点是唯一存在的3)一旦主节点失效,宕机或者断开连接,其他的节点能够感知,并且重新进行选主算法。zookeeper实现了安...
2019-08-10 09:31:38
879
原创 零拷贝(java+netty+kafka+RocketMQ)
Java零拷贝1.MappedByteBuffer +2.DirectByteBuffer+3.Channel-to-Channel传输Netty零拷贝netty提供了零拷贝的buffer,在传输数据时,最终处理的数据会需要对单个传输的报文,进行组合和拆分,Nio原生的ByteBuffer无法做到,netty通过提供的Composite(组合)和Slice(拆分)两种buffer来实...
2019-08-09 09:24:49
1205
原创 快速删除大文件的方法
1、快速删除大量文件:假如你要在linux下删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件,/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。 rsync 可以用来清空目录或文件,如下:1)先建立一个空目录mkdir/data/blank2)用rsync删除目标目录...
2019-08-09 09:13:18
3827
原创 Quartz分布式定时任务
如果想要实现可以动态修改的定时策略,建议使用开源组件 Quartz。http://www.quartz-scheduler.org/downloads/
2019-08-01 10:01:36
575
原创 JDK默认默认垃圾收集器
jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)jdk1.9 默认垃圾收集器G1-XX:+PrintCommandLineFlagsjvm参数可查看默认设置收集器类型-XX:+PrintGCDetails亦可通过打印...
2019-07-30 09:44:57
3926
1
转载 CMS执行周期
Java堆的对象分布如下:1、InitialMarking(初始化标记,整个过程STW)该阶段单线程执行,主要分分为两步:标记GC Roots可达的老年代对象; 遍历新生代对象,标记可达的老年代对象;该过程结束后,对象分布如下:2、Marking(并发标记)该阶段GC线程和应用线程并发执行,遍历InitialMarking阶段标记出来的存活对象,然后继续递归...
2019-07-29 20:47:59
781
原创 JVM配置详解
关于JVM选项的几点:1) 布尔型参数选项:-XX:+ 打开, -XX:- 关闭。(译者注:比如-XX:+PrintGCDetails)2) 数字型参数选项通过-XX:=设定。数字可以是 m/M(兆字节),k/K(千字节),g/G(G字节)。比如:32K表示32768字节。(译者注:比如-XX:HeapDumpPath=./java_pid.hprof)3) 字符行参数选项通过-...
2019-07-29 19:45:31
282
转载 G1从入门
G1从入门最近在看关于G1垃圾收集的文章,看了很多国内与国外的资料,本文对G1的这些资料进行了整理。这篇合适JVM垃圾回收有一定基础的同学,作为G1入门可以看一下,如果要死磕G1实现的内容细节。大家可以找R大。 个人认为R大是目前国内JVM领域研究的先驱了,当然R大也是不建议大家去看JVM的源码的。为啥别读HotSpot VM的源码G1系列第一篇文章会介绍G1的理论知识,不会做JVM源码的深...
2019-07-29 17:33:20
483
转载 -XX:CMSInitiatingOccupancyFraction
使用例子:-XX:CMSInitiatingOccupancyFraction=70CMS垃圾收集器,当老年代达到70%时,触发CMS垃圾回收。查看CMSInitiatingOccupancyFraction的初始值为-1intx CMSInitiatingOccupancyFraction = -1 ...
2019-07-29 17:04:39
1680
转载 jvm 性能调优工具之 jstat
概述Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。jstat 用法option:参数选项 -t:可以在打印的列加上Time...
2019-07-29 14:56:56
602
1
转载 finalize、Finalizer和Finalizer Queue的原理
1.摘要前一阵排查一个跟java的finalizer有关的问题,发现网上虽然有很多关于finalizer的描述,但是大多都语焉不详,草草说了几句“带finalize的对象会进入finalizer队列”然后就没下文了,这让我研究了很久也没搞明白这个finalizer队列究竟是什么原理,也没明白为什么heap里面的Finalizer对象非常多但是用jmap -finalizerinfo的时候总是显...
2019-07-26 17:23:42
1271
原创 Tomcat源码加密
(一)操作方法和spring源码添加修改部分事先说明:spring源码要下载好,会有修改spring的源码操作,本文和本作者所依赖的spring项目的版本是3.1.1,spring4及以上源码对应的类路径可能有所改变,需要自己找到要修改的类哦,类名应该是不会变的。望理解~~操作步骤: ~具体说明看类文件注释~1.运行ProduceKey.java的main方法 生成 key.key文件...
2019-07-26 16:36:39
1037
1
转载 Spring 中的类加载机制 - ClassLoader
Spring 中的类加载机制 - ClassLoaderClassLoader JVM 类加载机制系列文章:Java - ClassLoader Spring 中的类加载机制 - ClassLoader一、OverridingClassLoader 中的使用OverridingClassLoader 是 Spring 自定义的类加载器,默认会先自己加载(excludedPackag...
2019-07-26 16:32:03
4680
2
原创 JVM类加载机制+Tomcat类加载
类加载机制----------------------------------------形成JVM可以直接使用的Java类型的过程重要判断Class是否相等(类加载器必须是同一个),要看2个准则Class clazz1; Class clazz2; (clazz1==clazz2&&clazz1.getClassLoader()==clazz2.getC...
2019-07-26 15:40:18
385
转载 Log4j中的异步Appender+Logger
前文已经讲了log4j2的AsyncAppender的实现【log4j2异步日志解读(一)AsyncAppender】,今天我们看看AsyncLogger的实现。看了这个图,应该很清楚AsyncLogger调用Disruptor,然后直接返回。至于高性能队列这里已经展开讲了是如何实现的。AsyncLogger的调用流程我们来看看AsyncLogger的调用流程,lo...
2019-07-25 15:49:21
5162
转载 文件描述符(File Descriptor)简介
维基百科:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。一、文件描述符概念 Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符...
2019-07-24 09:59:47
11833
转载 给你最全的Ajax+XMLHttpRequest
XMLHttpRequest一Ajax和XMLHttpRequest我们通常将Ajax等同于XMLHttpRequest,但细究起来它们两个是属于不同维度的2个概念。对Ajax较为准确的解释:(摘自what is Ajax)AJAX stands for Asynchronous JavaScript and XML. AJAX is a new technique for c...
2019-07-19 11:29:03
1049
(46页完整版)JVM体系结构与GC调优.zip
2019-05-15
fiddler+willow
2018-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人