JAVA
文章平均质量分 67
午后小憩
这个作者很懒,什么都没留下…
展开
-
欲为Java技术大牛所需的25个学习要点
1. 你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是class、object、interaction以及statediagrams。2. 你需要学习Java语言的基础知识以及它的核心类库(collections、serialization、streams、networking、multithreading、reflecti转载 2009-08-30 14:45:00 · 1277 阅读 · 6 评论 -
Hibernate ORM 实现机制
现在在 Java 领域大家对 Hibernate 的讨论很多,比如它的优缺点、如何应用、错误如何解决以及把它和 Struts/Spring 等框架相结合作为整个系统的解决方案。在这里我想和大家探讨一些更深层次的话题,那就是 Hibernate 是如何实现 ORM 的功能?如果让我们自己开发一款实现 ORM 功能的框架需要怎么做?其实这些问题就是围绕着一个词,那就是“映射”,如果我们知道如何实现这种转载 2008-12-10 14:28:00 · 1340 阅读 · 0 评论 -
关于J2EE Tranaction的几个基本概念
Transaction不管在J2EE还是.NET领域中都是相当重要的一个组成部分。尽管很多与Transaction相关的概念在两个不同的平台中都是相通的,但是它们在Transaction的实现方面却有着很多的不同。想对.NET下的Transaction有更深入了解的朋友,可以参考idior兄写的Transaction in ADO.net 2.0。在以下的篇幅里面,我就J2EE中与Transact转载 2008-12-10 14:17:00 · 442 阅读 · 0 评论 -
什么是 Java Web Start 软件以及如何启动它
Java Web Start 软件Java Web Start 软件使您可以从 Web 下载和运行 Java 应用程序。Java Web Start 软件: 提供一种单击一次即可激活应用程序的便捷方法 保证您始终运行最新版本的应用程序 避免了复杂的安装或升级过程 获得 Java Web Start 软件Java Web Start 软件是 Java Runtime Environm转载 2008-12-10 10:21:00 · 2764 阅读 · 0 评论 -
JAVA垃圾回收机制的意义及其算法分析
Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收 来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但是由于内存的有限性,JV转载 2008-12-08 10:20:00 · 819 阅读 · 0 评论 -
java垃圾收集算法
1.垃圾收集算法的核心思想 Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。 垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被引用,则转载 2008-12-08 10:08:00 · 471 阅读 · 0 评论 -
通过实例学习Java对象的构造过程
对象的创建过程和初始化 实际上,前面提到的“变量初始化发生在调用任何方法包括构造方法之前”这句话是不确切的,当我们把眼光集中在单个类上时,该说法成立;然而,当把视野扩大到具有继承关系的两个或多个类上时,该说法不成立。 对象的创建一般有两种方式,一种是用new操作符,另一种是在一个Class对象上调用newInstance方法;其创建和初始化的实际过程是一样的: 首先为对象分配内存空间,包转载 2008-12-02 13:17:00 · 468 阅读 · 0 评论 -
Java程序类加载完全揭密
类加载是java语言提供的最强大的机制之一。尽管类加载并不是讨论的热点话题,但所有的编程人员都应该了解其工作机制,明白如何做才能让其满足我们的需要。这能有效节省我们的编码时间,从不断调试ClassNotFoundException, ClassCastException的工作中解脱出来。 这篇文章从基础讲起,比如代码与数据的不同之处是什么,他们是如何构成一个实例或对象的。然后深入探讨ja转载 2008-11-28 15:52:00 · 406 阅读 · 0 评论 -
持久化层的Java对象可处于哪些状态?这些状态有哪些特征?
当应用程序通过new语句创建了一个对象,这个对象的生命周期就开始了,当不再有任何引用变量引用它,这个对象就结束生命周期,它占用的内存就可以被JVM的垃圾回收器回收。对于需要被持久化的Java对象,在它的生命周期中,可处于以下三个状态之一: (1) 临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于Session的缓存中。处于临时状态的Java对象被称为临时对象。 (2)转载 2009-02-04 11:28:00 · 1017 阅读 · 0 评论 -
ThreadLocal 在多线程中的使用
EasyDBO的数据库连接部分,为了给每个连接提供上下文,程序用到了一个关键的类——ThreadLocal。什么是ThreadLocal?顾名思义它是local variable(线程局部变量)。它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。使用转载 2009-02-04 09:45:00 · 1299 阅读 · 0 评论 -
什么是类变量(Class Variable),对象变量(Object Variable)
类变量就是指类里用static修饰的变量(static不能修饰方法变量). 对象变量是指一般的实例变量,也就是不用static修饰的变量。 以上说的变量都不是指方法变量。 访问类变量不需要初始化一个对象去访问,直接用“类名.变量名”的方式就可以访问,当然也可以用“实例对像.变量名”的方式访问,但类其实还是按类名.变量名的方式去转换访问。 访问对象变量就用“实例变量.变量名”的方式去访问。原创 2008-11-28 11:19:00 · 1562 阅读 · 0 评论 -
System.out 重定向到文件
PrintStream myout = new PrintStream(new FileOutputStream(new File("D:/log.log"))); System.setOut(myout); System.setErr(myout);原创 2008-11-28 10:29:00 · 477 阅读 · 0 评论 -
利用Java Web Start(JWS)发布你用java程式
前言: 关于 JWS JWS 是作为 JSR-56 的一部分而创建的,目的是提供一种方法来分发在客户端上的 JVM 中运行的 Java 应用程式。JWS 包括以下特征: 部署 运行 JWS 应用程式包括选择 HTML 链接,和打开新的页面没有什么差别,惟一的不同之处在于 Web 服务器页面是 .jnlp 文件,该文件启动 JWS 插件来在客户端上本地下载和执行应用程式。 缓存 一旦应用程式下载完毕转载 2008-12-10 10:16:00 · 4211 阅读 · 0 评论 -
Java Native Method (本地方法)
The goal for this chapter is to introduce you to Javas native methods. If you are new to Java, you may not know what native methods are, and even if you are an experienced Java developer, you may not转载 2008-12-11 16:06:00 · 3464 阅读 · 0 评论 -
Hibernate缓存机制介绍
缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和转载 2008-12-10 13:22:00 · 404 阅读 · 0 评论 -
二进制文件和文本文件到底有什么区别
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为: ASC码: 00110101 00110110 00110111 00111000 ↓ ↓ ↓ ↓ 十进制码: 5 6 7 8 共占用4个字转载 2009-08-29 12:07:00 · 2950 阅读 · 1 评论 -
hibernate二级缓存攻略
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。 hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效转载 2009-06-15 23:56:00 · 1208 阅读 · 0 评论 -
如何使用Log4j?
1、 Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 用的)和分析,要下载和了解更详细的内容,还是访问其官方网站吧: http://jakarta.apache.org/log4j 。2、Log4j的概念 Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名转载 2008-12-12 16:43:00 · 378 阅读 · 0 评论 -
了解解析 XML 的各种方法
了解各种 XML 解析 API 的优缺点,为项目选择最适当的 API即便对高级 XML 问题具有丰富经验的开发人员也不一定就完全了解 XML 最基本的一些问题。为了为您打下坚实的基础,本文讨论了最基本的 XML 服务:解析。本文介绍了各种解析方法,着重说明了各自的优缺点。了解基础从 XML 的出现至今大约有 9 年的时间了。对于可扩展标记语言来说这是一段不短的历程。现在很难找到完全不用转载 2008-12-12 10:42:00 · 635 阅读 · 0 评论 -
关于Lazy Load
HIBERNATE的持久化对象加载策略。 延迟加载, 也就是用到的时候才去加载.这样可以提高一些性能. Hibernate的lazy loading 采用了一个HibernateSession来管理session,它的逻辑是每进行一次数据库操作,就开新的session,操作完成后立即关闭该session。这样做的好处是可以严格关闭session,避免菜鸟级的错误,但是hibernate.o转载 2008-12-15 16:25:00 · 1359 阅读 · 0 评论 -
New Features and Enhancements in J2SE 5.0(jdk 1.5)
New Features and EnhancementsJ2SE 5.0Contents Java 2 Platform Standard Edition 5.0 is a major feature release. The features listed below are introduced in 5.0 since the previous原创 2008-12-11 14:16:00 · 920 阅读 · 0 评论 -
Hibernate的两种事务管理jdbc 和jta方式
hibernate的两种事务管理jdbc 和jta方式。下边说说两者的区别一、说明一下jdbc和jta方式事务管理的区别:JDBC事务由Connnection管理,也就是说,事务管理实际上是在JDBC Connection中实现。事务周期限于Connection的生命周期之内JTA 事务管理则由 JTA 容器实现,JTA 容器对当前加入事务的众多Connection 进行调度,实现其事务性要求。J转载 2008-12-10 14:22:00 · 570 阅读 · 0 评论 -
JAVA集合类总结
在使用Java的时候,我们都会遇到使用集合(Collection)的时候,但是Java API提供了多种集合的实现,我在使用和面试的时候频频遇到这样的“抉择” 。 :)(主要还是面试的时候) 久而久之,也就有了一点点的心得体会,写出来以供大家讨论 。 总的说来,Java API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下: Collection转载 2008-12-08 17:07:00 · 753 阅读 · 0 评论 -
Java基础-关键字
Java关键字(keywords) abstract default if private this boolean do implements protected throw break double import public throws byte转载 2008-12-11 15:54:00 · 580 阅读 · 0 评论 -
深入浅出Java clone技术
Clone基本知识储备这是clone技术介绍的第一篇。本篇主要介绍对象clone技术的基本知识。 在Java里提到clone技术,就不能不提java.lang.Cloneable接口和含有clone方法的Object类。所有具有clone功能的类都有一个特性,那就是它直接或间接地实现了Cloneable接口。否则,我们在尝试调用clone()方法时,将会触发CloneNotSupportedE转载 2008-12-11 14:27:00 · 496 阅读 · 0 评论 -
关于Hibernate缓存机制的使用
1. 关于hibernate缓存的问题:1.1.1. 基本的缓存原理Hibernate缓存分为二级,第一级存放于session中称为一级缓存,默认带有且不能卸载。 第二级是由sessionFactory控制的进程级缓存。是全局共享的缓存,凡是会调用二级缓存的查询方法 都会从中受益。只有经正确的配置后二级缓存才会发挥作用。同时在进行条件查询时必须使用相应的方法转载 2008-12-10 13:34:00 · 688 阅读 · 0 评论 -
Java英文面试题(核心知识篇)
Question: What is transient variable?Answer: Transient variable cant be serialize. For example if a variable is declared as transient in a Serializable class and the class is written to an ObjectStre原创 2008-11-28 10:26:00 · 974 阅读 · 0 评论 -
30道JAVA英文面试题
* Q1. How could Java classes direct program messages to the system console, but error messages, say to a file?. The class System has a variable out that represents the standard output, and the variabl原创 2008-11-28 10:24:00 · 2502 阅读 · 0 评论 -
字节流与字符流的区别
字节流与字符流主要的区别是他们的的处理方式字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和St转载 2009-01-12 11:34:00 · 644 阅读 · 1 评论 -
I/O流
java I/O整体框架:Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的: 其中FilterInputStream ,FilterOutputStream,Filter转载 2009-01-12 11:24:00 · 944 阅读 · 0 评论 -
Classloader 基础
什么是ClassLoaderClassLoader是一个抽象类,我们用它的实例对象来装载类,它负责将 Java 字节码装载到 JVM 中, 并使其成为 JVM 一部分。 JVM 的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块,而不影响系统其他功能模块的正常运行。一般是通过类名读入一个class文件来装载这个类,(其它加载形式暂时没有研究过)。ClassLoader装载过转载 2009-01-13 10:20:00 · 834 阅读 · 0 评论 -
ThreadLocal 的使用
EasyDBO的数据库连接部分,为了给每个连接提供上下文,程序用到了一个关键的类——ThreadLocal。什么是ThreadLocal?顾名思义它是local variable(线程局部变量)。它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。使用转载 2009-01-13 10:06:00 · 629 阅读 · 0 评论 -
EJB 3.0简介
SUN中国软件技术中心 王强 wynne.wang@sun.com1 简化开发的目标1.1我们的目标EJB3.0是当前很多人谈论的话题,企业软件开发的一个关键是,提供一个尽量简单的的应用框架:它可以使开发人员不用关注于复杂的问题,比如事务处理、安全和持久化等。可以集中精力关注于商业逻辑,而不用关心那些低层的技术细节,从而提高开发者的效率,得到高质量的软件。这也是制定EJB 3.0规范的转载 2009-01-12 15:37:00 · 591 阅读 · 0 评论 -
关于struts中Action是否线程安全问题?
昨日去面试,问及struts方面的内容:aciton是否thread safe?俺毫不犹豫的回答:yes,真是令人汗颜啊,简历上写着精通struts精通java这样的问题竟然都回答错误?然后问:你是否在action里定义实例变量,俺回答:俺的action只充当转发功能 不定义实例变量,俺的回答是正确的,他港:俺知道其一不知道其二,可想而知 面试结果fail了action到底是threa转载 2009-01-09 17:20:00 · 3973 阅读 · 5 评论 -
详解spring事务属性
spring事务详解解惑 spring 嵌套事务 关于在事务中声明异常,spring事务仍然不回滚 new Draggable("related_topics"); Spring声明式事务让我转载 2009-01-09 16:01:00 · 559 阅读 · 0 评论 -
Java如何遍历Map的所有的元素
Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); }转载 2009-01-09 19:55:00 · 862 阅读 · 0 评论 -
Hibernate原理及其配置
在本文中,我向大家重点介绍Hibernate的核心API调用库,并讲解一下它的基本配置。 也许你听说过Hibernate 的大名,但可能一直不了解它,也许你一直渴望使用它进行开发,那 么本文正是你所需要的!在本文中,我向大家重点介绍Hibernate 的核心API 调用库,并讲解一下 它的基本配置。 看完本文后,我相信你对什么是ORM(对像/关系映射)以及它的优点会有一个深刻的认识, 我们先通过一转载 2009-01-09 19:38:00 · 760 阅读 · 0 评论 -
Spring事务原理
Spring事务原理 统观spring事务,围绕着两个核心PlatformTransactionManager和TransactionStatus spring提供了几个关于事务处理的类: TransactionDefinition //事务属性定义TranscationStatus //代表了当前的事务,可以提交,回滚。PlatformTransactionManager这转载 2009-01-09 17:30:00 · 935 阅读 · 0 评论 -
JAVA的可变类与不可变类
jdk的可变类和不可变类primitive变量: boolean,byte, char, double ,float, integer, long, shortjdk的不可变类:jdk的java.lang包中 Boolean, Byte, Character, Double, Float, Integer, Long, Short, String. StringBuffer转载 2009-01-09 16:20:00 · 1115 阅读 · 0 评论 -
native2ascii----jdk自带编码转换工具
在做Java 开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行 Unicode重新编码。原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码。需要将系统的编码转换为java正确识别的编码问题就解决了。1、native2ascii简介:native2ascii 是su原创 2009-01-12 13:45:00 · 947 阅读 · 0 评论