
Java SE
文章平均质量分 77
astro_boy
这个作者很懒,什么都没留下…
展开
-
三步学会Java Socket编程
第一步 充分理解Socket 1.什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用...原创 2009-09-30 14:13:12 · 87 阅读 · 0 评论 -
JAVA中的反射机制详解
JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调...原创 2009-09-30 14:39:43 · 74 阅读 · 0 评论 -
java replaceall 用法
Java代码 public class TryDotRegEx { public static void main(String[] args) { // TODO Auto-generated method stub String str = "111.3.22.11"; str=str.replaceAll("(^|\\.)...原创 2009-10-06 00:26:20 · 123 阅读 · 0 评论 -
JNDI的简单理解
看了JNDI的实现,我感有点惊讶和一点迷惑,惊讶的是系统编程比应用编程就难度来说还真不好说,比如就象 实现JNDI,SUN已经定好了Interface,你要做的就是弄清楚整个功能的原理,然后去实现他,然而应用编程则没有 人为你定好Interface,你只能根据需求分析自己定好Interface,自己定好框架,但是这个框架能不能满足需求那就 不好说了,但是SUN定的规范可是肯定可以实现功能的,并且一...原创 2009-10-06 00:27:32 · 90 阅读 · 0 评论 -
java容器分析(图)
容器类可以大大提高编程效率和编程能力,在Java2中,所有的容器都由SUN公司的Joshua Bloch进行了重新设计,丰富了容器类库的功能。 Java2容器类类库的用途是“保存对象”,它分为两类: Collection----一组独立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set不能有重复元素。 Map----一组成对的“键值对”...原创 2009-10-12 16:17:15 · 217 阅读 · 0 评论 -
Java泛型编程快速入门
JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0。这说明Java已经有大幅度的变化。本文将讲解JDK5.0支持的新功能-----Java的泛型. 1、Java泛型 其实Java的泛型就是创建一个用类型作为参数的类。就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1、str2的值是可变的。而泛型也是一样...原创 2009-10-28 16:51:49 · 104 阅读 · 0 评论 -
Java 修饰词
Java语言定义了public、protected、private、abstract、static和final这6常用修饰词外还定义了5个不太常用的修饰词,下面是对这11个Java修饰词的介绍: 1.public 使用对象:类、接口、成员 介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的 2.private 使用对象:成员 介绍:成员只可以在定义它的类中被访问...原创 2009-11-06 14:14:48 · 118 阅读 · 0 评论 -
public,private,protected访问权限在Java,C++中的解析
Java中:Java中的访问权限有public,private,protected和默认的包访问权限,如果类中的属性方法没有显示的指明访问权限,则具有包访问权限,我喜欢称它为packeged权限,很多人也称它为friendly访问权限,而packaged和friendly这两个关键字在实际中都是不存在的。详细解释,我引别人的一篇博客,说明:java访问权限修饰符public prot...原创 2009-11-06 14:24:00 · 138 阅读 · 0 评论 -
JNDI的理解
看了JNDI的实现,我感有点惊讶和一点迷惑,惊讶的是系统编程比应用编程就难度来说还真不好说,比如就象 实现JNDI,SUN已经定好了Interface,你要做的就是弄清楚整个功能的原理,然后去实现他,然而应用编程则没有 人为你定好Interface,你只能根据需求分析自己定好Interface,自己定好框架,但是这个框架能不能满足需求那就 不好说了,但是SUN定的规范可是肯定可以实现功能的,并且一...原创 2009-11-17 09:53:22 · 80 阅读 · 0 评论 -
HashMap 、HashTable、HashSet的区别
HashTable 与 HashMap: 表面: HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。 HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。 ...原创 2009-11-28 12:42:26 · 66 阅读 · 0 评论 -
request.getAttribute()和request.getParameter()区别
HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下区别: (1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp...原创 2009-12-02 14:15:12 · 104 阅读 · 0 评论 -
java.lang.ClassCastException
ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。这种异常是如何产生的呢?举一个比较形象的例子。Animal表示动物,Dog表示狗,是动物的子类,Cat表示猫,是动物的子类。看下面的代码:Animal a1 = new Dog(); // ...原创 2009-12-04 16:25:23 · 492 阅读 · 0 评论 -
Java与C++函数参数传递比较
学好C++,为祖国四化做贡献。简言之:Java都是值传递(pass-by-value),而C++中包括值传递(pass-by-value)和引用传递(pass-by-reference)。先说Java,先做几点说明:在Java中,无非就是两种类型,即基本类型和从Object继承下来的对象类型,而对象类型又包括String这种一旦初始化就不可改变内容的类型和BufferString这种可...原创 2009-12-06 15:01:34 · 155 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap比较
HashMap,LinkedHashMap,TreeMap都属于MapMap 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。HashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null;允许多条记录的值为Null;HashMap不支持线...原创 2009-12-19 12:52:33 · 75 阅读 · 0 评论 -
关于Javascript、Html、Jsp的注释
在JavaScript中,采用的注释方法有两种:1.单行注释单行注释使用"//"进行标识。"//"符号后面的文字都不被程序解释执行。例如://这里是程序代码的注释2.多行注释多行注释使用"/*…*/"进行标识。"/*…*/"符号后面的文字不被程序解释执行。例如:/*这里是多行程序注释*/注意:多行注释"/*…*/"中可以嵌套单行注释"//.原创 2010-01-08 18:06:10 · 156 阅读 · 0 评论 -
getSession(boolean bool)
getSession都是返回当前用户的会话对象,参数的区别在于参数为true,则如果“当前用户的会话对象”为空(第一次访问时)则创建一个新的会话对象返回参数为false,则如果“当前用户的会话对象”为空,则返回null(即不自动创建会话对象)...原创 2010-01-08 18:41:57 · 445 阅读 · 0 评论 -
字符流与字节流的转换
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的 但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化 这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联 在实际开发中出现的...2010-04-07 17:00:44 · 139 阅读 · 0 评论 -
Iterator.remove()用法指南
Iterator.remove()是删除最近(最后)使用next()方法的元素。 从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。import java.util.*; public class test { public test() { } public static void main(String[] args) { test te...原创 2010-01-20 13:31:22 · 585 阅读 · 0 评论 -
java中list、set和map 的区别
List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet或者LinkedHashMap. Lis...2010-05-05 21:25:52 · 70 阅读 · 0 评论 -
C++/Java 实现多态的方法(C++)
多态(Polymorphism)是面向对象的核心概念,本文以C++为例,讨论多态的具体实现。C++中多态可以分为基于继承和虚函数的动态多态以及基于模板的静态多态,如果没有特别指明,本文中出现的多态都是指前者,也就是基于继承和虚函数的动态多态。至于什么是多态,在面向对象中如何使用多态,使用多态的好处等等问题,如果大家感兴趣的话,可以找本面向对象的书来看看。 为了方便说明,下面举一个简单...原创 2010-07-25 21:49:26 · 106 阅读 · 0 评论 -
C++/Java 实现多态的方法(Java)
既然多态是面向对象的三大本质特征之一(其它两个是数据抽象和继承),那么C++为什么不将方法调用的默认方式设置为动态绑定,而要通过关键字virtual进行标记呢?Bruce Eckel在《Thinking in C++》中提到,这是由于历史原因造成的,C++是从C发展而来的,而C程序员最为关心的是性能问题,由于动态绑定比静态绑定多几条指令,性能有所下降,如果将动态绑定设定为默认方法调用方式,那么很...原创 2010-07-25 21:50:32 · 118 阅读 · 0 评论 -
Java异常的分类
1. 异常机制 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常,但是如果...原创 2010-07-29 13:59:42 · 81 阅读 · 0 评论 -
Java 反射实现原理
反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力。通过这种能力可以彻底的了解自身的情况为下一步的动作做准备。下面具体介绍一下java的反射机制。这里你将颠覆原来对java的理解。 Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method;其中class代表的时类对 象,Constructor-类的构造器对象,Field-类的属性对象,M...原创 2010-07-29 16:39:35 · 107 阅读 · 0 评论 -
java中实现代理及委托代理模式
InvocationHandler 用于实现代理。 如果不用InvocationHandler接口实现代理的话,我们写代码是这样的: 定义一个接口:Java code interface Greet{ void sayHello(String name); void goodBye();} 实现这个接口: Java code class G...原创 2010-07-30 14:14:52 · 274 阅读 · 0 评论 -
Java与C和C++的比较
Pascal、C和 C++这些广为编程人员熟悉的编程语言,为编程人员在实际开发工作中提供了理想的功能,和这些语言的功能相比,Java似乎更胜一筹。Java的结构无关性、真正的面向对象和与Internet的协同工作等特性比上述任何一种语言更显得完善。Java的许多术语来自于C++,其语法也来自于C++。Java比C/C++易学、易用,且有强大的内建功能。当Java在编程领域得到广泛应用后,C++将...原创 2010-08-04 11:22:36 · 186 阅读 · 0 评论 -
Java C# 对比
现在最有前途的一般认为是java和c#如下面所述: C#诞生之日起,关于C#与Java之间的论战便此起彼伏,至今不辍。抛却Microsoft与Sun之间的恩怨与口角,客观地从技术上讲,C#与Java都是对传统面向对象程序设计在组件化软件时代的革新之果,可谓殊途同归。虽说两个语言有着"90%的重叠",但那另外"10%的较量"也往往能够左右一个天平的方向。本文将携90%之共,论10%之异,对两个语言做...原创 2010-08-04 11:24:41 · 121 阅读 · 0 评论 -
彻底搞定C指针:指向指针的指针
指向另一指针的指针 一. 回顾指针概念:早在本系列第二篇中我就对指针的实质进行了阐述。今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧!当我们程序如下申明变量:short int i;char a;short int * pi;程序会在内存某地址空间上为各变量开辟空间,如下图所示。内存地址→6 7 8 9 10...原创 2010-02-01 17:20:47 · 279 阅读 · 0 评论 -
指针的指针
指针可以指向基本类型,也可以指向复合类型,因此也可以指向另外一个指针变量,称为指向指针的指针。int i;int *pi = &i;int **ppi = π这样定义之后,表达式*ppi取pi的值,表达式**ppi取i的值。请读者自己画图理解i、pi、ppi这三个变量之间的关系。很自然地,也可以定义指向“指向指针的指针”的指针,但是很少用到:int *...原创 2010-02-01 18:00:27 · 108 阅读 · 0 评论 -
理解ThreadLocal
ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为T...原创 2010-02-06 14:55:28 · 74 阅读 · 0 评论 -
JAVA字符集
1. 概述本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等。在 下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 6587", UTF编码就是"e4b8ad e69687"。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来"表示"。2. 编码基本知识最早的编码是is...原创 2010-02-06 20:38:34 · 88 阅读 · 0 评论 -
xml 和 Java Annotation 的优缺点对比
配置文件的好处在于进一步降低耦合,使应用更易于扩展,即使对配置文件进行了修改也不需要对工程进行修改和重新编译。缺点也是显而易见,配置文件读取和解析需要花费一定的时间,配置文件过多时难以管理,IDE 无法对配置的正确性进行校验,给测试增加了难度。基于以上原因,Java 从1.5开始提供了 Annotation (注释,标注),它用来修饰应用程序的元素(类,方法,属性,参数,本地变量,包、元数据...原创 2010-12-12 10:32:16 · 95 阅读 · 0 评论 -
Java的深拷贝和浅拷贝 [基础知识]
熟悉C++的朋友对这个话题应该很熟悉,浅拷贝就是指两个对象共同拥有同一个值,一个对象改变了该值,也会影响到另一个对象。深拷贝就是两个对象的值相等,但是互相独立。本来想把以前写的一篇文章扩充一下,没想到居然牵扯出很多复杂的问题。本文测试环境是windows xp sp3中文版、NetBeans6.7.1,JDK1.6-update16。这里抛砖引玉,希望大家能提宝贵意见。 首先,Ja...原创 2010-12-14 14:51:23 · 84 阅读 · 0 评论 -
内部类详解
1、定义 一个类的定义放在另一个类的内部,这个类就叫做内部类。Java代码 public class First { public class Contents{ public void f(){ System.out.println("In Class First's inner Class Contents meth...原创 2010-08-18 11:52:58 · 102 阅读 · 0 评论 -
Java 内存和异常
java基础(内存、异常) 参考资料马士兵j2se教程1、内存(见附图) 2、异常1)异常类层次图Throwable ||————|Error Exception | |————————————...原创 2010-08-19 09:57:50 · 84 阅读 · 0 评论 -
Java异常
JAVA中用2种方法处理异常: 1.在发生异常的地方直接处理; 2.将异常抛给调用者,让调用者处理。 JAVA异常可分为3种: (1)检查性异常:java.lang.Exception (2)运行期异常:java.lang.RuntimeException (3)错误:java.lang.Error 顶层是java.lang.Throwable类,检查性异常,运...原创 2010-08-19 10:02:05 · 90 阅读 · 0 评论 -
Java出现死锁的情况
Java 死锁的实现条件 当竞争资源或进程间推进顺序不当时,可能会出现死锁。 关于死锁出现的条件,我们晦涩难懂的操作系统课本是这样总结的: 1,互斥条件 2,请求和保持条件 3,不剥夺条件 4,环路等待条件 看了这些东西,很多人会感到一头雾水。如果你不是计算机专业科班出身并且成绩不赖的话,也许会很难理解。虽然这些总结非常精辟,但我总觉得国内大部分教材精辟过头了。在Java中,我们并...原创 2010-08-19 10:33:55 · 154 阅读 · 0 评论 -
java 死锁及解决
Java线程死锁如何避免这一悲剧 Java线程死锁需要如何解决,这个问题一直在我们不断的使用中需要只有不断的关键。不幸的是,使用上锁会带来其他问题。让我们来看一些常见问题以及相应的解决方法: Java线程死锁 Java线程死锁是一个经典的多线程问题,因为不同的线程都在等待那些根本不可能被释放的锁,从而导致所有的工作都无法完成。假设有两个线程,分别代表两个饥饿的人,他们必须共享刀叉并轮...原创 2010-08-19 10:40:36 · 582 阅读 · 0 评论 -
Java规则引擎与其API(JSR-94)
本文对Java规则引擎与其API(JSR-94)及相关实现做了较详细的介绍,对其体系结构和API应用有较详尽的描述,并指出Java规则引擎,规则语言,JSR-94的相互关系,以及JSR-94的不足之处和展望<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we ver...原创 2010-06-03 09:31:03 · 172 阅读 · 0 评论 -
JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考。为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问题,特别是乱码问题,我觉得组成一个系列来描述和分析更好一些,包括三篇文章:第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础第二篇:JAVA字符编...原创 2010-09-08 09:00:26 · 95 阅读 · 0 评论 -
Java 读文件
一、多种方式读文件内容。1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOExcep...原创 2010-09-08 11:18:56 · 96 阅读 · 0 评论