- 博客(30)
- 收藏
- 关注
原创 深入JVM学习笔记 JVM指令介绍
JVM指令介绍栈和局部变量操作1、常量入栈操作 --入栈操作三种方式指明常量的值:常量值隐式包含在操作码内部,常量值在字节码流中如同操作数一样紧随在操作码之后,或者从常量池中取出常量 --Java栈中每一个位置的长度都是一个字长(至少32位宽) --Java源代码中所有的字符串文字最终都作为入口存储与常量池中。如果同一个应用程序的多个类都使用同样的...
2011-11-18 16:22:40
125
原创 深入JVM学习笔记 垃圾收集
垃圾收集1、垃圾收集算法 两件事情。首先,必须检测出垃圾对象;其次,必须回收垃圾对象所使用的堆空间并还给程序。 垃圾检测通常通过建立一个根对象的集合并且检查从这些根对象开始的可触及性来实现(跟对象总是可触及的)。 --引用计数收集器:已经不在被接受使用 --跟踪收集器:追踪从根节点开始的对象引用图。 --压缩收集器:...
2011-11-16 10:25:31
104
原创 深入JVM学习笔记 连接模型
连接模型1、Class文件中的常量池类型的运行时常量池(JVM装载后产生的内部版本的常量池,是一个特定于实现的数据结构)2、动态扩展的两种方法:Class.forName() ClassLoader.loadClass() 区别:前者的单参数或者三参数且initial为true可以保证返回的类型一定被初始化了。后者返回的类型有可能没有初始化,后者适合用户自定义加载机制(特...
2011-11-15 14:13:39
148
原创 深入JVM学习笔记 类型生命周期
Java Class文件1、Class文件中的内容结构列表 --magic(魔数) OXCAFEBABE 用于区分JAVA Class文件和非JAVA Class文件 --minor version/major version 用于检测Class文件版本号是否属于JVM可以处理的范围 --constant...
2011-11-10 12:18:24
180
原创 深入JVM学习笔记 JVM是什么
JVM是什么1、守护和非守护线程 在Java虚拟机内部有两种线程:守护线程和非守护线程。守护线程通常是由虚拟机自己使用的,例如执行垃圾回收的线程。但是Java程序也可以把它创建的线程标志为守护线程。只要还有任何非守护线程运行,虚拟机实例也将存活。 2、方法区 JVM装载class文件后,就会为每个类型信息创建一个Class来提取其中的类型信息,这些类的类型信息就会存储...
2011-11-04 10:58:36
123
原创 深入JVM学习笔记 Java技术体系结构
1、不同Java虚拟机执行引擎的实现不同,大体可分为三种 第一种最简单,就是直接一次性解释字节码。 第二种更快,但更消耗内存,叫即时编译器(JIT)。在这种情况下,第一次执行的字节码会被编译成本地机器代码,并缓存起来,当方法以后被调用的时候重用。 第三种是自适应优化器,在这种方法里虚拟机刚开始解释字节码,但会监视运行中程序的活动,记录下使用最频繁的代码段。程序运行的时候,只编译那...
2011-11-01 14:43:44
129
原创 GridBagLayout的一篇好文章
[url]http://www.cnblogs.com/willmove/archive/2007/08/14/855033.html[/url]GridBagLayout是所有AWT布局管理器当中最复杂的,同时他的功能也是最强大的.这种现象源于它所提供的众多的可配置选项,你几乎可以完全地 控制容器的布局方式.尽管复杂性很明显,只要理解了基本思想,就很容易使用GridBagLayout了....
2011-10-28 16:36:28
142
原创 Java继承与上溯 深入理解
Java继承与上溯:Child继承Parent,子类的变量和静态方法分别隐藏父类的变量和静态方法,子类的实例方法覆盖父类的实例方法。隐藏只是把父类的东东藏起来,但是其还是实质存在的;而覆盖就是把父类的东东完全抹掉以替换成子类的,是不可恢复的。在child被强制转换成Parent类型后,被隐藏的东西又被恢复了,而被覆盖的方法却是一去不复返了(子类的方法在这个实例里面永久替代了原先父类的方法)。这...
2011-10-12 16:21:55
253
原创 java并发学习 读书笔记二
Executor框架介绍1、Executor框架提供了一个灵活的线程池实现,防止应用程序过载而耗尽内存。它是基于生产者-消费者模式的,提交任务的线程是生产者,执行任务的线程是消费者。2、线程池 newFixedThreadPool创建一个定长的线程池,每当提交一个任务就创建一个线程,直到达到池的最大长度,这是线程池会保持长度不再变化(如果一个线程由于非预期的Exception...
2011-09-13 10:26:48
112
原创 近期面试学习
面试题目Java方面记载:1、ClassLoader的实现原理以及几种类型详细介绍贴:http://www.iteye.com/topic/25053类型见图片[img]http://dl.iteye.com/upload/attachment/271705/d6762d35-72bf-390d-8a2e-1a3d45463aef.gif[/img]2、数据库事务的四大特性...
2011-06-15 21:49:15
100
原创 spring学习5.10
spring给开发人员带来的好处:• Make a Java method execute in a database transaction without having to deal with transaction APIs.• Make a local Java method a remote procedure without having to deal with remot...
2011-05-10 11:23:03
88
原创 spring依赖注入的实现原理
Spring 从核心而言,是一个DI 容器,其设计哲学是提供一种无侵入式的高扩展性框架。即无需代码中涉及Spring专有类,即可将其纳入Spring容器进行管理。作为对比,EJB则是一种高度侵入性的框架规范,它制定了众多的接口和编码规范,要求实现者必须遵从。侵入性的后果就是,一旦系统基于侵入性框架设计开发,那么之后任何脱离这个框架的企图都将付出极大的代价。为了避免这种情况,实现...
2011-05-09 21:58:45
340
原创 java并发学习 读书笔记一
Java并发编程实践电子工业出版社读书笔记:1、volatile变量理解 写入volatile变量时就像退出同步块,读取volatile变量时就像进入同步块。volatile变量使用也存在好多限制,它通常被当作完成、中断、状态的标记使用。volatile变量只保证可见性,但不保证原子性。所以自增操作就不能依赖volatile,除非只有一个线程对它进行写操作。 不能用...
2011-03-28 09:28:06
145
原创 JS语言特性
1、js是一门动态的,弱类型,基于原型的脚本语言,在js中“一切皆对象”动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作弱类型是指它的数据类型无需在声明时指定,解释器会根据上下文对变量进行实例化2、对于js而言,分为基本类型和引用类型,引用类型中包括对象,数组以及函数。通过typeof 来判断引用类型时,...
2011-03-10 22:35:25
248
原创 2011.03.07 Java泛型通配符
1、通配符提供了使用的灵活性,但对修改却做出了限制像平常一样,要得到使用通配符的灵活性有些代价。这个代价是,现在像shapes中写入是非法的。比如下面的代码是不允许的: public void addRectangle(List c); boolean addAll(Collection...
2011-03-07 20:36:35
79
原创 2011.03.07 Java泛型通配符
先看看Collection库中的几个方法。public interface Collection { boolean containsAll(Collection c); boolean addAll(Collection
2011-03-07 20:26:35
93
原创 每日学习:2011.3.4 Java泛型
1、在泛型代码内部,无法获取任何有关泛型参数类型的信息,Java泛型是使用擦除来实现的,这意味着当你在使用泛型时,任何具体的类型信息都被擦除了。 所以需要为泛型指定边界(extends)=》泛型类型参数将擦除到它的第一个边界,当具有多重边界时,扩展基类只能有一个,而且必须放在第一位,接口可以有多个,用&来连接。2、擦除的核心动机是它使得泛化的客户端可以用非泛化的类库来使用(迁移兼容性...
2011-03-04 12:08:23
76
原创 每日学习:2011.3.3 闭包 动态代理 Map的key
1、闭包:是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。个人理解:闭包思想主要是函数可以作为一级参数,是一种函数是对象的思想。函数可以作为参数或者返回值使用。[code="java"] function a(){ var i=0; function b(){ var j=i; //只要是引用了 i 的。 ...
2011-03-03 15:05:32
96
原创 java容器
1、Collection与Collections的区别:例如Collection.addAll()与Collection.addAll()的区别2、Arrays.asList()返回一个受指定数组支持的固定大小的列表,其底层是数组,所以不能调整尺寸(不支持add、delete操作)3、基本的容器类:List Set Queue Map,其中List、Set、Queue继承于Collecti...
2011-03-02 09:48:05
92
原创 java协变
在java中支持协变的有两种情况:1、数组 A是B的超类,则A【】也是B【】的超类,所有用到A【】的地方都可以用B【】替换2、允许 子类的覆盖父类函数的返回值类型 是父类被覆盖返回值类型 的子类在Java1.4及以前,子类方法如果要覆盖超类的某个方法,必须具有完全相同的方法签名,包括返回值也必须完全一样。 Java5.0放宽了这一限制,只要子类方法与超类方法具有相同的方法签名,...
2011-02-28 11:55:55
324
原创 Hibernate教程学习地址
http://docs.huihoo.com/hibernate/reference-v3_zh-cn/preface.html1.对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案;对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate是最有用的。2、所有的双向关联需要有一端被...
2011-02-23 21:23:06
90
原创 Hibernate映射问题
Hibernate一对多映射:一对多单向映射的情况下,会很容易出现约束违例的情况。出现的原因是 Hibernate在处理保存主表的情况下,会产生两条insert操作,一条对应主表,一条对应子表。但第一条insert的时候,因为Hibernate并不知道主表对应Id,所以会给主表一个nullId,从而导致约束违例。所以一般都采用双向映射,控制权交给子表。H...
2011-02-21 15:18:40
77
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人