j2se
文章平均质量分 66
dichyzhu
这个作者很懒,什么都没留下…
展开
-
类型识别与反射
运行时类型识别(Run-time Type Identification, RTTI)主要有两种方式,一种是我们在编译时和运行时已经知道了所有的类型,另外一种是功能强大的“反射”机制。要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的,这项工作是由“Class对象”完成的,它包含了与类有关的信息。类是程序的重要组成部分,每个类都有一个Class对象,每当编写并原创 2009-02-09 20:52:00 · 516 阅读 · 0 评论 -
Defining hashCode() and equals() effectively and correctly
Every Java object has a hashCode() and an equals() method. Many classes override the default implementations of these methods to provide a higher degree of semantic comparability between object instan转载 2009-05-07 13:24:00 · 809 阅读 · 0 评论 -
JDK环境变量的配置
JAVA_HOME指明JDK的安装路径,此路径是jdk根目录 Path使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:.;%JAVA_HOME%/lib;%转载 2009-05-09 10:54:00 · 277 阅读 · 0 评论 -
HelloWorld问题集精华
HelloWorld问题集精华 问HelloWorld问题的人实在是太多了,而且经常都以“问一个最简单的问题”开头。其 实回想一下,自己也是从这个阶段过来的,说一句“你好”,真的是一个最简单的问题 吗?...//think 好了,言归正传,let′s say "HelloWorld!" in java... 首先,我们要假设一下我转载 2009-05-09 11:31:00 · 291 阅读 · 0 评论 -
产生死锁的四个条件
1.互斥条件:线程使用的资源中至少有一个是不能共享的。 2.至少有一个进程持有一个资源,并且它等待获取一个当前被别的进程持有的资源。 3.资源不能被进程抢占。 4.必须有循环等待。翻译 2009-05-11 15:44:00 · 662 阅读 · 0 评论 -
java中值得注意的问题
Java作为一门优秀的面向对象的程序设计语言,正在被越来越多的人使用。本文试图列出作者在实际开发中碰到的一些Java语言的容易被人忽视的细节,希望能给正在学习Java语言的人有所帮助。 1,位移运算越界怎么处理 考察下面的代码输出结果是多少? int a=5; System.out.println(a 按照常理推测,把a左移33位应该将a的所有有效位都移出去了,那剩下的都是转载 2009-05-22 10:38:00 · 568 阅读 · 0 评论 -
如何引入自己创建的包
目录结构如下: classes(包) |原创 2009-05-30 20:29:00 · 799 阅读 · 0 评论 -
Statement和PreparedStatement之间的区别
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。3.statement每次执行sql语句,相关数据库都要执行sql语原创 2009-06-11 11:56:00 · 6290 阅读 · 0 评论 -
命令窗口找不到类
目录结构:webapps |mytest |WEB-INF |classes | foo(package) | |Person BeanTest问题如下:class 1:package foo;public class Person{ private String name; public原创 2009-06-15 12:00:00 · 850 阅读 · 0 评论 -
JDBC 数据源和连接池
1.什么是连接池连接池技术预先建立多个数据库连接对象,然后将连接对象保存到连接池中,当客户请求到来的时候,从池中取出一个连接对象为客户服务,当请求完成后,客户程序调用close()方法,将连接对象放回池中。在普通的数据库访问程序中,客户程序得到的连接对象是物理连接,调用连接对象的close()方法关闭连接,而采用连接池技术,客户程序得到的连接对象是连接池中物理连接的一个句柄,调用连接对原创 2009-06-25 10:33:00 · 629 阅读 · 0 评论 -
abstract class和interface
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很转载 2009-05-07 13:17:00 · 243 阅读 · 0 评论 -
java强制类型转换
强制类型转换可以发生在:1)基本类型的强制转换2)引用类型的强制转换,强制类型转换是发生在引用上,不是发生在实体上。从子类引用转换到父类引用,是不需要类型转换的;强制转换发生在父类引用到子类引用的情况下,但先决条件是实体的实际类型必须是强制类型转换后的类型的子类型。原创 2009-05-07 13:14:00 · 592 阅读 · 0 评论 -
Java Socket编程
事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了。Java SDK提供一些相对简单的Api来完成这些工作。Socket就是其中之一。对于Java而言,这些Api存在与java.net 这个包里面。因此只要导入这个包就可以准备网络编程了。 网络编程的基本模型就是客户机到服务器模型。简单的说就是两个进程之间转载 2009-02-09 20:31:00 · 525 阅读 · 0 评论 -
Java对象的强、软、弱和虚引用
在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。 但有时候情况并不这么简单,你可能会遇到类似鸡肋一样的物品,食之无味,弃之可惜。这转载 2009-02-09 20:33:00 · 261 阅读 · 0 评论 -
反射
一、什么是反射:反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗转载 2009-02-09 20:48:00 · 336 阅读 · 0 评论 -
java回调
回调概念:软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。转载 2009-04-15 21:00:00 · 370 阅读 · 0 评论 -
java泛型--擦除问题
java 泛型的残酷现实就是:在泛型代码内部,无法获得任何有关泛型参数类型的信息。在使用泛型时,任何具体的类型都被擦除,唯一知道的是你在使用一个对象。比如:List和List在运行事实上是相同的类型。他们都被擦除成他们的原生类型,即List。snippet 1:package com.cognizant.ch15;import java.lang.reflect.Array;i原创 2009-04-04 20:35:00 · 2761 阅读 · 2 评论 -
泛型创建类型数组
方法一:创建一个显式的工厂对象,获得编译检查。 package com.cognizant.ch15;interface FactoryI{ T create();}class Foo2{ private T x; public > Foo2(F factory){ x=factory.create(); }}class IntegerFactory implements Fa原创 2009-04-05 10:23:00 · 416 阅读 · 0 评论 -
多线程
模拟消费者与生产者:package com.cognizant.consumerandproducer;public class SyncStack { private String[] products = new String[10]; private int index; public synchronized void push(String product) { if (i原创 2009-04-06 12:45:00 · 400 阅读 · 1 评论 -
擦除的补偿
擦除丢失了在泛型代码中执行某些操作的能力,任何在运行时需要知道确切类型信息的操作都将无法进行,通过类型标签来对擦除进行补偿。package com.cognizant.ch15;class Building {}class House extends Building {}public class ClassTypeCapture { Class kind; public Cl原创 2009-04-05 10:16:00 · 652 阅读 · 0 评论 -
协变式覆盖与泛型重载
1.协变式覆盖在Java1.4及以前,子类方法如果要覆盖超类的某个方法,必须具有完全相同的方法签名,包括返回值也必须完全一样。Java5.0放宽了这一限制,只要子类方法与超类方法具有相同的方法签名,或者子类方法的返回值是超类方法的子类型,就可以覆盖。这样有什么好处呢?以Object类的clone方法为例:class Object { ... public Object clone() { ..转载 2009-04-06 14:40:00 · 1332 阅读 · 0 评论