自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 Map接口说明

Map接口并没有继承Collection,声明如下:public interface Map接口种定义14个方法:1.int size()2.boolean isEmpty() 3.boolean containsKey(Object key)4.boolean containsValue(Object value);5.Object get(Object key)6.Object put(O

2004-09-20 12:33:00 3715

原创 ASP和JSP的一点区别

       ASP好像不存在线程安全问题,而JSP是存在线程安全问题。这不是说ASP好,恰恰相反说明ASP不如JSP好。       对于ASP:每次请求都要解释执行服务器端代码,执行完除了Session和Application在,其他的都没了,这样的话ASP就无法实现静态变量,不知道是不是真的没有办法实现,请高手指点。        而在JSP中,Servlet(JSP也会变成Servlet)

2004-09-18 21:00:00 2008 2

原创 Collection框架设计的失误:Stack!

Stack是Java中Collection设计的重大失误,这个类绝对是垃圾,设计Stack这个类的人当时一定是脑子发热了。众所周知,Stack实现的数据结构中的栈的功能,也就是后进先出,看看Stack的声明吧:public class Stack extends VectorVector就已经不是什么好东西了,这里还继承它?这里列出Stack中的方法,不考虑它的实现,因为如果你要用这个东西,那

2004-09-18 20:41:00 1320

原创 看似多余的接口Set

假如你看到这样的代码,你会怎么想?interface A{  void method();  ...}interface B extends A{  //内空   } 你是不是觉得很垃圾?在Java有很多接口都是空的,比如Cloneable,Serializable,RandomAccess等等,它们被称为标记接口。不过上面的例子更离谱,既然B和A一样,干吗要继承呢,不是多此一举吗?其实不

2004-09-18 20:35:00 1404

原创 使用ArrayList而不是Vector

可能很多人都不知道ArrayList,但是肯定知道Vector,因为Vector比ArrayList早,所以用的比较多。但是在java1.2之后的Collection框架中,Vector已经被淘汰了,因为要保持兼容型,这个类会一直存在,但是确被建议不要使用,这就是软件的兼容性,现在想到很多人做的东西只能在IE6.0上运行,真是气愤。对于不熟悉Vector的人那最好了,直接用ArrayList就好了

2004-09-18 14:12:00 2675 1

原创 源码分析:LinkedList和Java中的指针操作

LinkedList类似C语言的双向链表,但是java中没有指针如何实现呢,看完LinkedList 你将对java中的引用类型有更深入的理解。LindedList的声明如下: public class LinkedList extends AbstractSequentialList implements List, Cloneable, java.io.Serializable有关Abst

2004-09-18 13:35:00 7073 4

原创 AbstractSequentialList说明

AbstractSequentialList也是一个抽象类,它的声明如下:public abstract class AbstractSequentialList extends AbstractList有关AbstractList:http://blog.csdn.net/treeroot/archive/2004/09/14/104743.aspx这个类的代码比较简单public Ob

2004-09-18 11:20:00 2908

原创 ArrayList源码分析

  终于可以开始分析第一个具体的类,我们对ArrayList应该非常面熟了,不管你是否了解它是如何实现的,但是我们到处都使用到它。   声明如下: public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable有关AbstractList:h

2004-09-16 20:26:00 6318 1

原创 AbstractList源码分析

AbstractList给List提供了一个骨架实现,它的声明是这样的:public abstract class AbstractList extends AbstractCollection implements List继承AbstractCollection,实现List接口。 有关AbstractCollection:http://blog.csdn.net/treeroot/archi

2004-09-14 22:55:00 5115

原创 List接口分析

List接口是继承自Collection接口的,有关Collection接口:http://blog.csdn.net/treeroot/archive/2004/09/09/99591.aspxList是一种有序的Collection,可以通过索引访问集合中的数据,看看List中有哪些方法1.int size()从Collection中继承2 boolean isEmpty()从Co

2004-09-14 20:41:00 3026

原创 ListIterator接口分析

ListIterator是List迭代器,该接口继承Iterator,有关Iterator接口请看:http://blog.csdn.net/treeroot/archive/2004/09/11/101589.aspx这里列出所有的方法(包括在Iterator中的方法,Java源码中也常常这么做,虽然不是必须呢,但是看起来确实比较方便).public interface ListIter

2004-09-14 20:01:00 2198

原创 RandomAccess接口说明

RandomAccess是一个标记接口,实现该接口表示支持快速访问。一般要求:for (int i=0, n=list.size(); ilist.get(i);要比for (Iterator i=list.iterator(); i.hasNext(); )i.next();访问速度快。该接口只是一个标记接口,也无法强制用户做什么,只是一个希望而已。

2004-09-14 18:58:00 3046

转载 Synchronization and the Java Memory Model

This set of excerpts from section 2.2 includes the main discussions on how the Java Memory Model impacts concurrent programming. For information about ongoing work on the memory model, see Bill

2004-09-13 22:06:00 1865

转载 The "Double-Checked Locking is Broken" Declaration

Signed by: David Bacon (IBM Research) Joshua Bloch (Javasoft), Jeff Bogda, Cliff Click (Hotspot JVM project), Paul Haahr, Doug Lea, Tom May, Jan-Willem Maessen, John D. Mitchell (jGuru) Kelvin Nilsen,

2004-09-13 22:04:00 1720

原创 浅谈Java中的存储空间类型

在Thinking in java里,列举了Java的六种存储类型1.寄存器编写过汇编程序的应该对寄存器非常熟悉,那时候用的ax,bx,cx,dx等等。寄存器在CPU里面,所以速度特别快,但是数量非常有限。在java中无法直接和寄存器打交道,不过在c中是可以声明寄存器变量的。2.栈空间写过汇编的肯定感到非常亲切,在汇编程序里不就是压栈和出栈吗?有一个指针控制栈空间,分配空间是栈指针上移,就是p

2004-09-12 21:18:00 1851

原创 AbstractCollection源码分析

AbstractCollection抽象类提供了Collection的骨架实现,Collection分析请看:http://blog.csdn.net/treeroot/admin/Referrers.aspx?EntryID=99591这里直接看它的代码是如何实现的.public abstract Iterator iterator();该方法没有实现.public abstract int s

2004-09-11 21:31:00 3271 2

原创 Iterator接口分析

Iterator是一个集合的迭代器,通过Iterator访问接口就就不用关心集合的实现.Iterator接口中定义了三个方法:1.hasNext()是否还有下一个元素.2.next()返回下一个元素.3.remove()删除当前元素.只定义了简单的三个方法,这里要注意几点:1)Iterator和Enumeration的区别Iterator是用来替代Enumeration的,Enumeratio

2004-09-11 20:31:00 5293 2

原创 Comparable接口分析

现看一下该接口的定义:public interface Comparable{   public int compareTo(Object o);}该接口定义类的自然顺序,实现该接口的类就可以按这种方式排序.一般要求:e1.equals((Object)e2)和e1.compareTo((Object)e2)==0具有相同的值,这样的话我们就称自然顺序就和equals一致.这个接口有什么用呢?如果

2004-09-09 19:46:00 23874 2

原创 Runnable接口分析

Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口.Runnable接口非常简单,就定义了一个方法run(),继承Runnable并实现这个方法就可以实现多线程了,但是这个run()方法不能自己调用,必须由系统来调用,否则就和别的方法没有什么区别了.先给一个简单的例子:public class MultiThread implements Runnable{ publi

2004-09-09 19:42:00 3940 1

原创 Collection接口分析

java中定义了很多集合类(也叫聚集或者容器),Collection是所有集合类的父接口.Collection接口定义了15方法,没有任何常量定义,这里简要说明这些方法1.size()获得集合中元素的个数,如果个数大于Integer.MAX_VALUE,返回Integer.MAX_VALUE.2.isEmpty()如果不含任何元素,返回true3.contains(Object o)如果包含指定元

2004-09-09 19:22:00 3381

原创 Java中类型转换的特例

先看一下下面的语句那些是非法的。byte b1=2;byte b2=1+1;byte b3=b1+1;byte b4=b1++;int i1=Integer.MAX_VALUE+1; //Integer.MAX_VALUE=2147483647int i2=2147483648;把byte改为char和short几乎是一样的。因为整数字面常量是int型的,也就是1和2都是int型的在赋值语句中直接

2004-09-08 20:15:00 1506

原创 Object类分析

Object是所有类的父类,任何类都默认继承Object.这里看看Object类到底提供了哪些内容.1.clone方法保护方法,实现对象的浅拷贝,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException,参考Cloneable接口分析:http://blog.csdn.net/treeroot/archive/2004/09/07/96936.

2004-09-07 22:17:00 1635

原创 Cloneable接口分析

Cloneable接口是一个标记接口,也就是没有任何内容,定义如下:package java.lang;pubilc interface Cloneable{}这里分析一下这个接口的用法java种clone的含义(或者说是目标)假设x是一个非空对象,应该有:x.clone()!=x 为true,就是说他们不是同一个对象.x.clone().getClass()==x.getClass() 为tru

2004-09-07 14:03:00 28747 7

原创 int转换到String方法的选择

我们经常遇到需要将你int转换到String的问题,下面给出四种转换方法,到底那一种方法最好呢.1. ""+i2.new Integer(i).toString();3.String.valueOf(i);4.Integer.toString(i);好像第1种方法比较多见,第2种比较少见吧.可读性的话:第1种最差,第3和4中很好,第二种次之.性能比较:第1种最差,测试循环执行一段转换时所用时间大概

2004-09-07 13:22:00 2279

原创 Java中float的取值范围

规格化表示       java中的浮点数采用的事IEEE Standard 754 Floating Point Numbers标准,该标准的规范可以参考http://blog.csdn.net/treeroot/articles/94752.aspx.      float占用4个字节,和int是一样,也就是32bit.      第1个bit表示符号,0表示正数,1表示负数,这个很好理解,不

2004-09-05 14:04:00 45034 3

翻译 理解Java类加载原理(翻译)

第一部分. 提示我需要读这篇文章吗?Java类加载器对Java系统的运行是至关重要的,但是却常常被我们忽略。Java类加载器负载在运行时查找和加载类。自定义类加载器可以完全改变类的加载方式,以自己喜欢的方式来个性化你的Java虚拟机。本文简要的介绍Java类加载器,然后通过一个构造自定义类加载器的例子来说明,这个类加载器在加载类前会自动编译代码。你将学到类加载器到底是干什么的,如何创建你自己的类加

2004-09-04 22:27:00 6276 1

转载 IEEE Standard 754 Floating Point Numbers

IEEE Standard 754 floating point is the most common representation today for real numbers on computers, including Intel-based PCs, Macintoshes, and most Unix platforms. This article gives a brief ove

2004-09-04 22:11:00 6719

原创 Servlet和JSP的线程安全问题

编写Servlet和JSP的时候,线程安全问题很容易被忽略,如果忽视了这个问题,你的程序就存在潜在的隐患.1.Servlet的生命周期Servlet的生命周期是由Web容器负责的,当客户端第一次请求Servlet时,容器负责初始化Servlet,也就是实例化这个Servlet类.以后这个实例就负责客户端的请求,一般不会再实例化其他Servlet类,也就是有多个线程在使用这个实例.Servlet

2004-09-03 19:11:00 9860

原创 String转换成Integer源码分析

我们经常为用到Integer.valueOf(String str)这个方法,如果字符串格式不对,这个方法会抛出一个系统异常NumberFormatException这里我们就要分析一下这个方法,其中Byte,Short也是调用了Ingeter中的方法.在Integer类中的定义如下:public static Integer valueOf(String s) throws NumberForm

2004-09-02 21:49:00 5610

原创 JSP中的page,request,session,application

application和session比较简单,这里主要说明request和page的作用范围。application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。request:请求作用域,

2004-09-01 21:18:00 2397

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除