自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 zookeeper

2016-08-17 23:33:57 547

原创 java并发模型

2016-07-31 21:16:55 616

原创 JVM深入理解

2016-07-30 23:08:52 407

原创 java远程通信

2016-07-28 23:13:35 585

原创 环境变量设置及Java命令行使用

一、Java环境变量设置windows 下配置JDK环境变量:1. 安装JDK,安装过程中可以自定义安装目录,例如我们选择安装目录为C:\Program Files\Java\jdk1.7.0_40;2. 安装完成后,右击“计算机”,点击“属性”;3. 点击“高级系统设置”,选择“高级”选项卡,点击“环境变量”;4. 在“系统变量”中,设置3项属性,JAVA_HOME,PATH

2016-07-10 17:24:18 8268

转载 JVM——Java内存相关(已完结)

Java内存模型,Java内存管理,Java堆和栈,垃圾回收Java内存模型细说Java多线程之内存可见性(视频)(推荐)(如果嫌视频讲的慢,建议使用1.5倍速度观看)JSR 133: JavaTM Memory Model and Thread Specification Revision(JMM英文官方文档)Java内存模型FAQ深入理解Java内存模型

2016-06-05 22:19:26 322

原创 jvmti

http://docs.oracle.com/javase/1.5.0/docs/guide/jvmti/jvmti.html?cm_mc_uid=09304822656314650920444&cm_mc_sid_50200000=1465135781#whatIshttps://www.ibm.com/developerworks/cn/java/j-lo-jvmti/http:/

2016-06-05 22:14:27 548

原创 深入 Java 调试体系

http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/http://www.ibm.com/developerworks/cn/java/j-lo-jpda2/http://www.ibm.com/developerworks/cn/java/j-lo-jpda3/http://www.ibm.com/developerwor

2016-06-05 12:01:11 397

原创 Java 热部署

基础知识:class卸载、热替换和Tomcat的热部署的分析HotSwap:HotSwap和JRebel原理成熟的热部署技术实现原理:深入探索 Java 热部署

2016-06-05 11:59:15 575

原创 ASM javassist

http://www.ibm.com/developerworks/cn/java/j-lo-asm30/http://jboss-javassist.github.io/javassist/tutorial/tutorial.htmlhttp://www.ibm.com/developerworks/cn/java/coretech/java-dynamic.htmlht

2016-06-05 11:51:08 410

原创 javaagent

java.lang.instrument  java.lang.instrument API docs

2016-06-05 11:26:28 750

原创 Maven

1 Maven是什么Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。Maven的目标(官网上的

2016-05-02 10:21:47 1353

原创 Java解析xml文件的方法

什么是 XML?XML指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准XML 与 HTML 的主要差异XML 不是 HTML 的替代。XML 和 HTML 为不同的目的而

2016-05-02 10:03:05 328

原创 log4j使用

入门实例下载log4j的jar包,目前的最新版本是1.2.17,下载地址。新建项目,新建lib文件夹,拷贝log4j-1.2.17.jar到lib下,导入到项目中。新建class Log4JTest,代码如下:package com.anan.log;import org.apache.log4j.Logger;public class Log4JTest {

2016-05-02 09:58:14 1233

转载 深入理解Java内存模型——总结

处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。根据对不同类型读/写操作组合的执行顺序的放松,可以把常见处理器的内存模型划分为下面几

2016-05-01 20:12:31 355

转载 深入理解Java内存模型——final

与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面,我们通过一些示例性的代码来分别说

2016-05-01 19:54:15 311

转载 深入理解Java内存模型——锁

锁的释放-获取建立的happens before 关系 锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:class MonitorExample { int a = 0; public synchronized void writer() { //1

2016-05-01 19:37:37 331

转载 深入理解Java内存模型——volatile

volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class VolatileFeaturesExample { //使用volatile声明64位的lon

2016-05-01 19:04:57 386

转载 深入理解Java内存模型——顺序一致性

数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。JMM对正确同步的多线程程序的

2016-05-01 18:53:00 2443 1

转载 深入理解Java内存模型——重排序

数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a = 1;b = a;写一个变量之后,再读这个位置。写后写a = 1;a = 2;写一个变量之后,再写这个变量。读后写a = b;b = 1;读一个变

2016-05-01 11:17:38 453

原创 Zookeeper源码学习环境搭建

1.下载Zookeeper源码Zookeeper GitHub的下载地址是:https://github.com/apache/zookeeper2.安装ant(1)下载ant,我下载的是apache-ant-1.9.7-bin.zip(地址:http://ant.apache.org/bindownload.cgi)(2)解压到特定目录,设置ANT_HOM

2016-04-23 21:28:46 1676

原创 虚拟机对象探秘

Java对象的创建        Java是一门面向对象的编程语言,Java程序运行过程中每时每刻都有对象被创建出来。在语言层面上,创建对象通常(例外:克隆、反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象(本文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢?虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符

2016-04-16 11:56:59 455

转载 微服务熔断与隔离

为什么需要做服务隔离与熔断       微服务是当前业界的一个趋势,其原理是将职责单一的功能独立化成子服务,一个后台服务依赖多个微服务。假设某服务由30个微服务组成,每个微服务的可用性是99.99%,那么99.99%的30次方≈99.7%,也就是说有0.3%的请求会失败,若有一亿次请求则有300000次失败。       微服务间通过RPC来进行数据交换,所以我们可以做一个假设:在

2016-04-16 10:55:48 10823 1

转载 RPC原理

在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。  而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用?2)

2016-04-16 10:19:06 602

转载 图解服务化架构演进

前言  随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算势在必行,对现阶段传统垂直架构改造的核心就是对应用做服务化改造,服务化改造使用的核心技术架构就是分布式服务框架。服务化架构演进        那什么是微服务架构呢?        orm – 单一应用架构:是一个高内聚版本,所有功能部署在一起

2016-04-16 09:52:06 5285

转载 深入理解JAVA内存模型——基础

并发编程模型的分类        在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。        在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程

2016-04-14 04:59:08 496

原创 做自己喜欢的事

今天4点就起床,一是致敬自己的偶像——我科(传奇离去,青春不再),二是做自己喜欢的事——学习新技术,4点到9点,这段时间真是好时光,那么的自由。之前一直有打算写博客,可是从没有执行,主要原因是懒吧,不能这样下去了,那就现在开始吧。

2016-04-14 04:54:32 390

空空如也

空空如也

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

TA关注的人

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