Java
文章平均质量分 71
rujielaisusan
这个作者很懒,什么都没留下…
展开
-
Java反射学习
Java反射学习 所谓反射,可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代码。严格地说,反射并非编程语言的特性,因为在任何一种语言都可以实现反射机制,但是如果编程语言本身支持反射,那么反射的实现就会方便很多。 1,获得类型类转载 2009-05-09 14:38:00 · 715 阅读 · 0 评论 -
JAVA的GC机制(1) --GC的基本概述
一。谁在做Garbage Collection? 一种流行的说法:在C++里,是系统在做垃圾回收;而在Java里,是Java自身在做。 在C++里,释放内存是手动处理的,要用delete运算符来释放分配的内存。这是流行的说法。确切地说,是应用认为不需要某实体时,就需用delete告诉系统,可以回收这块空间了。这个要求,对编码者来说,是件很麻烦、很难做到的事。随便上哪个原创 2009-09-19 21:49:00 · 1621 阅读 · 0 评论 -
JAVA的GC机制(4) ——内存泄漏
所有与main()进程不再有任何引用关系的对象都被JVM视作垃圾,并会被适时回收;而 如果在需要废弃一个对象的时候,引用关系解除得不彻底,就会发生非预期的内存占用,即泄露。有没有什么工具能帮忙查出某个对象是否确实不再被引用、仅仅只是在等待GC来吃?或者有什么办法实时地显示出JVM内部所有对象之间的引用关系?举例: 有一个全局范围的容器Collection c。在局部原创 2009-09-19 21:54:00 · 623 阅读 · 0 评论 -
Java 类加载器(二)
下面比较深入的介绍java类加载原理和过程,虽然很多情况你都不需要了解类加载的过程,但是如果你希望了解Java是如何工作的,或者希望定义自己的类加载器,就一定要了解类加载的过程,当然,无论你是否要参与类加载过程,了解这个过程对你都会有很大的帮助。 本文使用的JDK是sun的jdk_1.6版本,当然这里重在阐述原理,和JDK本身没有多大的关系。原创 2009-10-02 16:54:00 · 612 阅读 · 0 评论 -
Java 类加载器(三)
Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 . class 文件按照需求和一定的规则加载进内存,并组织成为一个完整的 Java 应用程序。 Java 语言把每个单独的类 Class 和接口 Impl原创 2009-10-02 17:05:00 · 1392 阅读 · 1 评论 -
多态(Polymorphism)的实现机制(下)--Java篇 (zz)
既然多态是面向对象的三大本质特征之一(其它两个是数据抽象和继承),那么C++为什么不将方法调用的默认方式设置为动态绑定,而要通过关键字virtual进行标记呢?Bruce Eckel在《Thinking inC++》中提到,这是由于历史原因造成的,C++是从C发展而来的,而C程序员最为关心的是性能问题,由于动态绑定比静态绑定多几条指令,性能有所下降,如果将动态绑定设定为默认转载 2009-10-06 16:34:00 · 379 阅读 · 0 评论 -
Java 类加载器 (一)
Normal 0 7.8 pt 0 2 false false false EN-US ZH-CN X-NONE原创 2009-10-02 16:42:00 · 578 阅读 · 0 评论 -
使用接口还是使用抽象类
很多人有过这样的疑问:为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种。 首先来了解一下接口和抽象类的一些具体的区别: 抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具转载 2009-10-02 21:37:00 · 1040 阅读 · 0 评论 -
Java泛型扫盲(zz)
在Java SE1.5中,增加了一个新的特性:泛型(日本语中的总称型)。何谓泛型呢?通俗的说,就是泛泛的指定对象所操作的类型,而不像常规方式一样使用某种固定的类型去指定。泛型的本质就是将所操作的数据类型参数化,也就是说,该数据类型被指定为一个参数。这种参数类型可以使用在类、接口以及方法定义中。 一、为什么使用泛型呢?转载 2009-10-06 16:37:00 · 347 阅读 · 0 评论 -
java关键字native,volatile,transient(zz)
1.volatile:为了获得最佳速度,java允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比,volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值,volatile关键字就是提转载 2009-10-10 20:02:00 · 378 阅读 · 0 评论 -
对象的序列化和反序列化(ZZ)
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。把Java对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为Java对象的过程称为对象的反序列化。对象的序列化主要有两种用途:1) 把对象的转载 2009-10-10 20:06:00 · 323 阅读 · 0 评论 -
Daemon thread(zz)
1.所谓守护线程就是运行在程序后台的线程,程序的主线程Main(比方java程序一开始启动时创建的那个线程)不会是守护线程 2.Daemon thread在Java里面的定义是,如果虚拟机中只有Daemon thread 在运行,则虚拟机退出。 虚拟机中可能会同时有很多个线程在运行,只有当所有的非守护线程都结束的时候,虚拟机的进程才会结束,不管在运行的线程是不是main()线程。转载 2009-10-10 18:59:00 · 452 阅读 · 0 评论 -
ResourceBundle和Properties类的区别
一般来说,ResourceBundle类通常是用于针对不同的语言来使用的属性文件。而如果你的应用程序中的属性文件只是一些配置,并不是针对多国语言的目的。那么使用Properties类就可以了。通常可以把这些属性文件放在某个jar文件中。然后,通过调用class的getResourceAsStream方法,来获得该属性文件的流对象,再用Properties类的load方法来装载。示例原创 2009-09-19 21:46:00 · 1517 阅读 · 0 评论 -
关于容器涉及到的一些基本JAVA问题(0)
最近在深入学习java中的容器问题,简单的问题就不给予探讨了,这里讲一些平时容易混淆的问题。加之csdn我的博客才开博不到一个月,不能一天发表两篇文章faint,同时还不具有edit功能,更faint。所以在此总结如下:===========================================================================第一个是关于比原创 2009-09-19 21:27:00 · 331 阅读 · 0 评论 -
Eclipse3.3 安装插件
选择Help→Software Updates→Find and Install,打开Eclipse的插件安装向导。选择Search for new features to install并单击Next。单击New Remote Site按钮,并在弹出窗口的Name文本框中输入Eclipse3.3 安装JS插件JSEclipse from Adobe Labs http原创 2009-07-22 17:55:00 · 309 阅读 · 0 评论 -
Java中的"=="和equals
以前学习java中一直没真正搞懂"=="与"equals"的区别,总以为"=="是判断内存地址是否相同;"equals"是判断值是否相同。其实不然。 在java语言中,判断两个对象引用变量是否相等,有两种比较方式(1)比较两个变量所引用的对象的内存地址是否相等,"=="就是比较内存地址,另外,Object类中定义的equals(Object o)方法,也是按内存地址来比较。(原创 2009-05-20 22:34:00 · 352 阅读 · 0 评论 -
Comparator或Comparable 的比较
说到了元素相等性的比较,必然也要说到元素大小的比较:Comparator或Comparable 的比较 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。一、Comparator强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.s转载 2009-05-21 11:54:00 · 420 阅读 · 0 评论 -
Java实现文件拷贝的4种方法
使用 java 进行文件拷贝 相信很多人都会用,,不过效率上是否最好呢?最近看了看NIO决定试一试 java NIO 到底有什么性能的提升. 第一种方法:古老的方式public static long forJava(File f1,File f2) throws Exception{ long time=new Date().getTime(); int l转载 2009-08-27 11:26:00 · 326 阅读 · 0 评论 -
Java正则表达式的解释说明
表达式意义:1.字符x 字符 x。例如a表示字符a// 反斜线字符。在书写时要写为////。(注意:因为java在第一次解析时,把////解析成正则表达式//,在第二次解析时再解析为/,所以凡是不是1.1列举到的转义字符,包括1.1的//,而又带有/的都要写两次)/0n 带有八进制值 0的字符 n (0 /0nn 带有八进制值 0的字符转载 2009-08-27 11:23:00 · 218 阅读 · 0 评论 -
DOM4J
DOM4J官方网站:http://www.dom4j.org/DOM4J下载(SourceForge)http://www.dom4j.org/download.htmlhttp://sourceforge.net/projects/dom4j推荐一个APACHE的开源项目Digester,对象化解析XML原创 2009-08-27 15:43:00 · 455 阅读 · 0 评论 -
JVM Class Loader
Java本身是一种设计的非常简单,非常精巧的语言,所以Java背后的原理也很简单,归结起来就是两点: 1、JVM的内存管理 理解了这一点,所有和对象相关的问题统统都能解决 2、JVM Class Loader 理解了这一点,所有和Java相关的配置问题,包括各种App Server的配置,应用的发布问题统统都能解决 App Class Loader |-----转载 2009-09-10 16:25:00 · 287 阅读 · 0 评论 -
Java的GC机制总结(0) ---finalize()方法
其实了解JAVA的人,都知道JAVA的GC机制是其的一大优点,它令程序员不需要主动去考虑内存溢出和垃圾回收的问题,不像c++具有显式的析构函数对整个对象进行内存清理以及需要调用delete才可以进行显示的销毁对象。 当然也有存在特殊的情况:假定你的对象(并非使用new方法)获得了一块“特殊”的内存区域,由于垃圾回收器只知道那些显示地经由new分配的内存空间,所以它不知道该如何释放这原创 2009-09-19 21:48:00 · 936 阅读 · 0 评论 -
JAVA的GC机制(2) -- 对象存储
╬左岸の暧昧 发表于 2009-5-23 15:59:00其实要了解对象的释放,需要了解一下对象的存储,即对象是怎么样进行放置安排的呢?特别是内存中究竟是如何进行分配的呢?有五个不同的地方可以用来存储数据:寄存器。这是最快的存储区,因为它位于不同于其它地方的存储区位置——CPU内部。但是寄存器的数量是有限的,所以寄存器会根据需要进行分配。你原创 2009-09-19 21:49:00 · 632 阅读 · 0 评论 -
学习如何有效地使用SoftRef/WeakRef/PhantomRef
Java 2 引用类使用指南学习如何有效地使用 SoftReference、WeakReference 和 PhantomReference Java 2 平台引入了 java.lang.ref 包,其中包括的类可以让您引用对象,而不将它们留在内存中。这些类还提供了与垃圾收集器(garbage collector)之间有限的交互。Peter Haggar 在本文中分析了 SoftR原创 2009-09-19 21:43:00 · 486 阅读 · 0 评论 -
学习servlet api (RequestDispatcher)(ZZ)
通常,在一个设计良好的Web应用中,都会综合使用Servlet和JSP技术。Servlet控制业务流转,JSP则负责业务处理结果的显示。此时,将大量用到重定向技术。重定向技术可以分为两类,一类是客户端重定向,一类是服务器端重定向。客户端重定向可以通过设置特定的HTTP头,或者写javascript脚本实现。本文主要探讨服务器端重定向技术的实现。服务器端的重定向相关类转载 2009-10-10 20:19:00 · 486 阅读 · 0 评论