java
全能码农-ss
这个作者很懒,什么都没留下…
展开
-
Java GC基本算法
1、引用计数(reference counting) 原理:此对象有一个引用,则+1;删除一个引用,则-1。只用收集计数为0的对象。 缺点:无法处理循环引用的问题。如:对象A和B分别有字段b、a,令A.b=B和B.a=A,除此之外这2个对象再无任何引用,那实际上这2个对象已经不可能再被访问,但是引用计数算法却无法回收他们。 2、复制(copy转载 2014-12-30 11:08:26 · 435 阅读 · 0 评论 -
Java slf4j使用
1 实例化private static final Logger logger = LoggerFactory.getLogger(Test.class);2 输出logger.debug(“debug”);//不需要如下这样if(logger.isDebugEnable()){//TODO ...}3 打印3 字符串拼接logger.debug("Pro原创 2015-04-16 13:41:39 · 774 阅读 · 0 评论 -
Java LinkedList 实现原理及数据接口
1 链表数据结构,整理自网络:图为单项链表单向链表:每个对象分左右两部分.左边是值,右边是下一个对象的引用双向链表:每个对象左边是上一个结点的引用,中间是值,右边是下一个对象的引用循环链表:和单项链表唯一的区别的首尾相连. 查询慢,得一个一个挨帮查,增删快数组->查询快,因为可以按下表查询.增删慢,因为删除中间的之后,后边的index还得挨个转载 2015-04-08 14:16:49 · 1881 阅读 · 0 评论 -
Java 动态代理和CGlib
JDK的动态代理机制只能代理实现了接口的类,而不能实现接口的类就不能实现JDK的动态代理,cglib是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。2.1 简单应用//step1 需要cglib-2.1.3.jar和asm.jarimport java.lang.reflect.Method;原创 2015-04-08 11:26:33 · 537 阅读 · 0 评论 -
Java Ant一例
<javac srcdir="${src.dir}" destdir="${build.dir}/WEB-INF/classes" encoding="GBK" includeantruntime="on"> <copy file="${config.dir}/${resourceFile}" tofile="${build.dir}/WEB-INF/c原创 2015-04-08 11:25:01 · 386 阅读 · 0 评论 -
Java 取模 取余
转自:http://blog.csdn.net/wanlixingzhe/article/details/7359809取余是一个比较常见的运算,在各种编程语言中均有相应的运算符(Java/C的%, Pascal/Delphi的mod等等) Java取余运算符 (%) 一个表达式的值除以另一个表达式的值,返回余数。 result = number1 % number2转载 2015-04-07 11:15:10 · 2323 阅读 · 0 评论 -
Java HashSet 实现原理及数据结构
转自:深入Java集合学习系列:HashSet的实现原理1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。HashSet中不允许有重复元素,这是因为HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的ke转载 2015-04-08 15:01:10 · 1368 阅读 · 0 评论 -
Java HashMap 实现原理及数据结构
转自:深入Java集合学习系列:HashMap的实现原理参考文献引用文献:深入Java集合学习系列:HashMap的实现原理,大部分参考这篇博客,只对其中进行稍微修改自己曾经写过的:Hashmap实现原理1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hasht转载 2015-04-08 14:56:01 · 1489 阅读 · 0 评论 -
Java concurrent常用实例
转自: java的concurrent用法详解我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性转载 2015-04-13 16:33:02 · 880 阅读 · 1 评论 -
Java MINA工作原理
转自 :Mina工作原理分析Mina是Apache社区维护的一个开源的高性能IO框架,在业界内久经考验,广为使用。Mina与后来兴起的高性能IO新贵Netty一样,都是韩国人Trustin Lee的大作,二者的设计理念是极为相似的。在作为一个强大的开发工具的同时,这两个框架的优雅设计和不俗的表现,有很多地方是值得学习和借鉴的。本文将从Mina工作原理的角度出发,对其结构进行分析。转载 2015-04-13 16:27:14 · 2845 阅读 · 0 评论 -
Java HashMap实现原理分析
转自:http://blog.csdn.net/vking_wang/article/details/141665931. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入转载 2015-04-07 11:47:12 · 429 阅读 · 0 评论 -
Java GC的工作原理
JVM学习笔记之JVM内存管理和JVM垃圾回收的概念,JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,另外JVM分别对新生代和旧生代采用不同的垃圾回收机制。AD:WOT2015 互联网运维与开发者大会 热销抢票JVM学习笔记之JVM内存管理和JVM垃圾回收的概念,JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,另外JVM分别对新生代和旧生代采用不转载 2014-12-30 10:53:00 · 430 阅读 · 0 评论 -
java Volatile 和 Transient
Volatile Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。这样当多个线程同时与某转载 2015-04-03 14:59:25 · 433 阅读 · 0 评论