java
文章平均质量分 74
venice
这个作者很懒,什么都没留下…
展开
-
java序列化深入研究
1.什么是序列化? 简单的说就是为了保存各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象再读出来的过程。对象序列化就是把对象写入到输出流中,用来存储或传输。 2.序列化都保存了些什么? a.对象的类型。 b.对象属性的类型。 c.对象属性的值。 3.什么情况下需要序列化? a.当你想把对象的状态保原创 2009-07-31 00:09:00 · 717 阅读 · 0 评论 -
java动态代理
代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。静态代理主要是通过继承来实现,若需要多个代理就会生成多个代理类,这样会导致类的急剧增多。动态代理可以解决静态代理的缺陷,可以对任意接口或方法生成任意的代理类,对被代理的对象和接口方法都能灵活的访问控制。 下面我们主要看看jdk原创 2013-03-12 14:53:50 · 889 阅读 · 0 评论 -
java集合类结构图
简化结构图: 有序否允许元素重复否Collection否是 List是是 SetAbstractSet否否HashSetTreeSet是(用二叉原创 2012-03-14 14:29:30 · 1069 阅读 · 0 评论 -
Hashmap的深入理解
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。首先,HashMap类的属性中定义了Entry类型的数组。原创 2012-03-14 17:16:11 · 912 阅读 · 0 评论 -
equals&hashCode的深入解析
提到equals 和== 很多人会习惯性的说,==是比较地址(引用),equals 是比较值。是这样吗?先看下Object类的equals()方法 public boolean equals(Object obj) { return (this == obj); }这里很明显是比较地址(引用)啊,那为什么会有比较内容值这说法呢??因为很多类像String等对原创 2012-03-14 15:41:54 · 654 阅读 · 0 评论 -
Hashtable和Hashmap的区别
关于Hashtable和Hashmap的区别,这个问题在面试中相信大家会经常碰到,这里做下备忘分享下吧。 一、继承关系区别: jdk1.6的源码中这两个类描述如下:public class Hashtableextends Dictionaryimplements Map, Cloneable, Serializablepublic class HashMapextends A原创 2012-03-14 12:45:31 · 859 阅读 · 0 评论 -
java原子操作的线程安全性
java中原子操作是线程安全的论调经常被提到。根据定义,原子操作是不会被打断地的操作,因此被认为是线程安全的。实际上有一些原子操作不一定是线程安全的。这个问题出现的原因是尽量减少在代码中同步关键字。同步会损害性能,虽然这个损失因JVM不同而不同。另外,在现代的JVM中,同步的性能正在逐步提高。尽管如此,使用同步仍然是有性能代价的,并且程序员永远会尽力提高他们的代码的效率,因此这个问题就延续转载 2011-09-07 16:19:45 · 1015 阅读 · 0 评论 -
java线程安全(二)
转:http://www.iteye.com/topic/808550 站内很多人都问我,所谓线程的“工作内存”到底是个什么东西?有的人认为是线程的栈,其实这种理解是不正确的。看看JLS(java语言规范)对线程工作内存的描述,线程的working memory只是cpu转载 2011-09-22 16:30:26 · 672 阅读 · 0 评论 -
java线程安全(一)
转:http://www.iteye.com/topic/806990 浅谈java内存模型 不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个转载 2011-09-22 16:28:40 · 668 阅读 · 0 评论 -
深入理解JVM
1 Java技术与Java虚拟机 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:图1 Ja转载 2011-09-22 13:21:40 · 581 阅读 · 0 评论 -
Volatile & transient
transient 把一个对象的表示转化为字节流的过程称为串行化serialization,从字节流中把对象重建出来称为反串行化deserialization,transient 为不应被串行化的数据提供了一个语言级的标记数据方法。 对象的序列原创 2011-09-07 16:06:22 · 611 阅读 · 0 评论 -
知识补充:抽象方法abstract为什么不能与static、synchronized、native混用
这个问题要从实际的逻辑角度去看的,首先要了解abstract,static,synchronized,native这些关键字干什么用的。abstract是抽象的,指的是方法只有声明而没有实现,它的实现要放入声明该类的子类中实现。static是静态的,是一种属于类而不属于对转载 2011-09-07 16:32:19 · 869 阅读 · 0 评论 -
volatile变量使用指南
简介: Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。 Java 语言中的 volatile转载 2011-09-07 16:26:38 · 543 阅读 · 0 评论 -
java 注解(annotation)
一、概念:注解相当于一种标记,在某一个程序上加了注解就相当于为这部分程序打了标记,该标记用来表示该程序段的特征或形态。我们可以通过javac编译器、开发工具、程序等使用反射机制来处理这些标记,对不同的标记去做一些不同的事。注解可以加在包、类、方法、方法参数、字段、局部变量等上面。二、jdk默认提供注解:在JDK5.0以后默认提供了三个常用的注解类:1)、@Overrid原创 2013-03-25 19:07:12 · 1380 阅读 · 0 评论