随笔分类 - Java
摘要:1. 集合框架图2. HashMap成员构成 HashMap是通过"拉链法"实现的哈希表。它包括几个重要的成员变量:table,size,threshold,loadFactor,modCount。 table是一个Entry[]数组类型,而Entry实际上就是一个单向链表。哈希表的"key-v...
阅读全文
摘要:1. 前期、后期绑定 P9 P150 将一个方法调用同一个方法主体关联起来称为绑定。若在程序执行前(由编译器和连接程序实现)进行绑定叫前期绑定,例如面向过程语言C。 在运行时根据对象的类型进行绑定叫后期绑定。编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体并加以调用。 Java中除了s...
阅读全文
摘要:1. 活跃性危险死锁(最常见)饥饿 当线程由于无法访问它所需的资源而不能继续执行时,就发生了饥饿。引发饥饿最常见资源就是CPU时钟周期。活锁 活锁指的是任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试,失败。 活锁和死锁的区别在于,处于活锁的实体是在不断...
阅读全文
摘要:1. lock (todo)2. 写时复制容器 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。CopyOnWrit...
阅读全文
摘要:1.ConcurrentModificationException在遍历容器的同时修改容器里的成员对象可能会抛出该异常 http://www.blogjava.net/EvanLiu/archive/2008/08/31/224453.html 故在迭代的同时删除容器里的元素要用迭代器的iter....
阅读全文
摘要:1.深入探讨Java类加载器 https://www.ibm.com/developerworks/cn/java/j-lo-classloader/2.Java编程的动态性:类和类装入 https://www.ibm.com/developerworks/cn/java/j-dyn0429/3.J...
阅读全文
摘要:http://www.cnblogs.com/liuxianan/archive/2012/08/04/2623258.html
阅读全文
摘要:http://www.iteye.com/topic/985128
阅读全文
摘要:http://www.baidu.com/link?url=9ms2GJqjJ4zBBpC8yDF8xDh8vibi2lZjCGkIgkoSNd85K5ZrV7MihBV7Ly0n5WKIPFm_0FOqxpZj_6AsOOWP2W0eJD9ZmEoO91m
阅读全文
摘要:Map<String, Integer> map = new HashMap<String, Integer>();map.put("d", 2);map.put("c", 1);map.put("b", 1);map.put("a", 3);List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());/
阅读全文
摘要:很多程序员已经干了一段时间java了依然不明白jdk与jre的区别。JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\jre1.5.0_15 目录下,后面这套比前面那套少
阅读全文
摘要:最近公司里要用JNI技术,用java去调用已经写好的本地DLL库。之前自己也没接触过相关技术,其中花了大部分时间在调试改错上面,网上对于错误的解决方案也不多,现在项目接近完工,自己也该把其中碰到的一些问题进行一下汇总。 1.相关命令: 将包含native函数的java源代码生成JNI的.h头文件: javah -jni com.xxx.test 注意:test是编译后的.class文件,要写完整路径,该命令在com的上层目录下进行。更完整的命令为: javah -classpath . -jni com.xxx.test 注意中间的点号 编写实现上面.h文件的.cpp代码后,...
阅读全文
摘要:有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及Java序列化的算法,我们用一个实例来示范序列化以后的字节是如何描述一个对象的信息的。序列化的必要性Java中,一切都是对象,在分布式环境中经常需要将Object从这一端网络或设备传递到另一端。这就需要有一种可
阅读全文
摘要:Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。 三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,
阅读全文
摘要:动态代理(DynamicProxy):相比前一篇文章所实现的静态代理,动态代理具有更强的灵活性,因为它不用在我们设计实现的时候就指定某一个代理类来代理哪一个被代理对象,我们可以把这种指定延迟到程序运行时由JVM来实现。我们知道,所谓代理,就是需要代理类和被代理类有相同的对外接口或者说成服务,所以代理类一般都必须实现了所有被代理类已实现的接口,因为接口就是制定了一系列对外服务的标准。正因为动态代理有这样灵活的特性,所以我们在设计动态代理类(DynamicProxy)时不用显式地让它实现与真实主题类(RealSubject)相同的接口(interface),而是把这种实现推迟到运行时。为了能让Dy
阅读全文
摘要:代理模式代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种。 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 动态代理:在程序运行时,运用反射机制动态创建而成。首先看一下静态代理: 1、Count.java package
阅读全文


浙公网安备 33010602011771号