• Java 内存泄露的理解与解决过程

    2015-12-12
    Java 内存泄露的理解与解决过程
    本文详细地介绍了Java内存管理的原理,以及内存泄露产生的原因,同时提供了一些列解决Java内存泄露的方案,希望对各位Java开发者有所帮助。 Java内存管理机制 在C++ 语言中,如果需要...
  • Java File 类的使用方法详解

    2015-12-12
    Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作。本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看一...
  • 最全面的Java多线程用法解析

    2015-12-12
    最全面的 java多线程 用法解析,如果你对Java的多线程机制并没有深入的研究,那么本文可以帮助你更透彻地理解Java多线程的原理以及使用方法。 1.创建线程 在Java中创建线程有两种方法...
  • Java for循环的几种用法详解

    2015-12-12
    J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍...
  • 详细分析Java中断机制

    2015-12-11
    1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时都需要通过一个线程去取消另一个线程正在执行的任务。Java没有提供...
  • Java线程的5个使用技巧

    2015-12-11
    Java线程的5个使用技巧
    初学者 1.线程名 程序中的每个线程都有一个名字,创建线程的时候会给它分配一个简单的Java字符串来作为线程名。默认的名字是Thread-0, Thread-1, Thread-2等等。现在有趣的事情来了Thread提...
  • 可视化Java垃圾回收的原理和实现

    2015-12-02
    可视化Java垃圾回收的原理和实现
    垃圾回收,就像双陆棋一样,只需几分钟来学习,但要用一生来精通。 基础 当谈到释放不再使用的内存,垃圾回收已经在很大程度上取代了早期技术,比如手动内存管理和引用计数。...
  • Java内存模型深度解析:总结

    2015-11-29
    Java内存模型深度解析:总结
    处理器内存模型 顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一...
  • Java内存模型深度解析:final

    2015-11-29
    Java内存模型深度解析:final
    与前面介绍的锁和 Volatile 相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被...
  • Java内存模型深度解析:锁

    2015-11-29
    Java内存模型深度解析:锁
    锁的释放-获取建立的happens before 关系 锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。 下面是锁释放-获取...
  • Java内存模型深度解析:volatile

    2015-11-29
    Java内存模型深度解析:volatile
    Volatile 的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读...
  • Java内存模型深度解析:顺序一致性

    2015-11-29
    Java内存模型深度解析:顺序一致性
    数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量, 在另一个线程读同一个变量, 而且写和读...
  • Java内存模型深度解析:重排序

    2015-11-29
    数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b =...
  • Java内存模型深度解析:基础部分

    2015-11-29
    Java内存模型深度解析:基础部分
    并发编程模型的分类 在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换...
  • Java Servlet完全教程

    2015-11-28
    Java Servlet完全教程
    Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求。尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求。 Servlet必须部署在Java servlet容器才能...
  • Java虚拟机的内存是如何分布的

    2015-11-27
    Java虚拟机内存分为五个区域:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆是java虚拟机共享的内存区域,虚拟机栈,本地方法栈,程序计数器是线程私有的。 程...
  • Java集合类型详解

    2015-11-27
    这篇文章总结了所有的Java集合(Collection)。主要介绍各个集合的特性和用途,以及在不同的集合类型之间转换的方式。 Arrays Array是Java特有的数组。在你知道所要处理数据元素个数的情...
  • Java设计模式之策略模式

    2015-11-27
    今天开始我们来逐步探讨一下关于Java的几种 设计模式 ,今天先来讲一下策略模式。 策略模式 定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用...
  • Java 四大域对象总结

    2015-11-27
    一、ServletContext 1、生命周期:当Web应用被加载进容器时创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟着销毁。 2、作用范围:整个Web应用。...
  • 说说Java内存回收机制

    2015-11-23
    说说Java内存回收机制
    在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java 程序员 的学习难度,避免了像C/C++直接操作内存的危险...
  • Java数组操作的10大方法

    2015-11-23
    0、定义一个Java数组 String[] aArray = new String[5];String[] bArray = {a,b,c, d, e};String[] cArray = new String[]{a,b,c,d,e}; 第一种是定义了一个数组,并且指定了数组的长度,我们这里称它为动态定义。 第...
  • JAVA中关于Map的九大问题

    2015-11-23
    通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的。下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题。 0、将Map转换为List类型 在java中Map接口提...
  • Java实现定时任务的三种方法

    2015-11-23
    Java实现定时任务的三种方法
    在应用里经常都有用到在后台跑定时任务的需求。举个例子,比如需要在服务后台跑一个定时任务来进行垃圾回收(译者注:个人觉得用定时任务来跑垃圾回收不是很好的例子,从译者...
  • 避免在Java接口中使用数组的3个理由

    2015-11-23
    避免在Java接口中使用数组的3个理由
    如果你发现在一个接口使用有如下定义方法: public String[] getParameters(); 那么你应该认真反思。数组不仅仅老式,而且我们有合理的理由避免暴露它们。在这篇文章中,我将试图总结在...
  • JVM中的Hello World是如何运行的?

    2015-11-22
    每一个Java开发者都是通过Hello World敲开面向对象世界的大门。但是在一开始,我们考虑的只是这个语言是什么样的,我们如何更好的编码,却很少有人关心他内部是怎么运行的。看下面...