- 浏览: 110326 次
- 性别:
- 来自: 杭州
最新评论
文章列表
Java单例模式可能是最简单也是最常用的设计模式,一个完美的单例需要做到哪些事呢?
1单例(这不是废话吗)
2延迟加载
3线程安全
4没有性能问题
5防止序列化产生新对象
6防止反射攻击
public class StaticSingleton {
private StaticSingleton(){
System.out.println("StaticSingleton is create");
}
private static class SingletonHolder{
private static StaticSingleton instance = ...
参考文章 : http://blog.2baxb.me/archives/1398
注意 junit版本要去重
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:
jstack [-l][F] pid
如果java程序崩溃生成cor ...
eclipse跑单元测试提示java.lang.NullPointerException异常 场景是 只有这个空异常 其他都没有输出 控制台。
或则不是上面的错误提示 而是下面的
java.lang.RuntimeException: tested object can't be null
都是因为junit或则testNG运行了但是实现它的jtester没加载实列化 必须在jvm启动参数里加上jtester的启动
-javaagent:/Users/***/program/maven/repo/com/***/jtester/jtester.nodep/2.0.1/jtester.no ...
如果在用eclipse调试(或运行)java程序时,出现了cannot connect to VM 错误 但是正常运行是可以的 run可以debug run不行,实在找不出什么原因,可以检查以下几个方面。
1、如果在linux系统或则mac osx下,要把127.0.0.1 localhost 加到配置文件中。host里
2、如果在XP系统下,请检查杀毒软件的防火墙。
3、经过我测试,在安装卡巴斯7.0后eclipse调试java项目时就有可能出现上述错误,就算你退出卡巴也不行,只能御载。
4、但卡巴6.0和8.0没有问题!!
ipfw是BSD系统中重要的防火墙和通信控制工具,在MacOSX中也很好用.
因为mac osx里1024里的端口都是root权限的所以我们启动tomcat的时候需要用root用户 但是我们又不想root下有太多用户数据 所以设置下端口转发就可以了 用 ipfw命令
1.先列出当前有那些设置
sudo ipfw list
2.删除不需要的
sudo ipfw del 200
3.增加一条转发
sudo ipfw add fwd 127.0.0.1,8080 tcp from any to 127.0.0.1 80 in
然后设置tomcat8080启动 用普通用户启动应用 浏览 ...
问题描述:
生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。
问题分析:
1,程序属于CPU密集型,和开发沟通过,排除此类情况。
2, ...
多角度看 Java 中的泛型
- 博客分类:
- JAVA技术
本文摘自:http://www.ibm.com/developerworks/cn/java/j-lo-gj/
引言
很多 Java 程序员都使用过集合(Collection),集合中元素的类型是多种多样的,例如,有些集合中的元素是 Byte 类型的,而有些则可能是 String 类型的,等等。Java 语言之所以 ...
Object类的方法
构造方法:public Object()
在Object的源代码中并没有Object的构造方法,而是采用了java内置的默认构造方法。即在编译时由编译器完成这项工作。
值得注意的是在Object源码的开始,有这样一段:
private static native void registerNatives();
static {
registerNatives();
}
使用JNI特性(有其他语言实现这个功能)来做的这样一个方法,这个方法由Java虚拟机在创造对象时调用,其功能是初始化一个对象:分配内存空 ...
为什么Java byte 类型的取值范围是-128~127
0 00000000
1 00000001
... ........
127 01111111
----------------
共 128 个
-1 11111111
-2 11111110
... ...
-128 10000000
----------------
共 128 个
概念:负数的补码是该 数 绝 对 值 的 补 码 按 位 取 反 ,然 后 对 整个数 加 1
步骤:
1.确定byte是1个字节,也就是8位
2.最大的应该是0111 1111,因为第一位是符 ...
首先可以确定的一点是, 不同类型节点的加载顺序与它们在web.xml里出现的次序无关,即不会因为filter写在listener之前而先加载fiter.
就<context-param>、<listener>、<filter>、<servlet>四种节点而言,启动服务器时的加载顺序是context-param --> listener --> filter --> servlet
首先是<context-param>,启动一个WEB项目的时候,WEB容器会读取配置描述符文件(web.xml)中的&l ...
package com.test.aa.service;
public class Test extends B {
public int a = 100;
public static int a1=3;
public Test() {
super();
System.out.println(a);
a = 200;
}
public static void main(String[] args) {
System.out.println(new Test().a);
}
}
...
一.什么是ThreadLocal?
ThreadLocal 是在 java.lang.包下的 在jdk1.2里引入进来 主要是给每个线程分配该线程本身的本地变量 该变量是该线程独有的 别的线程是访问不了的。
二. ThreadLocal的实现原理:
最关键的是在Thread类里有一个ThreadLocal.ThreadLocalMap threadLocals的属性,也就是说 一个线程对象生成的时候会有一个对应私有属性 threadLocals 生成 这个属性是一个 ThreadLocalMap 也就是MAP ,看ThreadLocal类的get方法:
public T get() ...
关于这三者的区别,我们从官方API上很容易找到答案。 这里做了一下比较,并写了点测试代码。
关于《Java中的String的 方法归类 及其 不可变性》参看本博客另一篇文章:http://blog.csdn.net/daheiantian/archive/2010/12/20/6097353.aspx
1. 概述:
1.1 String
字符串常量,但是它具有不可变性,就是一旦创建,对它进行的任何修改操作都会创建一个新的字符串对象。
1.2 StringBuffer
字 ...
class MyParent {
public int a;
public MyParent() { a = 3; }
public void addFive() { a += 5; }
}
public class MyChild extends MyParent{
public int a;
public MyChild() { a = 8; }
public void addFive() { this.a +=5; }
public static void main(String[] ...