Java编程
DLite
这个作者很懒,什么都没留下…
展开
-
IDEA中Tomcat日志乱码问题解决
以前一直使用Eclipse,现在试用IDEA,遇到一些坑,通过网上的答案基本都解决了,但有些答案不好,比如这个问题。1、原因分析 Tomcat运行Java Web的程序,在IDEA控制台中输出显示,我们一般都是用UTF8编码。 从Java源码到IDEA控制台,大致分为几个阶段: 1)源码:即*.java原文件,是纯文本文件。 编码方式在IDEA的Settings>Editor>File Encodings中设置; 2)...原创 2021-08-03 10:41:30 · 5937 阅读 · 4 评论 -
几个第三方Java串口库
jSerialComm homepage:http://fazecast.github.io/jSerialComm/https://github.com/Fazecast/jSerialComm/wiki/Usage-Examplespurejavacomm homepage:http://www.sparetimelabs.com/purejavacomm/purejava原创 2017-08-12 16:26:57 · 2898 阅读 · 1 评论 -
不要在构造函数中调用虚函数
对于有继承关系的类体系,Java中规定了成员初始化非静态成员和构造函数执行的顺序:1、初始化父类非静态成员2、执行父类构造方法3、初始化子类非静态成员4、执行子类构造方法 因此,我们似乎可以简单的总结出一个规律:对于同一个对象来说,其非静态成员在构造函数前初始化。可下面代码的运行结果,并不符合以上预期。public abstract class Base {原创 2009-11-03 14:26:00 · 1087 阅读 · 0 评论 -
Java线程中断的本质和编程原则
在历史上,Java试图提供过抢占式限制中断,但问题多多,例如前文介绍的已被废弃的Thread.stop、Thread.suspend和 Thread.resume等。另一方面,出于Java应用代码的健壮性的考虑,降低了编程门槛,减少不清楚底层机制的程序员无意破坏系统的概率。 如今,Java的线程调度不提供抢占式中断,而采用协作式的中断。其实,协作式的中断,原理很简单,就是轮询原创 2009-05-26 18:00:00 · 10426 阅读 · 5 评论 -
为什么 Thread.stop和Thread.suspend等被废弃了?
翻译:dlite@163.com原文: Why Are Thread.stop, Thread.suspend,Thread.resume and Runtime.runFinalizersOnExit Deprecated?为什么 Thread.stop被废弃了?因为其天生是不安全的。停止一个线程会导致其解锁其上被锁定的所有监视器(监视器以在栈顶产生T翻译 2009-05-24 20:52:00 · 19915 阅读 · 3 评论 -
关于集合操作边界处理的设计
原创:dlite@163.com 在设计或实现某种集合的时候,经常会遇到集合边界值的情况。例如,从集合中取一个元素,必须得考虑这个集合是否非空;向一个有限集合添加元素,必须考虑集合满的情况。 而对于包含异常处理的编程语言来说,如果遇到集合操作边界,我们常见的编程约定有两种: 一种选择是将边界条件作为异常来处理。如下面处理集合为空的代码。 代码1: Collectio原创 2009-05-20 07:32:00 · 1655 阅读 · 0 评论 -
缓存管理的基本问题
所谓缓存,本质上是同一块数据在不同空间的存储。这样的例子很多:※ CPU和内存之间的高速缓存;※ 同时映射到两个进程地址空间的数据,典型的是共享内存;※ 同时位于数据库和内存中的同一个业务数据,如O-R映射;※ 位于两台服务器的数据,典型的例子是集群全局配置信息。一、访问缓存可能发生的简单问题: 1、在同一个存储空间中,不同进程/线程间的共享数据一致原创 2009-07-22 22:24:00 · 1184 阅读 · 0 评论 -
关于线程池实现思考——分离任务队列与线程池
设计线程池时,本质上所使用的逻辑模型仍然是我们熟悉的“生产者/消费者”模型。 外部线程负责产生需要执行的任务,线程池线程负责执行这些任务。任务放在一个共享的数据结构中,通常是一个线程安全的队列。 生产 消费 外部线程(生产者)--->任务 通常,任务对象会提供一个run原创 2009-04-28 14:52:00 · 3900 阅读 · 0 评论 -
HTTPLook引起JVM崩溃
上周用Java写了一个检查网络中设备状态的程序,结果JVM每隔十几分钟就会莫宁奇妙的崩溃一次。错误类似下面: ----------------------------------------------------------------## An unexpected error has been detected by Java Runtime E原创 2009-04-07 15:50:00 · 1671 阅读 · 1 评论 -
两段Java程序的效率
//代码1public class Obj { private int i; public int getI() { return i; } public void setI(int i) { this.i = i; }}//代码2List result2 = new ArrayList();原创 2009-03-19 10:55:00 · 926 阅读 · 0 评论 -
解决RMI服务路径查找问题
在尝试写RMI程序时,如果没有指定RMI的Codebase,程序执行注册的bind或rebind方法时,会报ClassNotFoundException错: Server exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:原创 2009-03-02 14:32:00 · 1709 阅读 · 0 评论