`
文章列表
本博客有些好的文章已经搬家,请前往http://www.cnblogs.com/jiangzhengjun/查看!  
说明:本人所有博客文章,以及《effective Java》都已经上传到 Wiz 为知 云笔记平台上了,有需要的朋友请前去寻找,具体地址: http://mywiz.cn/view/20130622180659226   今天终于将《effective java》第二版啃完了,感觉确实不错,值得一看。看的时候结合自己做过的项目想一下确实如些,里面有绝大多数都是很好的建议与总结,而且都是站在一定高度看Java的。不过里面有很少一部分感觉不太好,不知道是我没有吃透还是翻译的有问题,总感觉翻译的地方有点生硬,难理解,不过比起《Java编程规范》第三版强百倍,那本书简直就不是人翻译的,想来就生气 ...

Java正则表达式

    博客分类:
  • Java
Java正则表达式详解 作者:jzj   文章来源:Internet    整理时间:2009-03-31 引言     正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如表达式“ab+” 描述的特征是“一个 'a'

类的初始化与清理

    博客分类:
  • Java
初始化时内存清零 当创建一个对象时,首先将在堆上为这个对象分配足够的空间,这块空间会被清零,即基本类型数据都设置成了缺省值,即数字为0,布尔型为false,字符为空白字符(是一个字符,但不是null),引用设置成null。 public abstract class P { //在构建子类时先调用父类构造函数 public P() { //调用子类的方法 f(); } public abstract void f(); } class S extends P { int integer = ...
这几天对protected修饰符有点迷糊,随便找同事要了一本《JAVA面向对象编程(孙卫琴)》电子书来解惑,本抱着一线希望,却让我有点失望,代码好像有点错误,不知道你是否感觉到了呢?以下是电子书的截图:   我个人觉得ClassC中的 a.var2=1; 编译也会有问题,个人理解:《protected,你真的理解了吗?》,如果没错,请大家说说自己的理解!我好更正!   如果真有错,不知道是孙妹妹的粗心所致还是出版时的问题!现真有点迷糊~@@#!
dom4j 是一种解析 XML 文档的开放源代码 XML 框架。本文介绍如何使用包含在 dom4j 中的解析器创建并修改 XML 文档。   dom4j API 包含一个解析 XML 文档的工具。本文中将使用这个解析器创建一个示例 XML 文档。清单 1 显示了这个示例 ...
克隆 Object.clone() 访问修饰符为 protected ,如果某个类没有重写此方法,则这个类除被自己与子类能调用 clone() 方法外(实质上此时该类与子类访问的都是继承自 Object 的 clone() 方法),其他不管与这个类是在同一包还是不同包 ...

对象的安全构造

    博客分类:
  • Java
在构造期间,不要公布“this”引用 一种可以将数据争用引入类中的错误是,在构造函数完成之前,使 this 引用暴露给另一个线程。有时这个引用是显式的,(譬如,直接将 this 存储在静态字段或集合),但还有一些时候它可以是隐式的(譬如,当将一个引用公布给构造函数中的非静态内部类的实例时)。构造函数不是一般的方法 ― 它们有特殊的用于初始化安全的语义。在构造函数完成之后,可以认为对象是处于一种可预测和一致的状态,将引用公布给一个还未完成构造的对象是危险的。清单 2 显示了将这类争用条件引入构造函数的示例。这个示例看上去可能没有危害性,但它可以引发严重的并发性问题。 //清单 2. 可能发生 ...
java.math.BigDecimal不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以10的负scale次幂。因此,BigDecimal表示的数值是(unscaledValue × 10-scale)。与之相关的还有两个类:java.math.MathContext: 该对象是封装上下文设置的不可变对象,它描述数字运算符的某些规则,如数据的精度,舍入方式等。java.math.RoundingMode:这是一种枚举类型,定义了很多常用的数据舍入方式 ...
默认参数不适合生产环境使用,因此需要修改一些参数   1、修改启动时内存参数、并指定JVM时区 (在windows server 2008 下时间少了8个小时):   在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:    window下, 在catalina.bat最前面:set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m;-Duser.timezone=GMT+08;一定加在catalina.bat最前面。   linux下,在ca ...
http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm
JS到HTML特殊字符转换 这几天做项目,发现从服务器端以JSON格式将数据传递到客户端后,通过JS显示在HTML页面时,有一些特殊字符不能直接显示,如后台传递过来的是 '<b>msg</b>&nbsp;&#35;' 通过JS显示在HTML页面中时,显示成了 msg # ,并不是<b>msg</b>&nbsp;&#35;,这是由于<与>之间的内容看作是HTML标签了,而以&开头的&nbsp;与&#35;为HTML实体,所以显示不正常。   解决办法很简单,在JS将其渲染到HT ...
现项目中需要使用ext js ,顺便下了个Ext Designer,但只有14天的该用,过期后可以调整系统日期可以继续使用,但较麻烦,在网上找到了补丁程序,但是其他软件写的,为了方便Java朋友,现将补丁程序改成了Java补丁程序(请注意,请在官方下载1.0.2的版本):   import java.io.IOException; import java.io.RandomAccessFile; public class Patch { public static void main(String[] args) throws IOException { RandomAcc ...
一、概述 在C和C++语言中都有assert关键,表示断言。 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。 二、语法 在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!),如果要开启断言检查,则需要用开关-enableassertions或-ea来开启。 assert关键字语法很简单,有两种用法: 1、assert <boolean表达式> 如果<boolean表达式>为true,则程 ...
编写线程安全的代码的核心在于,对对象状态访问的控制与管理,特别对共享的、可变的状态。   一般地讲,一个对象的状态就是它所包含的数据,存储在状态变量中,比如实例域或静态域。一个对象的状态可能还来自于它所依赖的其他对象,比如HashMap的状态一部分是存储在自己的对象空间之中的,但另一部分存储在许多的Map.Entry对象之间。所以一个对象的状态是指那些可被外界访问的方法所影响(改变)的数据。   我们讨论的线程安全性好像是关于代码的,但是我们真正要做的,是在不可控制的并发访问中如何保护共享数据。   一个对象是否应该是线程安全的,这取决于它是否会被多个线程访问。   Java中首 ...
Global site tag (gtag.js) - Google Analytics