URI(Uniform Resoure Identifier:统一资源标识符),URL(Uniform Resoure Location:统一资源定位器),URN(Uniform Resource Name统一资源
名),URC(Uniform Resource Citation统一资源引用符)
URI、URL和URN是识别、定位和命名互联网上的资源的标准途径; URL,URN是URI的子集.
URI不能定位或读取/写入资源。这是统一的资源定位器(URL)的任务。URL是一种URI,但是它的大纲组件是已知的网络协议(简称协议
),并且它把URI组件与某种协议处理程序( ...
早在Java 1.2推出之时,Java平台中就引入了一个新的支持:java.lang.ThreadLocal,给我们在编写多线程程序时提供了一种新的选择。使用这个工具类可以很简洁地编写出优美的多线程程序,虽然ThreadLocal非常有用,但是似乎现在了解它、使用它的朋友还不多。
ThreadLocal是什么
ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的 ...
2.4版本的servlet规范在部属描述符中新增加了一个<dispatcher>元素,这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一个<filter-mapping>元素中加入任意数目的<dispatcher>,使得filter将会作用于直接从客户端过来的request,通过forward过来的request,通过include过来的request和通过<error-page>过来的request。如果没有指定任何< dispatcher >元素,默认值是REQUEST。可以通过 ...
UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。在Java中生成UUID主要有以下几种方式: 1. ...
第一章 一般技术1.java只有唯一一种参数传递方式:by value(值传递)。对于primitive types(基本型别)很容易理解,对于object references(对象引用),传递的是object reference的拷贝。2.polymorphism(多态)优于instanceof:instanceof很容易被误用,很多场合都应该以多态代替,无论何时看到instanceof,请判断是否可以改进以消除它。3.避免创建重复对象。比如一个类A的某个方法新建了一个类B,且此类B不会改变,则每次建立该类A的一个对象就会新建B的对象,此时应把B设为private static fina ...
在已发布的Java1.4中在核心代码库中增加了许多新的API(如Loging,正则表达式,NIO)等,在最新发布的JDK1.5和即将发布的JDK1.6中也新增了许多API,其中比较有重大意义的就是Generics(范型)。一.什么是Generics?Generics可以称之为参数类型(parameterized types),由编译器来验证从客户端将一种类型传送给某一对象的机制。如Java.util.ArrayList,编译器可以用Generics来保证类型安全。在我们深入了解Generics之前,我们先来看一看当前的java 集合框架(Collection)。在j2SE1.4中所有集合的R ...
Java虚拟机的深入研究
作者:刘学超
1 Java技术与Java虚拟机
说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:
图1 Java四个方面的关系
运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,一旦字节码进入虚拟机,它就 ...
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。
理解抽象类
...
版權申明,獲得授權轉載必須保留以下申明和鏈接:作者的blog:(http://blog.matrix.org.cn/page/Kaizen)在论坛上面常常看到初学者对线程的无可奈何,所以总结出了下面一篇文章,希望对一些正在学习使用java线程的初学者有所帮助。首先要理解线程首先需要了解一些基本的东西,我们现在所使用的大多数操作系统都属于多任务,分时操作系统。正是由于这种操作系统的出现才有了多线程这个概念。我们使用的windows,linux就属于此列。什么是分时操作系统呢,通俗一点与就是可以同一时间执行多个程序的操作系统,在自己的电脑上面,你是不是一边听歌,一边聊天还一边看网页呢?但实际上,并 ...
从基础的开始 最小的单元是位(bit),接着是字节(Byte),一个字节=8位,英语表示是1 byte=8 bits 。机器语言的单位Byte。接着是KB,1 KB=1024 Byte; 接着是MB,1 MB=1024 KB; 接着是GB,1 GB=1024 MB ;接着是TB, 1TB=1024 GB。 接着是进制:二进制0和1,8进制0-7, 十进制不用说,10进制0-9后面是A,B,C,D,E,F 他们关系如下:Binary Octal Decimal Hex0 0 0 01 1 1 110 ...
一、正则表达式基础知识:(此文讲的是符合perl的正则表达式匹配方法,与jdk1.4上的不一样,但讲的很清晰,可作为基础知识讲解看)
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。
许多语言,包括Perl、PHP、Python、Ja ...
当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记者会,向世人自白他犯了「全世界所有男人都会犯的错误」。从来没犯过这种错误的我,也因此常常认为自己不是个男人。
虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员都会犯的错误」。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是:太依赖编译器,却不知道编译器做了哪些事。
一般来说,越高阶的程序语言,会提供越多语法上的便利,以方便程序撰写,这就俗称为syntactic sugar,我称其为「语法上的甜头」。虽说是甜头,但是如果你未能了解该语法的实质内涵,很可能会未尝甜头,却吃 ...
问题研究
--字符集编码
1. 概述
本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等。
在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 6587",UTF编码就是"e4b8ad e69687"。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来"表示"。
2. 编码基本知识
最早的编码是iso8859-1,和ascii编码相似。但为了方便表示各种各样的语言,逐渐出现了很多标准编码,重要的有如下几个。
2.1. iso8859-1
...
这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:
问题一:
使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?
我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF ...
链接都已失效,可以在网上搜索。高效解析XML
详细解析XML与J2EE组合
初学者入门 JAVA 的 XML 编程实例解析
Java中四种XML解析技术之不完全测试
XML认证教程,第 7 部分
详细解析XML与J2EE组合技术的精髓
...
Calendar与Date、long的转换: Calendar ca = Calendar.getInstance(); Date d = ca.getTime(); long l = ca.getTimeInMillis(); ca.setTime(d); ca.setTimeInMillis(l);Date和long间的转换: Date d = new Date(); long l = d.getTime(); d.setTime(l); d = new Date(l);------------------------学习日期, 日期格式, 日期的解析和日期的计算 Jav ...
第一篇、http://www.blueidea.com/bbs/newsdetail.asp?id=996916(里面有很多例子)第二篇、彻底明白Java的IO系统(文摘)---JAVA之精髓IO流一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型:1.1 以字节为导向的stream以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息。以字节为导向的stream包括下面几种类型:1) input st ...
初始化(initialization)其实包含两部分:1.类的初始化(initialization class & interface)2.对象的创建(creation of new class instances)。因为类的初始化其实是类加载(loading of classes)的最后一步,所以很多书中把它归结为“对象的创建”的第一步。其实只是看问题的角度不同而已。为了更清楚的理解,这里还是分开来。
顺序:应为类的加载肯定是第一步的,所以类的初始化在前。大体的初始化顺序是:类初始化 -> 子类构造函数 -> 父类构造函数 -> 实例化成员变量 -> 继续 ...
Java FAQ 目录:Q1.1 什么是Java、Java2、JDK?JDK后面的1.3、1.4版本号又是怎么回事?Q1.2 什么是JRE/J2RE?Q1.3 学习Java用什么工具比较好?Q1.4 学习Java有哪些好的参考书?Q1.5 Java和C++哪个更好?Q1.6 什么是J2SE/J2EE/J2ME?Q2.1 我写了第一个Java程序,应该如何编译/运行?Q2.2 我照你说的做了,但是出现什么“'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。”。Q2.3 环境变量怎么设置?Q2.4 我在javac xxx.java的时候显示什么“unreporte ...
serialVersionUID 用来表明类的不同版本间的兼容性.如果你修改了此类, 要修改此值. 否则以前用老版本的类序列化的类恢复时会出错. 可以利用JDK的bin目录下的serialver.exe工具产生这个serialVersionUID 对于Test.class,执行命令: serialver Test 为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private static final long serialVersionUID这个属性,具体数值自己定义。这样,即使某个类在与之对应的对象已经序列化出去后做了修改,该对象依然可以被正确反序列化。否则,如 ...
(1) 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母,单词之间用“_”连接。eg:private static final int MAX_LENGTH = 1000;Java包(Package)全都是小写字母,即便中间的单词亦是如此。
(2) 为了常规用途而创建一个类时,请采取“经典形式”,并包含对下述元素的定义: (规范要求,如果两个对象进行equals比较时如果返回true,那么它们的hashcode要求返回相等的值。但hashcode一样时两个对象不==)equals()hashCode()toString()clone()(m ...
一.原理、概念1.面相对象语言的三个核心本质:数据抽象化(data abstraction)、继承(inheritance)、多态(polymorphism也叫动态绑定dynamic binding)。覆写(overriding)和重载(overloading),覆写引发多态。重载(overloading):指一个类中具有相同方法名,不同的参数(包括个数、类型、位置)。(从父类继承的方法当然也算子类的方法,不包括父类的private方法)覆写(overriding):指父类和子类具有相同方法名、相同参数(包括个数、类型、位置)。(即把从父类继承的有效方法给屏蔽了,当然不包括父类的private ...
按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求.栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的.和静态存储分配相反,在栈式存储方案中,程序对数据区的需求在编译时是完全未知的,只有到运行的时候才能够知道,但是规定在运行中进入一个程序模块时,必须知道该程序模块所需的数据区大小 ...
数字类型转换成字符串型: String s = String.valueOf(value);
数字对象转换成字符串型Long l = new Long(10);String s = l.toString();
数字类型/字符串转换成数字对象: byte b = 169; String b = "169";Byte bo = new Byte( b );
short t = 169; String b = "169";Short to = new Short( t );
int i = 169; String b = "169";Integer io = new Inte ...
第一章 一般技术1.java只有唯一一种参数传递方式:by value(值传递)。对于primitive types(基本型别)很容易理解,对于object references(对象引用),传递的是object reference的拷贝。2.polymorphism(多态)优于instanceof:instanceof很容易被误用,很多场合都应该以多态代替,无论何时看到instanceof,请判断是否可以改进以消除它。3.避免创建重复对象。比如一个类A的某个方法新建了一个类B,且此类B不会改变,则每次建立该类A的一个对象就会新建B的对象,此时应把B设为private static final ...
- 浏览: 68471 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最新评论
-
Java中文问题及最优解决方 ...
<script type="text/javascript"> alert ...
-- by youngsailer -
(hibernate)inverse,casca ...
很好啊,谢谢!
-- by elesen -
tomcat and resin服务器如 ...
resin 设置会有问题吧
-- by beauty9235 -
jsp中的四种范围(page|r ...
请教一下 如何在自定义标签里pageContext.setAttribute,然 ...
-- by blu3leaf -
提高JSP应用程序运行速度 ...
恩,对jsp的性能有帮助。
-- by leonardleonard






评论排行榜