自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CentOS7 防火墙相关命令

操作系统:CentOS 7 防火墙(firewalld)相关启动防火墙: systemctl start firewalld关闭防火墙:systemctl stop firewalld查看状态:systemctl status firewalld开机启用:systemctl enable firewalld禁止开机启用:systemctl disable fire...

2018-09-25 12:56:09 155

原创 The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more ...

在程序运行时出现这个错误,为了避免以后再次遇到,在此记录一下。 Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time...

2018-08-23 13:41:21 183

原创 【Java性能优化】栈上分配

环境:Windows10Java版本:1.8 栈上分配是Java虚拟机提供的一种优化技术,基本思想是对于那些线程私有的对象(指的是不可能被其他线程访问的对象),可以将它们直接分配在栈上,而不是分配在堆上。分配在栈上的好处:可以在函数调用结束后自行销毁,而不需要垃圾回收器的介入,减轻GC压力,从而提升系统的性能。 使用场景:对于大量的零散小对象,栈上分配提供了一种很好的对象分...

2018-08-20 15:12:18 410

原创 JVM垃圾回收算法

1. 概述GC最基础的算法有三种:标记-清除、复制算法、标记-压缩。由于堆分为新生代和老年代,所以我们常用的垃圾回收器一般都采用分代收集算法。 标记-清除:如它的名字一样,算法分为“标记”和“清除”两个阶段,首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。复制算法:将可用内存按容量划分为大小相等的两块,每次只使用其中一块内存。当这一块内存用完时,就将还存...

2018-08-14 22:35:37 122

原创 JVM基本结构

Java在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途、创建和销毁的时间,有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,有些则是与线程一一对应,随线程的开始和结束而创建和销毁。 Java虚拟机运行时包含以下几个运行时数据区: 程序计数器程序计数器是线程私有的,在线程创建时创建。可以看作是当前线程所执行的字节码的行号指示器...

2018-08-14 16:09:53 99

原创 常用JVM配置参数

