
Java
文章平均质量分 71
iteye_7202
这个作者很懒,什么都没留下…
展开
-
JVM Internals
This article explains the internal architecture of the Java Virtual Machine (JVM).The following diagram show the key internal components of a typical JVM thatconforms to The Java Virtual Mac...原创 2014-12-05 11:04:26 · 132 阅读 · 0 评论 -
Java内部类的使用小结
内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。 注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内...原创 2014-08-13 21:45:38 · 68 阅读 · 0 评论 -
java sleep和wait的区别和联系
第一种解释:功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步锁. 还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notify()直接唤起.第二种解释:sleep是Thr...原创 2014-08-10 20:46:07 · 163 阅读 · 0 评论 -
java 字节流与字符流的区别
转自:http://blog.youkuaiyun.com/cynhafa/article/details/6882061字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符...原创 2014-08-10 16:34:00 · 74 阅读 · 0 评论 -
java 接口和抽象类的区别
1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。 2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义...原创 2014-08-10 16:15:02 · 67 阅读 · 0 评论 -
java反射机制的作用
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: a)在运行时判断任意一个对象所属的类;b)在运行时构造任意一个类的对象;c)在运行时判断任意一个类所具有的成员变量和方法;...原创 2014-08-10 14:29:29 · 115 阅读 · 0 评论 -
Java内存泄露的理解与解决
转自:http://henryyang.iteye.com/blog/1188328 Java内存管理机制在C++ 语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。 Java 语言对内存管理做了自己的优化,这就是垃圾回收机制。 Jav...原创 2014-08-08 19:58:21 · 80 阅读 · 0 评论 -
Java的内存泄漏
转自: http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/ 问题的提出Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的...原创 2014-08-08 19:36:18 · 75 阅读 · 0 评论 -
HashMap的实现原理
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删...原创 2014-07-23 09:17:11 · 73 阅读 · 0 评论 -
HeadFirst 设计模式 读书笔记
要依赖抽象,不要依赖具体类1. 抽象工厂模式 2. 单例模式 为什么全局变量不能保证只有一个实例? 3. HeadFirst 设计模式 命令模式 P205 public class GarageDoorOpenCommand implements Command { GarageDoor mGarage...2013-02-13 00:47:01 · 113 阅读 · 0 评论 -
java softReference 详解
ListView的ListAdapter的getView方法中, bitmap可以使用SoftReference来重新获取那些尚未被回收的Java对象的引用,必将减少不必要的访问,大大提高程序的运行速度,同时缓解加载过多的图片造成了内存压力。下面是从网上找到的SoftReference的一篇解释的比较详细的文章,学习学习。 转自: http://www.cnblogs.com...原创 2013-02-10 22:19:32 · 182 阅读 · 0 评论 -
Java Classloader机制解析
做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结。因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspot Jvm.本文将会从JDK默认的提供的ClassLoader,双亲委托模型,如何自定义ClassLoader以及Java中打破双亲委托机制的场景四个方面入手去讨论和总结一下。JDK默认Cl...原创 2015-07-14 14:14:47 · 141 阅读 · 0 评论 -
ant编译java报“非法字符: \65279 ”错误的解决方法
这是因为文件的编码是UTF-8 BOM,需要改成UTF-8,有很多方式:1. 使用edit plus 另存为 UTF-8的2. 编程替换文件开始的BOM的标记: http://hy3112.iteye.com/blog/771315...2013-09-11 21:25:53 · 81 阅读 · 0 评论 -
ubuntu下安装jdk 1.6
1.在Oracle官网下载jdk-6u35-linux-i586.bin 2.将该文件修改为可执行文件,如chmod 777 jdk-6u35-linux-i586.bin 3.执行该文件,如sudo ./jdk-6u35-linux-i586.bin 4.安装完毕后,则需配置系统环境 sudo gedit /etc/environment。我的配置如下(绿...原创 2013-07-28 00:14:09 · 77 阅读 · 0 评论 -
什么是java序列化,如何实现java序列化?
Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。序列化就是一种...原创 2013-07-14 19:51:15 · 80 阅读 · 0 评论 -
java 双重加锁及单例模式
单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。它偶尔会失败,而不是总失败。此外,它失败的原因并不明显,还包含 Java 内存模型的一些隐秘细节。这些事实将导致...原创 2014-08-25 18:02:59 · 388 阅读 · 0 评论 -
JAVA多线程和并发基础面试问答
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。...原创 2014-09-01 22:56:37 · 71 阅读 · 0 评论 -
JVM必备指南
本文由 ImportNew - xiafei 翻译自 anturis转自:http://www.importnew.com/13556.html 简介Java虚拟机(JVM)是Java应用的运行环境,从一般意义上来讲,JVM是通过规范来定义的一个虚拟的计算机,被设计用来解释执行从Java源码编译而来的字节码。更通俗地说,JVM是指对这个规范的具体实现。这种实现基于严格的指令集和全...原创 2014-11-01 11:20:26 · 236 阅读 · 0 评论 -
open jdk源码下载地址
OpenJDK 和Oracle JDK 共用了大量相同的代码,在性能、功能和执行逻辑上都和Oracle JDK非常一致,由于 现在Oracle JDK是闭源的,我们可以下载Open JDK的源码来研究,地址是:https://jdk7.java.net/source.html...2014-10-13 23:19:21 · 131 阅读 · 0 评论 -
Java中System.loadLibrary() 的执行过程
转自:http://my.oschina.net/wolfcs/blog/129696 System.loadLibrary()是我们在使用Java的JNI机制时,会用到的一个非常重要的函数,它的作用即是把实现了我们在Java code中声明的native方法的那个libraryload进来,或者load其他什么动态连接库。算是处于好奇吧,我们可以看一下这个方法它的实现,即执行流程。...原创 2014-10-10 11:45:26 · 656 阅读 · 0 评论 -
java 垃圾回收总结
转自:http://www.cnblogs.com/aigongsi/archive/2012/04/06/2434771.html Java与C,C++有很大的不同就是java语言开发者不需要关注内存信息,不会显式的直接操作内存,而是通过JVM虚拟机来实现。Java虚拟机运行的时候内存分配图如下图: JVM虚拟机栈:一个是线程独有的,每次启动一个线程,就创建一个jvm虚...原创 2014-10-03 22:47:22 · 115 阅读 · 0 评论 -
java中volatile关键字的含义
转自:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html 在 java 垃圾回收整理一文中,描述了jvm运行时刻内存的分配。其中有一个内存区域是jvm虚拟机栈,每一个线程运行时都有一个线程栈,线程栈保存了线程运行时候变量值信息。当线程访问某一个对象时候值的时候,首先通过对象的引用找到对应在堆内存的变量的值,然后把...原创 2014-10-03 22:39:31 · 114 阅读 · 0 评论 -
java并发编程-Executor框架
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执行,Execu...原创 2014-10-01 23:40:08 · 92 阅读 · 0 评论 -
Java中ArrayList和LinkedList区别
转自:http://pengcqu.iteye.com/blog/502676 一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 ...原创 2014-09-17 18:48:07 · 77 阅读 · 0 评论 -
深入理解Java内存模型之系列篇
转自:http://blog.youkuaiyun.com/ccit0519/article/details/11241403原文:http://www.infoq.com/cn/articles/java-memory-model-1?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent...原创 2014-09-16 11:16:59 · 84 阅读 · 0 评论 -
Java Thread 总结
转自:http://www.cnblogs.com/DreamSea/archive/2012/01/11/JavaThread.html Ø线程的概述(Introduction)线程是一个程序的多个执行路径,执行调度的单位,依托于进程存在。 线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间也叫做线程栈,是在建立线程时由系统分配的,主要用来保存线程内部所...原创 2014-09-15 22:39:19 · 111 阅读 · 0 评论 -
如何停止一个正在运行的java线程
转自:http://ibruce.info/2013/12/19/how-to-stop-a-java-thread/ 与此问题相关的内容主要涉及三部分:已废弃的Thread.stop()、迷惑的thread.interrupt系列、最佳实践Shared Variable。 已废弃的Thread.stop()@Deprecatedpublic final void s...原创 2014-09-15 22:33:41 · 207 阅读 · 0 评论 -
详解sleep和wait的区别
转自:http://www.cnblogs.com/DreamSea/archive/2012/01/16/2263844.html 有改动 sleep()方法 sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会; sleep()是Thread类的Static(静...原创 2014-09-15 22:16:39 · 93 阅读 · 0 评论 -
Java多线程总结之由synchronized说开去
转自: http://hellosure.iteye.com/blog/1121157 最重要一条: synchronized是针对对象的隐式锁使用的,注意是对象! 举个小例子,该例子没有任何业务含义,只是为了说明synchronized的基本用法: Java代码 Class MyClass(){ synchronized void myFuncti...原创 2014-09-14 13:11:27 · 74 阅读 · 0 评论 -
ThreadLocal的正确用法
用法一:在关联数据类中创建private static ThreadLocalThreaLocal的JDK文档中说明:ThreadLocal instances are typically private static fields in classes that wish to associate state with a thread。如果我们希望通过某个类将状态(例如用户ID、事务...原创 2014-09-13 23:52:19 · 104 阅读 · 0 评论 -
Hashtable与ConcurrentHashMap差别
Hashtable与ConcurrentHashMap区别相同点: Hashtable 和 ConcurrentHashMap都是线程安全的,可以在多线程环境中运行; key跟value都不能是null区别: 两者主要是性能上的差异,Hashtable的所有操作都会锁住整个对象,虽然能够保证线程安全,但是性能较差; ConcurrentHashMap内部使用Segment数组,每个...原创 2014-09-06 00:00:47 · 106 阅读 · 0 评论 -
java之弱引用、软引用、虚引用
Java 2 平台引入了 java.lang.ref 包,其中包括的类可以让您引用对象,而不将它们留在内存中。这些类还提供了与垃圾收集器(garbage collector)之间有限的交互。 1.先“由强到弱”(只的是和垃圾回收器的关系)明确几个基本概念: strong references是那种你通常建立的reference,这个reference就是强可及的。这个不...原创 2013-07-12 15:21:17 · 219 阅读 · 0 评论 -
java.io.StreamCorruptedException解决方案
序列化和反序列化的过程中,我们会用到ObjectOutputStream和ObjectInputStreamObjectOutputStream用于将对象系列化,它可以把一个对象用二进制的方式表示,可以把一个对象通过ObjectInputStream进行还原。这在网络环境下是非常有用的。可以把一个object通过二进制流在网络上进行传播。 通过代码说话吧:ObjectOutpu...原创 2013-07-03 14:52:01 · 2295 阅读 · 0 评论 -
Java中的Object的Wait() 和notify()方法使用时应注意的地方
Wait()和notify():如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。一般用在synchronized机制中。例如:线程A synchronized(obj) { while(!condition) { obj.wait(); ...2013-06-28 16:06:59 · 101 阅读 · 0 评论 -
Java究竟是传值还是传引用
1. 简单类型是按值传递的 Java 方法的参数是简单类型的时候,是按值传递的 (pass by value)。这一点我们可以通过一个简单的例子来说明: public class Test { public static void test(boolean test) {test = ! test; Syste...原创 2010-11-25 10:11:49 · 80 阅读 · 0 评论 -
静态变量
静态变量 静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量, 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 对于自动变量,前面已经介绍它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。 ...原创 2010-11-12 14:26:11 · 92 阅读 · 0 评论 -
java的serialVersionUID
在Java中,软件的兼容性是一个大问题,尤其在使用到对象串行性的时候,那么在某一个对象已经被串行化了,可是这个对象又被修改后重新部署了,那么在这种情况下, 用老软件来读取新文件格式虽然不是什么难事,但是有可能丢失一些信息。 serialVersionUID 来解决这些问题,新增的serialVersionUID必须定义成下面这种形式:static final long serialVers...原创 2011-08-03 18:25:08 · 79 阅读 · 0 评论 -
java的反射机制
使用反射不同于常规的Java编程,其中它与 元数据--描述其它数据的数据协作。Java语言反射接入的特殊类型的原数据是JVM中类和对象的描述。反射使您能够运行时接入广泛的类信息。它甚至使您能够读写字段,调用运行时选择的类的方法。反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接。但反射的某些方面存在一些疑问。在本文中,我将深入讨论为什么...原创 2011-08-02 22:19:45 · 80 阅读 · 0 评论 -
Java的scanf
读入:用Scanner类定义对象进行控制台读入,Scanner类在java.util.*包中Scanner cin=new Scanner(System.in);// 读入while(cin.hasNext()) //等同于!=EOF{ int n; BigInteger m; n=cin.nextInt(); //读入一个int; m...原创 2011-08-02 21:24:04 · 1826 阅读 · 0 评论 -
HashMap,HashTable,HashSet区别
Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同...原创 2011-08-02 20:37:34 · 67 阅读 · 0 评论