Core Java
文章平均质量分 92
SailingLee
这个作者很懒,什么都没留下…
展开
-
JAVA内存泄露
[转自:http://www.tech-q.cn/thread-1032-1-1.html]内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。JAVA中的内存溢出的导致原因很多,最主要的可能有以下几种:A. 由于JVM堆内存设置过小,可以通过-Xms -Xmm设置。B. JVM堆内存是足够的,但只是没有连续的内存空间导致,比如申请连...原创 2009-10-14 19:28:59 · 85 阅读 · 0 评论 -
Java 自动类型转换
在程序中已经定义好了数据类型的变量,若是想用另一种数据类型表示时,Java会在下列的条件皆成立时,自动做数据类型的转换: 1、转换前的数据类型与转换后的类型兼容。2、转换后的数据类型的表示范围比转换前的类型大。 举例来说,若是想将short类型的变量a转换为int类型,由于short与int皆为整数类型,符合上述条件1;而int的表示范围比short大,亦符合条件2。因此...原创 2012-07-29 21:41:26 · 317 阅读 · 0 评论 -
Java 数据类型
看图说话:如果想在程序中使用一个变量,就必须先声明,此时编译程序会在未使用的内存空间中寻找一块足够能保存这个变量的空间以供这个变量使用。整数数据类型可以分为long、int、short及byte四种:long为64位,也就是8个字节(bytes),可表示范围为-9223372036854775808 到 9223372036854775807;int为32 位,也就是4个字...原创 2012-07-27 15:31:51 · 116 阅读 · 0 评论 -
对象流(序列化)
摘于《JAVA2核心技术第1卷》p618 - p620。具体见代码: package test.serializable;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutpu...2009-08-27 09:41:52 · 96 阅读 · 0 评论 -
理解ThreadLocal
概述 我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。 我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享。 虽然模板类通过资源池获取数据连接或会话,...原创 2010-07-23 17:29:34 · 135 阅读 · 0 评论 -
java反射机制与动态代理(三)
本文讲述代理模式...代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式一般涉及到的角色有: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任...原创 2009-08-19 09:25:48 · 99 阅读 · 0 评论 -
java反射机制与动态代理(二)
欲生成对象实体,在Reflection 动态机制中有两种作法,一个针对“无自变量ctor”,一个针对“带参数ctor”。如果欲调用的是“带参数ctor“就比较麻烦些,不再调用Class的newInstance(),而是调用Constructor 的newInstance()。首先准备一个Class[]做为ctor的参数类型,然后以此为自变量调用getConstructor(),获得一个专属ctor...原创 2009-08-19 09:17:32 · 132 阅读 · 0 评论 -
java反射机制与动态代理(一)
前言,在Java运行时刻,能否知道一个类的属性方法并调用改动之?对于任意一个对象,能否知道他的所属类,并调用他的方法?答案是肯定的。这种动态的获取信息及动态调用方法的机制在Java中称为“反射”(reflection)。 Java反射机制主要提供以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意...原创 2009-08-19 09:10:37 · 93 阅读 · 0 评论 -
String,StringBuffer ,StringBuilder类型区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String...2010-04-21 09:42:52 · 96 阅读 · 0 评论 -
Java线程:线程的同步
一、同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。public class Foo { private int x = 100; public int getX() { return x; ...原创 2009-07-28 17:35:48 · 140 阅读 · 0 评论 -
java中Class.getResource用法
用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要取得 c:/test.txt文件,就会这样用File file = new File("c:/test.txt");这样用有什么问题,相信大家都知道,就是路径硬编码,对于JAVA精神来说,应用应该一次成型,到处可用,并且从现实应用来讲,最终生成的应用也会部署到W...原创 2009-07-26 00:23:08 · 261 阅读 · 0 评论 -
Class.forName
Class.forName(xxx.xx.xx) 返回的是一个类首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。 至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。 A a = (A)Class.forName("pacage...原创 2009-07-22 12:24:34 · 87 阅读 · 0 评论 -
Java 强制类型转换
当两个整数相除时,小数点以后的数字会被截断,使得运算的结果保持为整数。但由于这并不是预期的计算结果,而想要得到运算的结果为浮点数,就必须将两个整数中的其中一个(或是两个)强制转换类型为浮点数,下面的三种写法都正确: (1) (float)a/b // 将整数a强制转换成浮点数,再与整数b相除(2) a/(float)b // 将整数b强制转换成浮点数,再以整数a除之(3) (...原创 2012-07-29 22:22:49 · 181 阅读 · 0 评论