Java
ZKaiji
Hello World!
then change the world
展开
-
java编程思想-第五章-初始化与清理
第五章-初始化与清理5.5java的垃圾回收工作1)停止-复制:先找到“活”的对象,从堆栈和静态存储区开会i,遍历所有的引用,发现被引用的对象后在堆中标记。之后暂停程序的运行,将所有被标记的堆中对象复制到另一个堆中,当对象被复制到新堆时,他们是一个接一个的,所以新堆紧凑排列,然后就继续分配新的空间了。 2)标记-清扫:从堆栈和静态存储区出发,遍历所有的引用,进而找出所有存活的对象,并将其标记。只有原创 2017-02-28 18:01:11 · 542 阅读 · 0 评论 -
Android基于Java反射机制的简单ORM-Dao层
无需配置,但需要按照一定的规则写POJO。规则:①基础类型只能使用short,int,long,float,double,String。②表名需与类名相同。③表的属性名需与类成员变量名相同。④每个类都需要有一个基础类型的id成员变量。⑤对象之间可以嵌套存取,但不要出现循环嵌套循环嵌套如下: public class Fruit { private Apple apple;原创 2017-06-11 17:57:44 · 433 阅读 · 0 评论 -
匿名内部类使用的外部变量为什么要是final
首先要了解什么是闭包。java内部类由于含有对外部类的引用,所以可以正常访问外部变量。但java对于闭包的处理仅限于普通的内部类,对于匿名内部类则不存在完善的处理方法。下面是一个java匿名内部类 jvm的处理方法为: 由此可见,匿名内部类只是复制了一份值,而不是传递了引用。这也是为什么编译器要求闭包的处理参数必须是final的原因。不仅是匿名内部类,在方法中的内部类,在方法块中的内部类,都要求原创 2017-04-15 20:22:53 · 427 阅读 · 0 评论 -
JVM-类加载
类的生命周期:加载,验证,准备,解析,初始化,使用,卸载。这些阶段通常都是互相交叉地混合式进行的,通常会在一个阶段执行的过程中调用或激活另外一个阶段。什么情况下需要开始类加载过称的第一个阶段:加载,并没有强制约束。 但对于初始化阶段,虚拟机规范则是严格规定了有四种情况必须立即对类进行“初始化”。(而加载,验证,准备自然需要在此之前开始)。 1)遇到new,getstatic,putstatic或原创 2017-03-08 21:01:49 · 320 阅读 · 0 评论 -
JVM-内存分配
JVM分为:方法区(Method Area):用于存储类结构信息的地方,包括常量池、静态变量、构造函数等。虽然JVM规范把方法区描述为堆的一个逻辑部分, 但它却有个别名non-heap(非堆),所以大家不要搞混淆了。方法区还包含一个运行时常量池。java堆(Heap):存储java实例或者对象的地方。这块是GC的主要区域(后面解释)。从存储的内容我们可以很容易知道,方法区和堆是被所有java线程共享原创 2017-03-05 11:36:37 · 364 阅读 · 0 评论 -
JVM-class文件结构解析
解析class文件的结构——魔数 + class文件次版本号 + class文件主版本号——常量池——访问标志——类索引,父类索引,接口索引——字段表集合——方法表集合——属性表集合class文件是一组以8位字节为基础单位的二进制流,紧密排列没有分隔符。 class文件数据结构,包括两种数据类型:无符号数 和 表。 无符号数:属于基本的数据类型,u1,u2,u4,u8分别代表1个字节,2个字节,原创 2017-03-06 21:41:20 · 482 阅读 · 0 评论 -
java-动态代理-从源码分析
现在有一个接口ForumServicepublic interface UserService { /** * 目标方法 */ public abstract void add(); } 有一个实现类public class UserServiceImpl implements UserService { /* (non-Javadoc) * @see dynamic.p原创 2017-04-08 22:27:52 · 592 阅读 · 0 评论 -
Java Foreach的局限性
局限性:比如我想给一个对象数组中的每一个都赋值:for(Pet pet : pets) { pet = new Pet();} foreach的实际过程为:for(int i = 0; i < pets.length; i++) { Pet pet = pets[i]; pet = new Pet();}所以可见foreach根本不会改变所赋予的值。 无论是基本变量的值原创 2017-03-01 16:58:14 · 822 阅读 · 0 评论 -
Spring+Hibernate+SpringMVC框架项目详解
通过Maven进行项目管理 maven使用基础:https://blog.csdn.net/kjdynasty/article/details/80030680 XML Schema使用基础:https://blog.csdn.net/kjdynasty/article/details/80030501原创 2018-04-21 14:43:09 · 523 阅读 · 0 评论