
javaSE
文章平均质量分 64
wjp553650958
这个作者很懒,什么都没留下…
展开
-
Java中如何正确使用字体编码
首先声明一下,此文章时从网上转载的。如下的某些方法是确实管用,但是从中发现了有一点不足,就是原文笔者没考虑使用不同Web Server时出现的情况,比如文章里我用红色字体画出来的部分代码在Tomcat跑的时候得用他说的方法,不过到了WebSphere的时候必须得用原先的 String name = request.getParameter("name"); 所以采取本文转载 2010-03-08 17:02:00 · 500 阅读 · 0 评论 -
理解了这个泛型?
现在让我们看一个更现实的例子。一个 java.util.TreeSet 代表一个有序的元素是E类型的树。创建一个TreeSet的一个方法是传递一个 Comparator 对象给构造函数。这个 Comparator将会用来按照需要对TreeSet进行排序。 TreeSet(Comparator c) Comparator 接口是核心: interface Comparator { int原创 2009-09-27 16:25:00 · 422 阅读 · 0 评论 -
java集合框架图及介绍
转自:http://hi.baidu.com/%C9%AE_%CC%C6/blog/item/9e2a8b0887008a8ad0581b3d.html 简化图:Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。Java 2集合框架图集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。抽象类:5个原创 2009-09-27 16:26:00 · 415 阅读 · 0 评论 -
JAVA_高级特性(hashCode,clone,比较器,Class反射,序列化)
//HashCode方法,JAVA中的对象都有自身的HashCode码class Person02{ private String name; private int age; public Person02(String name,int age){ this.name=name; this.age=age; } public String toString(){ return "原创 2009-09-27 15:03:00 · 1318 阅读 · 0 评论 -
JAVA的AES加密
import java.io.UnsupportedEncodingException;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import javax.crypto.BadPaddingException;import javax.crypto.Cipher;原创 2009-09-29 15:00:00 · 613 阅读 · 0 评论 -
java守护线程
守护线程(Daemon) Java有两种Thread:“守护线程Daemon”与“用户线程User”。我们之前看到的例子都是用户,守护线程是一种“在后台提供通用性支持”的线程,它并不属于程序本体。从字面上我们很容易将守护线程理解成是由虚拟机(virtual machine)在内部创建的,而用户线程则是自己所创建的。事实并不是这样,任何线程都可以是“守护线程Daemon”或“用户线程User”。他们转载 2009-09-29 13:43:00 · 528 阅读 · 0 评论 -
java中hashcode()和equals()的详解
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong 2008.10.23晚21.36)。 1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下: public boolean equals(Object obj) { return (thi原创 2009-09-23 16:47:00 · 418 阅读 · 0 评论 -
Java Reflection (JAVA反射)
Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。Ja原创 2009-09-23 15:07:00 · 400 阅读 · 0 评论 -
JAVA中的指针,引用及对象的clone
Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度clone,认识它们的区别、优点及缺点。看到这个标题,是不是有点困惑:Java语言明确说明取消了指针,因为指针往往原创 2009-09-22 13:49:00 · 413 阅读 · 0 评论 -
Java迭代器的使用
1.迭代器Iterator 迭代器是一个对象,它的工作是遍历并选择序列中的对象。客户端程序员不关心序列底层的结构。此外,迭代器通常被称为“轻量级”对象:创建它的代价小。因此,经常可以见到对迭代器有些奇怪的限制。Java 的Iterator 就是迭代器受限制的例子,它只能用来: 1)使用方法 iterator()要求容器返回一个 Iterator。第一次调用Iterator 的next(原创 2009-09-21 13:57:00 · 1223 阅读 · 1 评论 -
jdk5 concurrent 初学
由于上次发现了ReentrantLock,同步的另外一种实现,可提供更好的性能和吞吐率,这么一样好东西。 从包名来看又是java.util.concurrent ,看来这个concurrent 真的不简单啊。于是想学习学习 concurrent。concurrent的中文意思是并行,估计就是sun特别为了并发情况、多线程做的增强和修补。对哪些东西增强了呢? 先看看java.util.concurr原创 2009-09-18 15:46:00 · 560 阅读 · 0 评论 -
JDK5.0 Annotation学习笔记
背景知识: 从JDK5开始提供名为Annotation(注释)的功能,它被定义为JSR-175规范。注释是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value="unchecked")。注释可以附加在package, class, method, field等上面,相当于给它们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些转载 2009-10-09 17:00:00 · 467 阅读 · 0 评论 -
Java Annotation 高级应用
前言:前不久在matrix上先后发表了《java annotation 入门》、《java annotation 手册》两篇文章,比较全面的对java annotation的语法、原理、使用三方面进行了阐述。由于《入门》中的简单例程虽然简单明了的说明了annotation用法,但给大家的感觉可能是意犹未见,所以在此行文《java annotation高级应用》,具体实例化解释annotation和转载 2009-10-09 16:34:00 · 422 阅读 · 0 评论 -
Thread.Sleep和Timer性能比较
在一些需要隔时触发的场景中,如javascript中的setInterval函数,在.Net中,你用什么?是System.Timer.Timer?or while(true){ Thread.Sleep(1000);}今天比较一下Timer和Sleep.结果:Thread.sleep,问天下谁于争峰。空间:Type work set virtual转载 2009-10-14 16:52:00 · 1062 阅读 · 1 评论 -
如何从response里面取出向客户端输出的html流-代理模式实现
项目里需要在把servlet,jsp生成的html代码存储到数据库中。如何解决,比较直接的想法是客户端用xmlhttp,或者直接在客户端js代码里发出请求,然后把得到的html代码在作为提交数据发送给服务器端,由服务器端程序接受并存入数据库中。 但是此方法需要耗费两次网络传输,肯定性能不加,而且处理起来要几块程序同时协作才行。还是想办法从服务器端直接获取。因为从res转载 2010-03-05 22:43:00 · 2212 阅读 · 0 评论 -
java设计模式_代理模式_动态代理(带例子)
代理模式(Proxy)-利用反射机制实现的动态代理 Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Proxy(代理)模式是比较常用的一个模式. 在应用中,有些对象转载 2010-03-05 22:39:00 · 455 阅读 · 0 评论 -
Java中的字符编码与解码
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.转载 2010-03-08 17:04:00 · 569 阅读 · 0 评论 -
并发与不可变性
对于今天的应用程序来说,并发是一个重要的、也愈发受到关注的方面。随着交易量的增加、业务日趋复杂,对大量并发线程的需求也越来越急迫。另外,由依赖注入管理的对象在应用程序中的其角色也极为关键。 Singleton就是典型的这种需求。对于一个每分钟需要处理几百个请求的大型Web应用来说,如果Singleton设计得很糟糕,它会成为严重的瓶颈,以及系统的并发性能的短板,甚至在一些特定的条件下,会导致系原创 2009-12-12 22:43:00 · 440 阅读 · 0 评论 -
SimpleDateFormat类具体用法
//最近做项目用到SimpleDateFormat类比较多,所以自己好好整理了一下。 public static void main(String[] a){ SimpleDateFormat sdfTimea = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); String timea = sdfTimea.format(n原创 2010-02-08 11:36:00 · 488 阅读 · 0 评论 -
Java heap space 解决方法
因为程序要从数据读取近10W行记录处理,当读到9W的时候就出现 java.lang.OutOfMemoryError: Java heap space 这样的错误。在网上一查可能是JAVA的堆栈设置太小的原因。跟据网上的答案大致有这两种解决方法:1、设置环境变量 set JAVA_OPTS= -Xms32m -Xmx512m可以根据自己机器的内存进行更改,但本人测试这种方法并没有解决问题。可能是还转载 2010-02-04 09:31:00 · 880 阅读 · 0 评论 -
理解ThreadLocal
ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为转载 2009-11-01 16:49:00 · 465 阅读 · 0 评论 -
jdbc使用(c3p0)
一:c3p0的使用 3301000false属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试使用。Default: null-->Test保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->falseS原创 2009-10-31 17:23:00 · 932 阅读 · 0 评论 -
Java 5.0多线程编程
李涛,Sun中国工程研究院工程师概述1:三个新加的多线程包2:Callable 和 Future接口3:新的线程执行架构4:Lockers和Condition接口5: Synchronizer:同步装置6: BlockingQueue接口7:Atomics 原子级变量8:Concurrent Collections 共点聚集概述:Java自1995年面世以来转载 2009-10-21 10:09:00 · 569 阅读 · 0 评论 -
Java堆和栈的区别
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是原创 2009-10-19 09:47:00 · 363 阅读 · 0 评论 -
java并发编程-Executor框架
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执行,Exe原创 2009-09-18 13:19:00 · 1444 阅读 · 1 评论 -
java事件详解
目前在一些java应用程序的GUI测试工具,可以提供捕获用户操作的能力并在代码被修改之后能够自动回放用户的操作。文章将分析Java的事件处理模型及其原理,介绍了基于事件源识别的捕获/回放所需要了解的关键技术并给出了两种实现方式。1、 Java事件介绍1.1什么是事件首先我们来回答"什么是事件"这一基本问题。其实事件本身就是一个抽象的概念,他是表现另一对象状态变化的对象。在面向对象的程序设计中,原创 2009-09-13 11:04:00 · 940 阅读 · 0 评论 -
foreach的用法
foreach与数组J2SE 5.0新增了foreach的语法,又称强化的for循环(Enhanced for Loop),其应用的对象之一是在数组的依次存取上。foreach语法如下:for(type element : array) { System.out.println(element)...}直接以实例的方式来说明会更容易了解这个语法如何使用,在J2SE 5.0之前可以使用以原创 2009-08-30 15:45:00 · 445 阅读 · 0 评论 -
JAVA字符串处理函数列表一览
Java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。substring()它有两种形式,第一种是:String substring(int startIndex)第二种是:String原创 2009-08-30 15:43:00 · 355 阅读 · 0 评论 -
Enumeration
Java的Enumeration(枚举,注释②)便是具有这些限制的一个反复器的例子。除下面这些外,不可再用它做其他任何事情: (1) 用一个名为elements()的方法要求集合为我们提供一个Enumeration。我们首次调用它的nextElement()时,这个Enumeration会返回序列中的第一个元素。 (2) 用nextElement()获得下一个对象。 (3) 用hasMoreEl原创 2009-08-30 15:42:00 · 387 阅读 · 0 评论 -
笔试题
chain.doFilter()1.数据库的触发器2.枚举3.多表的更新 多表的删除4.绑定机制;5.forward 与 redirect的区别;6.struts 机制7.内部类的访问:8.栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴) 9.为什么java程序的运行不依赖与操作系统,类似的语言还有哪些12.f原创 2009-08-30 14:03:00 · 561 阅读 · 0 评论 -
一个日期转换的问题
想把一个字符串转换为日期类型,用了SimpleDateFormat进行转换,结果发现在转换19910414这个日期时,会报错。不知道是什么原因,哪位高手指点一下。运行环境:jdk1.5.0_13代码如下:import java.util.Date;import java.text.SimpleDateFormat;public class TestMain {public static void原创 2009-08-30 11:51:00 · 941 阅读 · 0 评论 -
线程
1、线程原理1)概念:线程是在一个时间段看到的CPU的多个执行流程;线程在语言层面上以对象的形式而存在2)与进程的区别:进程是数据独占的,而线程是数据共享的(所以需要处理数据并发);3)并发原理:宏观并行,微观串行。OS(操作系统)将一段时间分为多个时间片,每个时间片CPU只能运行一个任务。4)线程组成要素:处理机(独立的);代码(即可共享也可不共享);数据(即可共享也可不共享)。2、构建线程的原创 2009-08-30 15:53:00 · 300 阅读 · 0 评论 -
计算矩阵算法
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package testmutlchat;/** * * @author Administrator */public class ComputeMatrix { public stati原创 2009-08-30 15:51:00 · 408 阅读 · 0 评论 -
互斥锁-同步
在近期一个Java项目里,我们使用Struts2来做MVC框架,有几个action里使用了static变量来做数据缓存,只有数据库有更新时才读取数据,减少对数据库的访问次数。 首先需要理解的是, webwork和structs2都采用多线程处理action的,每用户请求将创建一个action对象;那么,这定义在action里的static变量将被多线程并发访问,这就需要同步控制。Jav原创 2009-08-30 15:50:00 · 387 阅读 · 0 评论 -
多态机制
多态机制就是动态绑定动态邦定 又叫后期绑定 也叫运行时绑定 简单的说 就是在编译的时候不知道具体调用的是哪个方法(是父类的还是子类的,因为继承有个方法重写的问题) 而静态绑定,就是前期绑定,也叫编译期绑定 编译的时候,已经确切知道调用的是哪个类的哪个方法 java默认的是后期绑定,不加特殊的修饰关键字,所有的方法子类都是可以重写的 java多态性最精辟解释对于java语音的多原创 2009-08-30 15:50:00 · 489 阅读 · 0 评论 -
抽象类 Number
抽象类 Number 是 BigDecimal、BigInteger、Byte、Double、Float、Integer、Long 和 Short 类的超类。 Number 的子类必须提供将表示的数值转换为 byte、double、float、int、long 和 short 的方法。原创 2009-08-30 15:48:00 · 396 阅读 · 0 评论 -
private特例
对象的序列化:可利用ObjectOutputStream中的writeObject()方法;对象的反序列化:可利用ObjectInputStream中的readObject()方法;注意:这两个方法声明为private时,在类外仍然是可以访问的,是java中仅有的两个特例原创 2009-08-30 15:45:00 · 356 阅读 · 0 评论 -
swtich
swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上? 【基础】答:switch(expr1)中,expr1 是一个整数表达式。因此传递给switch 和case语句的参数应该是int、short、char 或者byte。long,string 都不能作用于swtich。原创 2009-08-30 15:46:00 · 597 阅读 · 0 评论 -
类 Enum
Tiger 中的一个重要新特性是枚举构造,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。Tiger 专家、developerWorks 的多产作者 Brett McLaughlin 将解释枚举的定义,介绍如何在应用程序中运用枚举,以及它为什么能够让您抛弃所有旧的 public static final 代码。 您已经知道,Java 代码的两个基本的构造块是原创 2009-08-30 15:52:00 · 380 阅读 · 0 评论 -
Java事件处理机制-自定义事件
开始之前首先问个问题:您熟悉java.util.EventObject 和java.util.EventListener两个类以及他们已有的子类吗?如果你已经能够熟练使用jdk为我们提供的事件监听器,并且很熟悉MouseEvent, KeyEvent, WindowEvent等等这些jdk为我们准备好的事件,那么想必你对java的事件机制已经有所理解。但是也许你还是觉得虽然用起来没什么问题,但是原原创 2009-09-10 13:41:00 · 714 阅读 · 0 评论