详细信息参考:Oracle官方文档环境信息:Windows10JDK:1.8 Trace跟踪参数 public class Test { public static void main(String[] args) { byte[] bytes = null; for (int i = 0; i < 10; i++) ...

2018-08-14 15:33:09 197

原创 RabbitMQ实现延时队列

1. 背景介绍实际开发中,存在着下面这些场景:滴滴打车订单完成后,如果用户一直不评价,48小时后自动五星好评在电商系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,则这个订单会进行后续一些处理用户希望通过手机远程遥控家里的智能设备在指定的时间后进行工作......针对这些场景,常见的方案是:启动一个cron定时任务,定时运行并查询符合...

2018-08-13 14:26:07 244

Spring整合RabbitMQ

需要依赖的jar包 /* RabbitMQ of Gradle */compile("com.rabbitmq:amqp-client:5.1.2")compile("org.springframework.amqp:spring-rabbit:2.0.1.RELEASE")/* RabbitMQ of Maven*/<dependency> &lt...

2018-08-13 13:49:20 125

原创 IDEA常用插件

Alibaba Java Coding Guidelines阿里编码规约插件,下载地址:http://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelinesCodeGlance它的作用是把代码小地图嵌入到编辑窗口,下载地址:http://plugins.jetbrains.com/plugin/72...

2018-08-13 13:34:57 91

原创 ThreadLocal内存泄漏问题及最佳实践

ThreadLocal实现原理 ThreadLocal的实现是这样的:每个Thread 维护一个 ThreadLocalMap 映射表,这个映射表的 key 是 ThreadLocal 实例本身,value 是真正需要存储的 Object。也就是说 ThreadLocal 本身并不存储值,它只是作为一个 key 来让线程从 ThreadLocalMap 获取 value。值得注意的是图中的虚...

2018-08-13 10:17:48 1015

原创 ThreadLocal工作原理

概述  翻译过来的大概意思是:ThreadLocal类用来提供线程内部的局部变量。这些变量在多线程环境下访问(通过get或set方法访问)时能保证各个线程里的变量相对独立于其他线程内的变量。 总结:ThreadLocal不是为了解决多线程访问共享变量,而是为每个线程创建一个独立的变量副本,提供了保持对象的方法和避免参数传递的复杂性。 实现原理ThreadLoca...

2018-08-13 09:52:02 88

原创 Java锁分析 - Synchronized执行流程

乐观锁 vs 悲观锁乐观锁 总是认为不会产生并发问题,因此并不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。悲观锁总是假设最坏的情况,每次取数据时都认为其他线程会修改,所以都会加锁(读锁、写锁等),当其他线程想要访问数据时,都需要阻塞挂起。 Java线程阻塞的代价Java的线程是映射到操作系统原生线程之上的,如...

2018-08-10 18:20:55 629

原创 Java类加载机制

 类加载过程类加载过程包含了加载、验证、准备、解析、初始化五个阶段。其中加载、验证、准备、初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。需要注意的是,这几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通常都是互相交叉地混合进行的,通常在一个阶段执行的过程中调用或...

2018-08-09 18:23:24 89

原创 不停机分库分表迁移

转自:不停机分库分表迁移,作者:阿飞Javaer 需求说明类似订单表这种规模上亿,未来甚至上十亿百亿的海量数据表,在项目初期为了快速上线,一般只是单表设计,不需要考虑分库分表。随着业务的发展,单表容量超过千万甚至达到亿级别以上,这时候就需要考虑分库分表这个问题了,而不停机分库分表迁移,这应该是分库分表最基本的需求,毕竟互联网项目不可能挂个广告牌"今晚10:00~次日10:00...

2018-08-07 17:04:25 210

RabbitMQ面试要点

1. 如何确保消息正确地发送至RabbitMQ?RabbitMQ使用发送方确认模式,确保消息正确地发送到RabbitMQ。 发送方确认模式:将信道设置成confirm模式(发送方确认模式),则所有在信道上发布的消息都会被指派一个唯一的ID。一旦消息被投递到目的队列后,或者消息被写入磁盘后(可持久化的消息),信道会发送一个确认给生产者(包含消息唯一ID)。如果RabbitMQ发生内部...

2018-08-07 16:25:13 3376

原创 分布式系统设计策略

摘自 《深入分布式缓存:从原理到实践》 分布式系统本质是通过低廉的硬件攒在一起以获得更好地吞吐量、性能以及可用性等。分布式系统有一些通用的设计策略,也是在分布式环境下普遍关心的几个问题:如何检测你还活着?如何保障高可用容错处理重试机制负载均衡1. 心跳检测在分布式环境中,一般会有多个节点来分担任务的运行、计算或程序逻辑处理。通常采用 心跳检测 来判断节点...

2018-08-07 15:08:05 1935

原创 Paxos一致性算法

1. 概述Paxos协议是一个解决分布式系统中,多个节点之间就某个值(提案)达成一致(决议)的通信协议。它能够处理在少数节点离线的情况下,剩余的多数节点仍然能够达成一致。 Paxos协议是一个两阶段协议,分为Prepare阶段和Accept阶段,涉及三个参与者角色:Proposers、Acceptors和Learners。Proposers提出提案,提案信息包括提案编号和提议的 va...

2018-08-07 10:21:10 843

原创 Spring Xml配置模板

[code="xml"] classpath*:config/*.properties classpath*:prod.properties file://${app_conf}/prod.properties ...

2018-08-07 09:58:10 603

原创 Centos下Redis的安装及配置

[list][*][b]服务器环境:CentOS 6.6[/b][/list][list][*][b]1. 下载安装[/b][/list][code="java"]wget http://download.redis.io/redis-stable.tar.gztar xzf redis-stable.tar.gzcd redis-stablemake[/cod...

2015-04-29 22:22:25 105

空空如也

空空如也

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

TA关注的人

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