![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
renyaning1234
这个作者很懒,什么都没留下…
展开
-
java中的编码问题
对于Java语言来说,在其内部使用的是UCS2编码(2个字节的Unicode编码)。这种编码并不属于某个语系的语言编码,它实际上是一种编码格式的世界语。在这个世界上所有可以在计算机中使用的语言都有对应的UCS2编码。 实现上,当我们从IDE输入“中国”时,用的是java源代码文件保存的格式,一般是GBK,有时也可是utf-8,而在Java编译程序时,会不由分说地将所有的编码格式转换成...原创 2009-09-11 15:18:23 · 91 阅读 · 0 评论 -
java中Serializable以及transient关键字
串行化只能保存对象的非静态成员交量,不能保存任何的成员方法和静态的成员变量,而且串行化保存的只是变量的值,对于变量的任何修饰符都不能保存。既不能保存static的成员变量。对于某些类型的对象,其状态是瞬时的,这样的对象是无法保存其状态的。例如一个Thread对象或一个FileInputStream对象 ,对于这些字段,我们必须用transient关键字标明,否则编译器将报措。比如说在一...原创 2009-06-19 16:52:03 · 321 阅读 · 0 评论 -
effective java
在包的内部使用继承是非常安全的,这样子类和超类都处于同一个程序员的控制之下。继承打破了封装性:子类依赖于超类中功能的实现细节,超类的实现有可能会随着发行版本的不同而有所变化,弱国重大发送变化,子类可能会遭到破坏。除非超类是专门为了扩展而设计的,并且具有很好的文档说明。有一种办法可以避免提到的所有问题,不用扩展现有的类,而是在新的类中增加一个私有域,它引用现有类的一个实例。这种设计被称为:“...原创 2009-07-02 10:53:23 · 59 阅读 · 0 评论 -
jboss配置管理
$JBOSS-HOME/server/下有3个目录,all/default/minimal,它们是表示3种配置,全部的配置、默认配置、最小配置,我们在启动JBOSS服务时,可以指定run –c all 表示是启动all配置(将会加载所有服务);run 表示是以默认配置启动;run –c mimimal 表示是启动mimimal配置。这三者所加载的服务数量不同,具体区别可查阅JBOSS相关文档,你...原创 2009-07-08 11:03:40 · 122 阅读 · 0 评论 -
CopyOnWriteArrayList的使用
除了加锁外,其实还有一种方式可以防止并发修改异常,这就是将读写分离技术(不是数据库上的)。先回顾一下一个常识:1、JAVA中“=”操作只是将引用和某个对象关联,假如同时有一个线程将引用指向另外一个对象,一个线程获取这个引用指向的对象,那么他们之间不会发生ConcurrentModificationException,他们是在虚拟机层面阻塞的,而且速度非常快,几乎不需要CPU时间。2、...原创 2013-04-17 16:15:00 · 103 阅读 · 0 评论 -
SimpleDateFormat不是线程安全
java.text.SimpleDateFormat并不是线程安全的,JDK1.4之前的javadoc 都忽略提及这一点。 很多开发者错误的创建并使用了它,这些程序在大负载下容易引发错误结果。 最后指明,如果一个类没有明确指明,就不要假设它是线程安全的。...原创 2013-04-17 16:44:13 · 104 阅读 · 0 评论 -
迭代过程中的线程安全
对Collection进行迭代的标准方法是使用Iterater,无论显示的使用还是for-eache与否,当其他线程可能并发修改容器时,需要在迭代器具对容器加锁。 对于for-each语法,javac生成的代码内在的使用一个Iterator,调用hasNext和next对List进行迭代。在进行迭代时,当容器察觉到在迭代开始后被修改,会抛出一个未检查的ConcurrentMo...原创 2013-04-17 17:58:24 · 279 阅读 · 0 评论