自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 高效并发-线程安全与锁优化

1:线程安全1.1:Java语言中的线程安全不可变:被final修饰。绝对线程安全**相对线程安全:**Java语言中,大部分的线程安全类都属于这种类型,例如Vector、HashTable、Collections的 synchronizedCollection()方法包装的集合线程兼容:对象本身不是现场安全的,但可以通过在调用端通过正确的使用同步手段来保证在并发环境下安全的使用。线程对立

2016-07-30 11:24:31 1620

原创 高效并发-Java内存模型和线程

1:Java内存模型1.1:主内存和工作内存    Java内存模型规定了所有变量(包括了实例字段、静态字段和构成数组对象的元素)都存储在主内存中, 每条线程有自己的工作内存,线程的工作内存中保存了被该线程调用的变量的主内存副本拷贝,线程对变量的所有操作(读取、赋值)都必须在工作内存下进行。1.2:内存间的交互操作    八种原子操作:lock、unlock、read、load、use、assign

2016-07-30 00:55:07 580

原创 程序编译与代码优化-晚期(运行期)优化

1:Hotspot虚拟机内的即时编译器1.1:解释器与编译器    当程序需要快速启动和执行的时候,解释器可以首先发挥作用,省去编译的时间,立即执行;在程序运行后,随着时间的推移,编译器发挥着作用,把越来越多的代码编译成本地代码之后,可以获得更高的执行效率。     Hotspot编译器有两个即时编译器,分别称为Client Compiler和Server Compiler,或者简称为C1和C

2016-07-30 00:43:12 796

原创 程序编译与代码优化-早期(编译期)优化

1:概述前端编译器:Sun的Javac、Eclipse JDT中的增量式编译器(EJC)JIT编译器:Hotspot VM的C1,C2编译器AOT编译器:GNC Compiler for the Java(GCJ)、Excelsior JET    本章先介绍第一种前端编译器,也是大家都认可的编译器。2:Javac编译器    源码编译自OpenJdk7,从Sun Ja

2016-07-29 17:27:26 702

原创 类加载及执行子系统的案例与实践

1:案例分析1.1 Tomcat:正统的类加载器架构    一个功能鉴权的Web服务器,需要解决的问题:部署在同一服务器上的两个Web应用程序所使用的Java类库可以实现相互隔离。服务器需要尽可能的保证自身的安全不受部署的Web应用程序影响。支持Jsp应用的Web服务器,大多数都要支持HotSwap功能。    对于Tomcat5.X的版本,存在common、server、shared、和应

2016-07-23 11:26:42 628

原创 虚拟机字节码执行引擎

1:概述    在Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这种概念模型成为各种虚拟机执行引擎的统一外观(Facade)。不同的虚拟机,可能通过解释器执行或者编译器产生本地代码执行,或者包含几个不同级别的编译器执行引擎。2:运行时栈帧结构    栈帧是用户支持虚拟机进行方法调用和方法执行的数据结构,他是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量

2016-07-19 21:52:15 331

原创 虚拟机类加载机制

1:类加载的时机    类从被加载到虚拟机内存中开始,到卸载出内存为止,他的整个生命周期包括:加载(loading)、验证( Verification)、准备(preparation)、解析(resolution)、初始化( initialization)、使用(using)、卸载(unloading)七个阶段。     下面的五中情况必出触发类的初始化阶段。遇到new、getstatic、pu

2016-07-16 18:31:23 268

原创 虚拟机类文件结构

1:Class文件的结构1.1:Class类文件的结构    class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。当遇到需要占用8位字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储。     C

2016-07-14 22:49:20 464 1

原创 虚拟机性能监控与故障处理工具

1:概述    给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里所说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore)、堆转储快照(heapdump/hprof文件)等。2:JDK命令行工具    Sun JDK的主要监控和处理工具 名称 主要作用 jps JVM Process Status To

2016-07-11 20:32:11 288

原创 JVM垃圾回收器

### 1. **概述**    JAVA的内存回收的原理是作为JAVA开发者必须要了解的,因为:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要去对JVM的自动GC做必要的监控和调节。2. JVM是如何判断对象已死引用计数法     此方法很简单,判断效率也高,在大多数情况下都是不错的算法,也有一些比较成功的案例。但是主流的JVM

2016-05-14 17:40:17 560

原创 Java内存区域与内存溢出异常

对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写分配对的delete/free代码(C++中的内存释放方式),不容易出现内存泄漏和内存溢出的问题,由虚拟机管理内存,这一切看起来都很美好。不过,正因为Java程序员把内存控制权利交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎么使用内存的,那么排查错误将会成为一项异常艰难的工作。1.

2016-05-11 17:34:11 675

转载 字符串的全排列【递归算法训练】

前几天,师兄轻描淡写的出了一道题,对于一个给定的字符串,输出它的全排列结果,例如,输入ab,则程序需要输出ab,ba[结果数为2*1=2]。额外的要求是对于字符串中的重复字符,程序要能识别出来并进行去重处理,例如,输入aab,则程序需要输出baa,aba,aab[结果数为3,而不是3*2=6]。  这里我用了两种思路实现了这道题,不过都属于递归,第一种思路是我自己想的,只能输出全排列,在去重处

2014-02-25 10:25:37 665

Hadoop权威指南(中文第2版)

Hadoop权威指南(中文第2版).

2013-12-28

南大软件学院 软件工程数据库技术

南大软件学院复试资料,南大软件工程数据库技术.rar

2013-12-28

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

TA关注的人

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