文章列表
2012.06.26 17:24——一个值得纪念的时刻,我对职业生涯中第一个老板提出了离职
2012.06.26 17:24——一个值得纪念的时刻,我对职业生涯中第一个老板提出了离职
2012.06.26 17:24——一个值得纪念的时刻,我对职业生涯中第一个老板提出了离职
ant编译java源代码时报错:
com.sun.tools.javac.Main is not on the classpath.Perhaps JAVA_HOME does not point to the JDK.It is currently set to "C:\Program Files\Java\jre6"
baidu了一下
原因:
电脑上有多个JDK版本,或者是JDK版本设置混乱的原因,或者JRE、JDK....
解决:
将jdk\lib中的tools.lib拷贝到jre\lib中即可(jre中没有这个jar)
具体原因希望知道 ...
jacob莫名奇妙抛异常
- 博客分类:
- java综合
最近使用jacob写word文件的时候发现个奇怪的现象:写入数据时会莫名奇妙的抛出异常,最好发现问题原因为:word
应用程序的语法拼写检查导致,取消语法拼写检查后写入正常。我想可能是超过一定的语法拼写错误后就不允许继续写入了。具体关闭方式为:工具-选项-拼写和语法 取消:“键入时检查拼写”、“键入时检查语法”选项
因为早期使用正则表达式的工具是基于行的。它们都是一行一行的读入一个文件,将正则表达式分别应用到每一行上去。在这些工具中,字符串是不包含换行符的。因此“.”也就从不匹配新行符。
有如下几种方式可以匹配
1)\s\S、\d\D、\w\W
原因:不详
2)[^.]
原因:匹配非(任何字符(与行结束符可能匹配也可能不匹配))
假设你的月收入只有2000元,你也可以过得很好。我帮你把钱分成五份。每一份,是400元。 第一份,用来做生活费。这么少的生活费,每天只能够分到十几元。早餐一个地瓜,两个鸡蛋,一个苹果。中餐两个鸡蛋,一杯酸奶 ...
转自IBM论坛文章,原题目:java理论与实践:正确使用volatile变量
Java 理论与实践: 正确使用 Volatile 变量
volatile 变量使用指南
文档选项
<script type="text/javascript"></script>
打印本页
<noscript></noscript>
java中int等不大于32位的类型上的简单操作都是原子操作,但是某些jvm的实现使得对long和double类型的操作并不是原子操作,这样就会造成错误数据的出现。
错误数据出现的原因是: 对于long和double变量,把他们作为2个原子性的32位值来对待,而不是一个原子性的64位值, 这样将一个long型的值保存到内存的时候,可能是2次32位的写操作, 2个竞争线程想写不同的值到内存的时候,可能导致内存中的值是不正确的结果。 1、写入高位32位值(线程2) 2、写入高位32位值(线程1) 3、写入低位32位值(线程1) 4、写入低位32位值(线程2)
这样内存中的值变成线程1的高 ...
import java.awt.Color;
public class Point {
private final int x;
private final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public boolean equals(Object o) {
if (!(o instanceof Point))
return false;
Point p = (Point) o;
return p.x == x &&am ...
1.引入:之所以要使用这项技术是因为一个非final的公有类覆盖了来自Object的finalize()方法,此类被继承时在子类中如果同样的重写了finalize()方法时需要使用如下模式调用父类被覆盖的finalize()方法。
protected void finalize() throws Thr ...
http://downloads.myeclipseide.com/downloads/products/eworkbench/galileo/myeclipse-8.5.0-win32.exe
java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装目录 java.vm.specification.version Java 虚拟机规范版本 java.vm.specification.vendor Java 虚拟机规范供应商 java.vm.specification.name Java 虚拟机规范名称 java.vm.version Java 虚拟机实现版本 java.vm.vendor Java 虚拟机实现供应商 java.vm.name Ja ...
文章内容如题,只是对JNI使用的简单介绍。相信有许多同行也跟我一样在这方面知之甚少,所有在这里也总结一下,希望方便大家学习。
1.简介
JNI是Java Native Interface的缩写,它的设计目的是:
The standard Java class library may not support the platform-dependent features needed by your application.
You may already have a library or application written in another programming lan ...
1.引入:静态工厂方法返回的对象所属的类,在编写包含该静态工厂方法的类时可以并不存在,这种灵活的静态工厂方法构成了服务提供者框架的基础。——引自effectivejava item one
2.说明:服务提供者框架是指这样的一个系统:提供者为框架的用户提供了多个API实现,框架必须提供一种机制来注册这些实现以便用户能够使用它们。框架的客户直接使用API,无需关心自己到底在使用哪个实现。
3.简单的服务提供者框架的例子:
import java.util.HashMap;
import java.util.Map;
class DefaultFoo extends Foo ...
最近遇到个奇怪的问题,Eclipse的断点调试功能不固定的什么时候就不好使了,一开始真把我愁坏了,没法调试只能看日
志真闹心,最近花了点时间查找问题原因,现和大家分享:
问题的罪魁祸首是:我使用的jdk1.6.0_14版本存在bug导致。
官网bug发布:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6862295
Eclipse官方公布:https://bugs.eclipse.org/bugs/show_bug.cgi?id=279137
该bug最终在jdk1.6.0_16中 ...
里氏代换原则(LSP)
- 博客分类:
- 软件架构
引用java与模式一书中的定义:
如果对某一类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。
简单的说就是适用于基类的地方一定适用于子类。