收藏本站

java 内部类总结

Nested Classes定义

在java语言规范里面,嵌套类(Nested Classes)定义是:

A nested class is any class whose declaration occurs within the body of another class or interface. A top level class is a class that is not a nested class. 

说的简单一点,就是定义在类里面的类。一般把定义内部类的外围类称为包装类(enclosing class)或者外部类

 

嵌...

阅读全文>>

java 泛型实现原理及使用详解

    自java 1.5 起,我们可以在java中使用泛型了。关于为什么要使用泛型,可能是很多新手迷茫的地方。用一个Object 类代替不就好了。光说也记不住,练吧,如:


//未使用泛型时

 	public static void test(){
		List l = new ArrayList();
		l.add(Integer.valueOf(1));
		Integer b = (Integer) l.get(0);
		System.out.println(b);
	}

//使用泛型后	
	public static void t...

阅读全文>>

java web开发 include与jsp:include总结

java web 开发中特别是前端,经常为了代码的重用性而将页面拆分成小页面。这时就需要用到嵌套将各小页面整合成符合需求的大页面。现在也有些开源框架如sitemesh 专门帮你构建页面。但jsp 原生的导入方式我们还是需要熟悉。在jsp中常用的导入方式有两种形式,分别是

<%@ include file=” ”%> 指令元素
<jsp:include page=” ” flush=”true”/> 行为元素,标签形式

具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。这里简单总结一下:

<%@ include fi...

阅读全文>>

java 自动装箱、拆箱深入理解

    java 自动装箱作为java 5 提供给程序员的一颗语法糖,确实给java 编程带来很大方便。但不要因为自动装箱好用就滥用,因为其毕竟只是语法糖,本质是在通过调用各包装类的valueOf 方法来实现,所以对性能要求较高的地方,更要慎用。很多专家,包括有效编程 作者也建议,我们在能用基本类型的地方尽量用基本类型,不要用包装类因为其容易引起自动装箱。

    下面先来做一个测试:

	public static void main(String[] args) {
		Integer a = 1;
		Inte...

阅读全文>>

转载 java 枚举enum 的使用

java枚举的使用与分析

public enum EnumTest {

     FRANK("The given name of me"),
     LIU("The family name of me");
     private String context;
   &n...

阅读全文>>

java 创建单例模式的几种方式及注意事项

    单例模式是java 设计中常用创建模式,特别适合于一些可以共用,及特别占用资源的类的创建。

    创建单例模式类方式常被分为懒汉式和饿汉式。下面简单列出各种方式代码并简单分析。

   

懒汉式一

/**
 * 单例模式测试
 * @author tjx
 */
public class SingleTest {
	//这是饿汉式,类一加载就创建改类对象创建好。
	//这种方式优点:简单,快捷,不需要考虑同步
	//缺点:如果该类的创建是比较...

阅读全文>>

深入理解java String

    字符串是最常用的数据类型,甚至比基本类型还用的多。正因如此,java 也对String 做了一些特殊处理,使得我们在编程时使用String 和 使用自动装箱的基本数据类型包装类很相似。

如:

     包装类: Integer a = 1;    a =a+1;

     String:   String a ="abc";  a=a+"d";

但不要因此就认为String...

阅读全文>>

使用mat 分析tomcat 内存溢出(OutOfMemoryError: Java heap space)

由于没有进行压力测试,网站运行过程中,随着数据量增大,tomcat 报OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:
1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定解决方案;
2、内存溢出,内存中的对象都还必须存活着,这说明Java堆分配空间不足,检查堆设置大小(-Xmx与-Xms),检查代码是否存在对象生命周期太长、持有状态时间过长的情况。甚至优化代码减少临时变量的产生。
以上是处理Java堆问题的思路,具体是怎么进行分析,这里介绍的是使用Ecl...

阅读全文>>

收藏 java 学习资源

java内存详解:

http://kenwublog.com/explain-java-memory-model-in-detail

java 6 sychronized 新特性:

http://www.infoq.com/cn/articles/java-se-16-synchronized

阅读全文>>

java 中的原子操作

(automic operation)原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行倒结束,中间不会有任何 context switch (切换到另一个线程)。通常所说的原子操作包括对非long和double型的primitive进行赋值,以及返回这两者之外的primitive。之所以要把它们排除在外是 因为它们都比较大,而JVM的设计规范又没有要求读操作和赋值操作必须是原子操作(JVM可以试着去这么作,但并不保证)。不过如果你在long或 double前面加了volatile,那么它就肯定是原子操作了。

原子操作只有对基本类型进行读取或赋值操作时才会...

阅读全文>>