![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 72
junJZ_2008
这个作者很懒,什么都没留下…
展开
-
Java正则表达式
Java正则表达式详解作者:jzj 文章来源:Internet 整理时间:2009-03-31引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如表达式“ab+” 描述的特征是“一个 'a' 和任意个 'b' ”,那么 'ab', 'abb', 'abbbb...原创 2014-03-14 10:16:57 · 239 阅读 · 0 评论 -
为什么Java不支持泛型类型的数组
Java中的泛型做了什么首先看一下Java中的泛型做了什么。看下面这段代码:public class GenTest<T> { T value; public T getValue() { return...原创 2009-12-14 23:18:31 · 78 阅读 · 0 评论 -
为什么java中只允许继承一个类?
为什么java中只允许继承一个类?一个类只能继承一个其他的类在Java语言中禁止多重继承:一个类可以具有多个直接父类。多重继承不合法的原因是容易引发意义不明确。例如,有一个类C,如果允许它同时继承A类与B类(class C extends A,B{}),假如A、B两个类都有同一种方法fun(),如果定义:C c = new C();那么c.fun()应该调用哪一个父类的fun()方...2009-12-14 23:25:56 · 575 阅读 · 0 评论 -
Java命令参数说明大全
序言:Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME\bin\java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入理解。一、 查看参数列表:虚拟机参数分为基本和扩展两类,在命令行中...原创 2009-12-20 13:04:30 · 76 阅读 · 0 评论 -
Java集合框架之小结
1、Java容器类库的简化图,下面是集合类库更加完备的图。包括抽象类和遗留构件(不包括Queue的实现): 2、ArrayList初始化时不可指定容量,如果以new ArrayList()方式创建时,初始容量为10个;如果以new ArrayList(Collection c)初始化时,容量为c.size()*1.1,即增加10%的容量;当向ArrayList中添加一个元素时,先进行容器的容量...2009-12-21 23:03:38 · 186 阅读 · 0 评论 -
Java集合框架之LinkedList及ListIterator实现源码分析
学过这么久的Java,还没有仔细的分析过集合框架的源码实现,刚好这几天看数据结构,所以一并分析分析,并记录于此,希望对大家有一点帮助。由于本人能力有限,错误肯定很多,也希望大家指正,我会改正的,其中的分析仅代表本人观点。最后也希望大家多多支持,等List分析后,有机会再打算分析分析Map与Set的实现。1、ArrayList中(实为AbstractList中)的ListIt...原创 2009-12-21 23:12:17 · 164 阅读 · 0 评论 -
十六进制转十进制
public class HexToDecimal { public static void main(String[] args) { System.out.println((char) hexToDecimal("4e2d"));//中 } private static int hexToDecimal(String hex) { char ch; int l...原创 2010-01-03 19:42:39 · 88 阅读 · 0 评论 -
TreeSet源码阅读
TreeSet类的设计基于实现red-black树的TreeMap类。基本上,一个TreeSet对象是所有元素(节点)都有相同值(树中节点的value数据域)的TreeMap对象,TreeSet会忽略掉TreeMap集合中元素的value,只使用元素的key。下面是TreeSet类的字段: private transient SortedMap m; // TreeSet基于...原创 2010-01-05 22:55:44 · 95 阅读 · 0 评论 -
java异常正确处理方式
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? OutputStreamWriter out = ... java.sql.Connection conn = ... try { // ⑸ Statement stat = conn.createStatement(); Resu...原创 2010-01-07 19:48:04 · 205 阅读 · 0 评论 -
java中的数组与动态数组
int[] x1 = new int[100];int[] x2;x2 = new int[100];int[] x3 = new int[] { 1, 2, 3 };int[][] x4;x4 = new int[2][];x4[0] = new int[1];x4[1] = new int[2];int x5[][] = new int[1][];/...原创 2009-12-14 23:07:44 · 134 阅读 · 0 评论 -
实用AbstractDTO
下面实例是一个实现了克隆与序列化一体的实体抽象DTO类,可供其类继承。只要继承了该类,子类就会自动具有克隆与序列化的特性,另外该抽象类重写了toString()方法,可以打印自身对象详细信息,子类不必要重写即可使用。 package comm.efin.dto;import java.io.ByteArrayInputStream;import java.io.ByteAr...2009-12-13 23:23:59 · 244 阅读 · 0 评论 -
Java线程个数简单控制
系统在运行时,有时候我们要控制它同时允许多少个线程运行,如果太多可能引起内存溢出之类的异常,所以在线程比较多的情况下我们可以控制它的最大线程数,这样系统可以在一种比较稳定的状态下运行。下面是一个简单实现,可以少加修改用在系统中去。 package thread;public class CreateThread { public static void main(Str...2009-11-27 21:21:44 · 113 阅读 · 0 评论 -
JavaBean中的绑定属性与限制属性
JavaBean中的属性 JavaBean的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的变量。在JavaBean的设计中,按照属性的不同作用又细分为四类: 单值属性 索引属性 ...原创 2009-11-27 23:53:33 · 497 阅读 · 0 评论 -
JavaBean事件机制
JavaBean的事件 一、事件概述 事件处理是JavaBean体系结构的核心之一。通过事件处理机制,可让一些组件作为事件源,发出可被描述环境或其它组件接收的事件。这样,不同的组件就可在构造工具内组合在一起,组件之间通过事件的传递进行通信,构成一个应用。从概念上讲,事件是一种在"源对象"和"监听者对象"之间,某种状态发生变化的传递机制...原创 2009-11-29 18:51:44 · 396 阅读 · 0 评论 -
数组强制转型奇怪现象(T[] tArr = (T[]) new Object[1])
为什么可以,最主要原因就是java中的泛型采用的是擦除方案,在编译过后T被替换成了Object类型了,所以在运行不会报ClassCastException类型转换错误。public class Test<T>{ public static void main(String[] args) { //转型错误ClassCastException //String...2009-12-01 14:18:29 · 372 阅读 · 0 评论 -
java泛型
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。在使用泛型的版本中并没有减少键盘录入;实际上,比使用强制类型转换的版本需要做更多键入。使用泛型只是带来了附加的类型安全。因为编译器知道关于您将放进Map中的键和值的类型的更多信息,所以类型检查从执行时挪到了编译时...原创 2009-12-01 22:42:05 · 93 阅读 · 0 评论 -
泛型 —— Java编程思想
泛型类有时方法调用需返回多个对象,你应该经常需要这样的功能吧。可是return语句只允许返回单个对象,因此,解决办法就是创建一个对象,用它来持有想要返回的多个对象。当然,可以在每次需要的时候,专门创建一个类来完成这样的工作。可是有了泛型,我们就能够一次性地解决该问题。同时,我们在编译期就能确保类型安全。这些携带多个返回结果的对象我们称之为容器,它是将一组返回结果对象直接打包存储于其中的一个单一...2009-12-04 00:03:39 · 157 阅读 · 0 评论 -
UTF-16、UTF-16BE、UTF-16LE编码方式的区别
import java.io.IOException;/** * UTF-16BE: 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节,符合人们的阅读习惯)字节顺序 * UTF-16LE: 16 位 UCS 转换格式,Little-endian(最高地址存放高位字节)字节顺序 * UTF-16: 16 位 UCS 转换格式,字节顺序(是高字节在前还是低...2010-03-23 21:20:26 · 587 阅读 · 0 评论 -
线程间的同步与互斥
线程间的同步(实指线程间的通信):一般来说,一个线程相对于另一个线程的运行速度是不确定的,也就是说线程是在异步环境下运行的,每个线程都会以不可预知的速度向前推进。但是相互合作的线程需要在某些确定点上协调工作,当一个线程到达了这些点后,除非另一进程已经完成了某些操作,否则就不得不停下来等待别的线程来完成这些操作,这就是线程间的同步。线程间的互斥(实指对同享资源约束访问):在多线程环境中,各线程...2010-03-23 21:29:42 · 117 阅读 · 0 评论 -
Java中的浮点数剖析
定点数表达法的缺点在于其形式过于僵硬,固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数。计算机系统采纳了所谓的浮点数表达方式。这种表达方式利用科学计数法来表达实数,即用一个尾数(Mantissa也叫有效数字 ),一个基数(Base),一个指数(Exponent)以及一个表示正负的符号来表达实数。浮点数利用指数达到了浮动小数点的效果,从而可以灵活地表达更...2010-04-07 23:27:27 · 397 阅读 · 0 评论 -
java中的关键字、保留字、标示符
关键字Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。 用于类的接口声明:class extends implements interface包引入和包声明:import package数据类型:boolean byte char short int long float double某些数据类型的可先值:false true nul...2010-04-07 23:48:18 · 151 阅读 · 0 评论 -
eclipse调试
eclipse远程调试在eclipse3.4前,远程调试时eclipse只能当客户端(如下图中只有一个选项),而到eclipse3.4或之后,eclipse即可当客户端也可当服务端来远程调试。 虚拟机调试参数设置清单 2 是一个示例,显示如何在调试模式下启动 VM 并监听端口 8765 的套接字连接。清单 2. 作为调试服务器的目标 VM -Xdebug -X...原创 2010-06-04 00:11:00 · 138 阅读 · 0 评论 -
Java断言(assert)—— 转
一、概述 在C和C++语言中都有assert关键,表示断言。 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。 二、语法 在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!),如果要开启断言检查,则需要用开关-en...原创 2010-06-20 10:36:28 · 223 阅读 · 0 评论 -
Tomcat性能参数设置
默认参数不适合生产环境使用,因此需要修改一些参数 1、修改启动时内存参数、并指定JVM时区 (在windows server 2008 下时间少了8个小时): 在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数: window下, 在catalina.bat最前面:set JAVA_OPTS=-XX:PermSize=6...原创 2010-12-27 15:35:57 · 248 阅读 · 0 评论 -
Java中BigDecimal的8种舍入模式
java.math.BigDecimal不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以10的负scale次幂。因此,BigDecimal表示的数值是(unscaledValue × 10-scale)。与之相关的还有两个类:java.math.Mat...原创 2013-06-21 18:42:21 · 142 阅读 · 0 评论 -
对象的安全构造
在构造期间,不要公布“this”引用一种可以将数据争用引入类中的错误是,在构造函数完成之前,使 this 引用暴露给另一个线程。有时这个引用是显式的,(譬如,直接将 this 存储在静态字段或集合),但还有一些时候它可以是隐式的(譬如,当将一个引用公布给构造函数中的非静态内部类的实例时)。构造函数不是一般的方法 ― 它们有特殊的用于初始化安全的语义。在构造函数完成之后,可以认为对象是处于一种...原创 2013-06-21 18:43:14 · 159 阅读 · 0 评论 -
克隆(Cloneable )
克隆 Object.clone() 访问修饰符为 protected ,如果某个类没有重写此方法,则这个类除被自己与子类能调用 clone() 方法外(实质上此时该类与子类访问的都是继承自 Object 的 clone() 方法),其他不管与这个类是在同一包还是不同包都是不可见的(这个好比:一个 B 类继承了 A 类, A 类在一个包中, B C在同另一包中,如果 A 中有一个 protec...2013-06-21 18:44:16 · 139 阅读 · 0 评论 -
protected,这个错了吗?
这几天对protected修饰符有点迷糊,随便找同事要了一本《JAVA面向对象编程(孙卫琴)》电子书来解惑,本抱着一线希望,却让我有点失望,代码好像有点错误,不知道你是否感觉到了呢?以下是电子书的截图: 我个人觉得ClassC中的 a.var2=1; 编译也会有问题,个人理解:《protected,你真的理解了吗?》,如果没错,请大家说说自己的理解!我好更正! 如果真有错,不...原创 2013-06-24 22:17:54 · 233 阅读 · 0 评论 -
类的初始化与清理
初始化时内存清零 当创建一个对象时,首先将在堆上为这个对象分配足够的空间,这块空间会被清零,即基本类型数据都设置成了缺省值,即数字为0,布尔型为false,字符为空白字符(是一个字符,但不是null),引用设置成null。public abstract class P { //在构建子类时先调用父类构造函数 public P() { //调用子类的方...原创 2013-06-24 22:20:44 · 256 阅读 · 0 评论 -
Java 6 JVM参数选项大全
http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm原创 2010-12-14 11:16:14 · 121 阅读 · 0 评论 -
protected,你真的理解了吗?
Java中的访问控制修饰符有四个级别,但属protected最复杂。如果问大家,protected修饰符作用,大家会说“在子类与同包中可以访问这个成员”,当然在自己类中也是可的,但你真的理解了吗?不信,先看看下面这些实例,看你是否也是这样想的(其中注释掉的是不能编译的,大家最好把这些代码放在eclipse中再看,不然你会晕的^_^):package pk1.a;public class B...2010-05-09 17:56:11 · 321 阅读 · 0 评论 -
String,到底创建了多少个对象?
String str=new String("aaa");这行代码究竟创建了几个String对象呢?答案是2个,而不是3个。由于new String("aaa")相当于"aaa"与一个就是创建出来的放在堆时原实例对象,而另一个就是放在常量池中的 "aaa" 对象,当然这里的str本身只是一个引用,放在栈里,用来指向堆中创建出来的对象。常量池(constant pool)指的是在编译期被确定,并...原创 2010-01-22 00:52:18 · 967 阅读 · 0 评论 -
方法能重写,属性能重写吗?
覆写是多态的一种表现,我们平时所说的覆写一般是针对方式来说,在网上看到过有人讨论试着覆写属性,于是有点兴趣,属性真能覆写吗?回答问题之前,我们还是回忆一下方法的覆写具备哪些条件,或都说哪些方法能覆写。先回顾一下方法覆写要注意的地方:1、重载(也叫过载)时只与方法特征有关,但重写(覆写)是会进一步检查两个方法的返回类型是否相同、访问修饰权限是否缩小(假设public->protected方向是...原创 2010-01-22 00:56:31 · 534 阅读 · 0 评论 -
final、finally、finalize
final关键字 先看看final关键字,它可以被用于以下几个地方: 1、修饰属性、局部变量、方法参数:如果final修饰的是一个基本类型,就表示这个变量所赋予的值不可修改,即它是个常量;如果final修饰的是一个对象,就表示这个变量被赋予的引用不可修改(但我们可以修改该引用所指向对象里的内容,这里所说的不可修改是指final修改的引用一但指向了谁,就不能再指向别的对象了)。下面来看看修改属性与变...原创 2010-01-22 01:15:03 · 88 阅读 · 0 评论 -
中断线程
中断线程线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序本身。线程会不时地检测这个中断标示位,以判断线程是否应该被中断(中断标示值是否为true)。它并不像stop方法那样会中断一个正在运行的线程。判断线程是否被中断判断某个线程是否已被发送过中断请求,请使...2010-04-24 21:19:25 · 113 阅读 · 0 评论 -
Java内存模型与volatile
内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节。 每一个线程有一块工作内存区,其中保留了被所有线程共享的主内存中的变量的值的拷贝。为了存取一个共享的变量,一个线程通常先获取锁定并且清除它的工作内存区,这保证该共享变量从所有线程的共享内存区正确地装入到线程的工作内存区,当线程解锁时保证该工作内存区中变量...2010-04-25 13:21:09 · 235 阅读 · 0 评论 -
运行java
用javac命令编译一个打包的类时,如果没有加参数"-d"时,则编译出的类不会放在包中(即相应的文件夹中),是没有包路径的,除非用参数"-d"指定类存放的位置,–d 指示的是编译后的class文件放在哪个目录下,并且会自动创建包名文件夹。比如现有如下类:package a.b;class A{} javac A.java 时会在当前工作目录下产生一个A.class文件,不会创建包目录结构。...2010-05-03 13:47:21 · 153 阅读 · 0 评论 -
类与类之间的几种关系
类和类、类和接口、接口和接口之间有如下几种关系:泛化关系、实现关系、关联关系(聚合、合成)、依赖关系。 泛化:表示类与类之间的继承关系,使用extends关键字来表示。在图形上使用虚线三角形箭头表示。 实现:表示类与接口之间的实现关系,使用implements关键字来表示。在图形上使用实线三角形箭头表示。 关联:类与类之间的联接。关联可以是双向的,也可以是单向的,双向的关联可以有...2010-05-03 13:49:51 · 172 阅读 · 0 评论 -
利用反射进行深层克隆
最近在看《effective java》,其中有一节谈到了克隆,所以今天想来就来研究一下克隆。 我们大家都知道,对一个对应进行复制有二种比较好的方式,一种就是序列化,另一种就是克隆。使用序列化进行复制很方便,因为此种方式会自动进行深层复制,只需要我们将要序列化的对象所对应的类实现序列化标示性接口Serializable,它就会将对象里所引用的其他对象一并复制,但此种效率不及Object里的...2010-05-05 21:02:38 · 163 阅读 · 0 评论 -
正确理解ThreadLocal
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程(当前线程)自己使用的对象,其他线程是不能访问得到的,各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每创建一个新的线程就会有一个ThreadL...原创 2009-11-26 22:51:10 · 85 阅读 · 0 评论