安诺爱思考

talk is cheap,show me the code.!!!要重实践。找准定位和方向,不急不躁,持续投入。顺势而为。...

我需要了解的动态代理

一.说明 动态代理的思想是:代理模式+反射。 静态代理,代理者的代码是由程序员自己或者通过一些自动化工具生成,然后再进行编译。 动态代理则正好相反,通过反射机制动态的生成代理对象。 代理模式可参考下面的文章链接: http://blog.csdn.net/a910626/article/...

2018-02-25 00:46:27

阅读数:270

评论数:0

细说JVM系列:成员变量分配在栈中还是堆中?

细说JVM系列:成员变量分配在栈中还是堆中?下午时小伙伴问了我一个问题:mAge为啥是在堆里?幸好最近我一直在学习JVM,所以我在思考了一会结合之前的资料给出了我的理由: 因为mAge是类的成员变量,既然类的对象在堆中,它自然也在堆中。

2016-08-31 18:20:11

阅读数:2176

评论数:0

JAVA集合源码分析系列:TreeMap源码分析

treemap

2016-08-29 22:20:05

阅读数:611

评论数:0

JAVA集合源码分析系列:TreeSet源码分析

TreeSet

2016-08-29 22:19:43

阅读数:601

评论数:0

JAVA集合源码分析系列:HashSet源码分析

HashSet

2016-08-29 22:19:20

阅读数:642

评论数:0

JAVA集合源码分析系列:HashMap源码分析

#一.大学《数据结构》散列表复习 散列表(Hash)表,你要记住一句话:根据给定的关键字来计算出关键字在表中的地址。在Hash表中,关键字和关键字的地址是有确定的关系的,这种关系可以用Hash函数H来表示。例如,关键字为key,则H(key)成为Hash地址,就是key在查找表中的地址。 #...

2016-08-29 22:18:59

阅读数:703

评论数:0

JAVA集合源码分析系列:LinkedList源码分析

LinkedList源码分析 #一.LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。 LinkedList 实现 List 接口,能对它进行队列操作。 LinkedList 实现 ...

2016-08-29 22:18:33

阅读数:658

评论数:0

JAVA集合源码分析系列:ArrayList源码分析

一.ArrayList简介ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。ArrayList 继...

2016-08-29 21:55:07

阅读数:695

评论数:0

细说JVM系列:虚拟机字节码执行引擎

虚拟机字节码执行引擎 字节码就像是汇编语言,是 JVM 的指令集。 代码编译的结果是从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。概述执行引擎是 Java 虚拟机最核心的组成部分之一。“虚拟机” 是一个相对于 “物理机” 的概念,这两种机器都有代码执行能力,其区别...

2016-08-27 15:58:00

阅读数:1094

评论数:0

细说JVM系列:虚拟机类加载机制

虚拟机类加载机制上一篇我们介绍了了Class文件存储格式的具体细节,在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。而虚拟机如何加载这些Class文件?正是本部分要说明的内容。虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成...

2016-08-27 15:37:45

阅读数:1034

评论数:0

细说JVM系列:Class文件结构

Class文件结构Class文件结构Class文件的结构并不是一成不变的,随着java虚拟机的不断发展,总是不可避免的会对class文件结构做出一些调整,但是其基本结构和框架是非常稳定的。class文件的总体结构如图所示:在我在看这块内容的时候,我在想我怎么结合我已有的概念去理解这个东西:其实Cl...

2016-08-27 11:44:13

阅读数:1019

评论数:0

细说JVM系列:JVM存在的目的和意义是什么?

JVM存在的目的和意义是什么? 一句话,实现跨平台。 代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,确是编程语言发展的一大步。记得在第一节计算机程序设计课上我的老师讲过:计算机只认识0和1,所以我们写的程序需要经过编译器编译成由0和1构成的二进制格式才能有计算机执行。多年过去...

2016-08-27 10:39:25

阅读数:938

评论数:0

细说JVM系列:分代收集算法补遗

分代收集算法补遗在前面我们就提到过,java堆为了更精细化的管理,又分为新生代和老生代。1.Java堆中各代分布图1:Java堆中各代分布Young:主要是用来存放新生的对象。Old:主要存放应用程序中生命周期长的内存对象。Permanent:是指内存的永久保存区域,主要存放Class和Meta的...

2016-08-26 21:06:02

阅读数:861

评论数:0

细说JVM系列:自动内存管理内存分配:内存分配和回收策略

自动内存管理内存分配:内存分配和回收策略java技术体系中所提倡的自动内存管理最终可以归结为自动化解决了两个问题:给对象分配内存以及回收分配给对象的内存。,关于内存的回收,之前我们已经使用了大量的篇幅介绍了这个东西。接下来我们会探讨下自动化内存分配。对象的内存分配,往大了讲,就是在堆上分配。接下来...

2016-08-26 20:57:04

阅读数:794

评论数:0

细说JVM系列:自动内存管理内存回收:垃圾收集实践-垃圾收集器

自动内存管理内存回收:垃圾收集实践-垃圾收集器在java虚拟机中,垃圾回收器可不仅仅只有一种,什么情况下要使用哪一种,对性能又有什么样的影响,这都是我们必须要了解的,这里会具体介绍一下垃圾收集器的类型,以及他们的特点。一.串行回收器串行回收器是指使用单线程进行垃圾回收的回收器。每当回收时,串行回收...

2016-08-26 20:19:29

阅读数:744

评论数:0

细说JVM系列:自动内存管理内存回收:垃圾收集理论-垃圾收集算法

垃圾收集理论-垃圾收集算法这里主要讲解垃圾收集理论上的算法,下一篇会介绍一些实现了这些算法的垃圾收集器。一般我们谈垃圾收集从三个问题来帮你理解jvm的垃圾收集策略:1.怎么判断哪些内存是垃圾? 2.用什么方法回收? 3.什么时候回收?垃圾回收的区域?前面介绍了java内存运行时区域的各个部分,...

2016-08-26 17:31:03

阅读数:988

评论数:0

细说JVM系列:什么是java对象的引用

什么是java对象的引用下一篇,我们将介绍JVM的垃圾收集器和内存分配策略,在判断对象是否是垃圾时,主要通过对象的引用来判断,不论是引用计数算法还是可达性分析算法,他们都涉及java引用的定义,这里专门对java的引用来说明一下。在JDK1.2以前,java中的引用定义很传统:如果referenc...

2016-08-26 15:27:23

阅读数:799

评论数:0

细说JVM系列:JVM对象的创建、内存布局、访问

对象的创建、内存布局、访问  这里会深入探讨HotSpot虚拟机在java堆中的对象分配、布局和访问的全过程。一.对象的创建  虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先...

2016-08-26 14:43:53

阅读数:1083

评论数:0

细说JVM系列:JVM内存空间分区

java虚拟机基本结构:JVM是一个内存中的虚拟机,那它的存储就是内存了,我们写的所有类、常量、变量、方法都在内存中,因此明白java虚拟机的内存分配非常重要,本部分主要讲解java虚拟机内存分配。本部分会从概念上介绍java虚拟机内存的各个区域,讲解这些区域的作用、服务对象以及其中可能产生的问题...

2016-08-25 21:31:25

阅读数:1701

评论数:0

细说JVM系列:JVM介绍

  JVM是我们Javaer的最基本功底了,刚开始学Java的时候,一般都是从“Hello World”开始的,然后会写个复杂点class,然后再找一些开源框架,比如Spring,Hibernate等等,再然后就开发企业级的应用,比如网站、企业内部应用、实时交易...

2016-08-25 17:41:22

阅读数:1156

评论数:4

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