摘要:
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不... 阅读全文
随笔档案-2014年07月
【译文】走出Java ClassLoader迷宫 Find a way out of the ClassLoader maze
2014-07-30 11:18 by Loull, 395 阅读, 收藏, 编辑
摘要:
本文是一篇译文。原文:Find a way out of the ClassLoader maze对于类加载器,普通Java应用开发人员不需要了解太多。但对于系统开发人员,正确理解Java的类加载器模型是开发Java系统软件的关键。很久以来,我一直对ClassLoader许多问题感到很模糊,自己也在... 阅读全文
Skpi List跳表
2014-07-27 14:47 by Loull, 255 阅读, 收藏, 编辑
摘要:
为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用... 阅读全文
简单工厂、工厂方法、抽象工厂之小结
2014-07-27 12:14 by Loull, 209 阅读, 收藏, 编辑
摘要:
工厂模式的好处就是为系统结构提供灵活的动态扩展机制.减速少工作量,方便维护,达到跟源代码解耦简单工厂只是把创造对象的代码简单的移到一个专门用来创建对象的类。简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。Class Client { ... 阅读全文
Trie--字典树
2014-07-27 02:24 by Loull, 279 阅读, 收藏, 编辑
摘要:
Trie--字典树在计算机科学中,trie,又称前缀树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的... 阅读全文
最短路径—Dijkstra算法和Floyd算法
2014-07-27 02:22 by Loull, 645 阅读, 收藏, 编辑
摘要:
Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论... 阅读全文
系统模块设计问题集
2014-07-27 02:19 by Loull, 325 阅读, 收藏, 编辑
摘要:
1.淘宝网的秒杀是如何确保数据的准确性和效率的.希望小伙伴们能从前端架构,分布式的数据共享和安全等以及数据库多个层面来讨论下...一定要具体 服务端负载均衡,设置处理上限,比上限多的请求直接抛弃,防止集群down机;数据共享,用内存数据库,根据id,hash到不同的内存数据库,多个机器并发处理。2... 阅读全文
【转】URL短地址压缩算法 微博短地址原理解析 (Java实现)
2014-07-27 01:47 by Loull, 2567 阅读, 收藏, 编辑
摘要:
转自:URL短地址压缩算法 微博短地址原理解析 (Java实现) 最近,项目中需要用到短网址(ShortUrl)的算法,于是在网上搜索一番,发现有C#的算法,有.Net的算法,有PHP的算法,就是没有找到Java版的短网址(ShortUrl)的算法,很是郁闷。同时还发现有不少网友在发帖求助,怎么实... 阅读全文
乐观锁和悲观锁
2014-07-27 01:21 by Loull, 265 阅读, 收藏, 编辑
摘要:
左转:从事务隔离级别谈到Hibernate乐观锁,悲观锁在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:l丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失... 阅读全文
数据库事务
2014-07-27 01:14 by Loull, 218 阅读, 收藏, 编辑
摘要:
先提一下基础知识,数据库事务的4个基本特性:1.Atomic(原子性)事务中包含的操作被看成一个逻辑单元,这个单元要么全部完成,要么全部没做。2.Consistency(一致性)隔离执行事务时(在没有其他事务并发的情况下)保持数据库的一致性。举例说明:A转账给B,那么此事务执行前和执行后A账户和B账... 阅读全文
快速排序
2014-07-26 19:58 by Loull, 252 阅读, 收藏, 编辑
摘要:
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还... 阅读全文
Java的string类为什么是不可变的
2014-07-26 19:16 by Loull, 387 阅读, 收藏, 编辑
摘要:
最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类型?不可变对象,顾名思义就是创建后不可以改变的对象,典型的例子就是Java中的String类。答案一... 阅读全文
Java垃圾回收(java GC)
2014-07-26 14:25 by Loull, 324 阅读, 收藏, 编辑
摘要:
一、GC的阶段对每个对象而言,垃圾回收分为两个阶段:finalization和reclamation。finalization: 指运行这个对象的finalize的方法。reclamation: 回收被这个对象使用的内存。二、GC的过程的基本步骤首先确认对象是不可达的,即将被回收。其次,如果对象有f... 阅读全文
JVM相关文章和GC原理算法
2014-07-26 14:13 by Loull, 228 阅读, 收藏, 编辑
摘要:
参考推荐:Java内存模型及GC原理一个优秀的Java程序员必须了解的GC机制Android 智能指针原理(推荐)Java虚拟机规范Java虚拟机参数Java内存模型Java系列教程(推荐)Java垃圾回收原理(360doc)Java内存模型及GC原理(图解)Java的内存结构和垃圾收集(图解)JD... 阅读全文
【转】JDK5.0中JVM堆模型、GC垃圾收集详细解析
2014-07-26 14:10 by Loull, 211 阅读, 收藏, 编辑
摘要:
基本概念堆/HeapJVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Windows下为2G,而Linux下为3G;64Bit的就没有这个限制。JVM初始分配的内存由-Xms指定,默认是物理内存的1/64但小于1G。JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4但小于1G... 阅读全文
JVM内存模型
2014-07-26 12:07 by Loull, 243 阅读, 收藏, 编辑
摘要:
基于Sun HotSpot JVM直接上图:从图中看到,JVM内存分为两个主要区域,一个是所有线程共享的数据区,一个是线程隔离数据区(线程私有)线程隔离数据区程序计数器(Program Counter Register):一小块内存空间,单前线程所执行的字节码行号指示器。字节码解释器工作时,通过改变... 阅读全文
JDK里的设计模式
2014-07-24 11:35 by Loull, 463 阅读, 收藏, 编辑
摘要:
一、Creational patterns创建模式Abstract factory(recognizeable by creational methods returning the factory itself which in turn can be used to create another... 阅读全文
Java API设计原则清单
2014-07-24 10:19 by Loull, 2245 阅读, 收藏, 编辑
摘要:
在设计Java API的时候总是有很多不同的规范和考量。与任何复杂的事物一样,这项工作往往就是在考验我们思考的缜密程度。就像飞行员起飞前的检查清单,这张清单将帮助软件设计者在设计Java API的过程中回忆起那些明确的或者不明确的规范。本文也可以看作为“API设计指南”这篇文章的附录。我们还准备了一... 阅读全文
TCP的流量控制和拥塞控制
2014-07-22 21:06 by Loull, 467 阅读, 收藏, 编辑
摘要:
TCP的流量控制1. 利用滑动窗口实现流量控制如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。设A向B发送数据。在连接建立时,B告诉了A:“我... 阅读全文
计算机网络基础
2014-07-22 20:23 by Loull, 327 阅读, 收藏, 编辑
摘要:
1、OSI(Open System Interconnect):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP(Transmission Control Protocol/Internet Protocol):传输控制协议/... 阅读全文
hadoop2.2在window7上搭建单节点环境
2014-07-22 17:52 by Loull, 248 阅读, 收藏, 编辑
摘要:
想了解hadoop,所以就下了最新的文件,搭建相关的环境,以下为自己在win7上搭建hadoop的相关步骤。 首先得配置SSH 1、下载hadoop,用winRAR解压。(路径不能有空格) 2、安装java,此处就不做讲解了。(java路径不能有空格) 3、配置hado... 阅读全文
window7下hadoop2.4.1单机模式配置测试
2014-07-22 17:50 by Loull, 561 阅读, 收藏, 编辑
摘要:
第一次:在windows下单机hadoop调试:1、解压hadoop2、下载hadoop-commin-2.2.0.zip后解压,放到hadoop/bin下,重复的不覆盖 由于没找到对应的2.4.1,用这个版本也是可以。3、设置环境变量。 java的环境变量一般已经设置了,就不需要动了。 ... 阅读全文
Java内部类
2014-07-22 11:12 by Loull, 177 阅读, 收藏, 编辑
摘要:
一、在《Think in java》中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。使用内部类还能够为我们带来如下特性(摘自《Think in java》): 1、内部类可以用多个实例,每个... 阅读全文
关于Spring的69个面试问答——终极列表
2014-07-21 23:22 by Loull, 202 阅读, 收藏, 编辑
摘要:
这篇文章总结了一些关于Spring框架的重要问题,这些问题都是你在面试或笔试过程中可能会被问到的。下次你再也不用担心你的面试了,Java Code Geeks这就帮你解答。大多数你可能被问到的问题都列举在下面的列表中了。所有的核心模块,从基础的Spring功能(如Spring Beans)到上层的S... 阅读全文
【转】使用eclipse的todo标签管理任务
2014-07-21 17:36 by Loull, 451 阅读, 收藏, 编辑
摘要:
Eclipse中的一些特殊的注释技术包括: 1. // TODO —— 表示尚未完成的待办事项。 2. // XXX —— 表示被注释的代码虽然实现了功能,但是实现方案有待商榷,希望将来能改进。 3. // FIXME —— 表示被注释的代码需要被修正。 4.自定义标签 window-->... 阅读全文
LinkedHashMap 和 LRU算法实现
2014-07-19 23:42 by Loull, 468 阅读, 收藏, 编辑
摘要:
个人觉得LinkedHashMap 存在的意义就是为了实现 LRU 算法。public class LinkedHashMap extends HashMap implements Map{ public LinkedHashMap(int initialCapacity, ... 阅读全文
eclipse导入hadoop 2.4
2014-07-17 14:23 by Loull, 989 阅读, 收藏, 编辑
摘要:
使用以下命令安装Elicpse插件hadoop-maven-plugins:$ cd ${HADOOP_HOME}/hadoop-maven-plugins$ mvn install然后生成Eclipse工程文件:$ cd ${HADOOP_HOME}$ mvn eclipse:eclipse -D... 阅读全文
XMPP协议介绍
2014-07-08 16:56 by Loull, 741 阅读, 收藏, 编辑
摘要:
一、xmpp协议工作原理二、XMPP地址模式三、xmpp消息格式xmpp xml包括三个元素,message,presence,iq,也翻译做三种节。在'jabber:client'和'jabber:server'名字空间中定义了三种 XML 节: , , 和 . 另外, 这三种节有五种通用的属性.... 阅读全文
【转】线程、Thread类和线程终止
2014-07-04 19:57 by Loull, 2291 阅读, 收藏, 编辑
摘要:
一、线程Thread启动0. Thread类实现了java.lang.Runnable接口,即实现了run方法。虽然在Sun JDK中,start()调用了start0()方法,start0()方法又是native的,但实际上新的线程就是调用了Thread的run()方法,当然这native的实现中... 阅读全文
java.util.concurrent包
2014-07-04 19:34 by Loull, 498 阅读, 收藏, 编辑
摘要:
在JavaSE5中,JUC(java.util.concurrent)包出现了在java.util.concurrent包及其子包中,有了很多好玩的新东西:1、执行器的概念和线程池的实现。Executor、ExecutorService框架 从Executor接口开始,到ExecutorServi... 阅读全文
长连接和心跳包
2014-07-01 19:33 by Loull, 1284 阅读, 收藏, 编辑
摘要:
第一种设置:通过设置socket的keepalive属性#include "/usr/include/linux/tcp.h"#include "/usr/include/linux/socket.h"////KeepAlive实现,单位秒//下面代码要求有ACE,如果没有包含ACE,则请把用到的A... 阅读全文