Java虚拟机----GC算法和种类
摘要:http://www.cnblogs.com/smyhvae/p/4744233.html
阅读全文
posted @
2017-09-19 16:31
coder为
阅读(133)
推荐(0) 编辑
简析SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue
摘要:转载地址:http://blog.csdn.net/mn11201117/article/details/8671497 SynchronousQueue SynchronousQueue是无界的,是一种无缓冲的等待队列,但是由于该Queue本身的特性,在某次添加元素后必须等待其他线程取走后才能继续
阅读全文
posted @
2017-09-19 08:07
coder为
阅读(324)
推荐(0) 编辑
Java线程池
摘要:原作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本文归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,
阅读全文
posted @
2017-09-19 07:13
coder为
阅读(218)
推荐(0) 编辑
Java动态代理
摘要:在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所
阅读全文
posted @
2017-09-18 23:36
coder为
阅读(219)
推荐(0) 编辑
ConcurrentHashMap
摘要:转载自:http://www.cnblogs.com/ITtangtang/p/3948786.html 总结: 分段锁:将大的HashTable分为不同的segment,每个segment是一个小的Hashtable,就形成了锁分离。 读操作不需要加锁,因为ConcurrentHashMap保证H
阅读全文
posted @
2017-09-18 21:44
coder为
阅读(215)
推荐(0) 编辑
Redis分布式缓存
摘要:1, 背景 使用GemfireCache缓存的话经常出现OOM的问题,因为GemfireCache内嵌在application中,而且有可能不同的application使用的是相同的数据,也就是说相同数据会重复放在好几个GemfireCache中,这对内存是一种浪费,所以需要将缓存从applicat
阅读全文
posted @
2017-09-17 14:08
coder为
阅读(360)
推荐(0) 编辑
Java实现单例模式
摘要:1,单例模式 解法一:只适用于单线程: 解法二:适用于多线程但效率不高 在getInstance()上加synchronized加锁 解法三:改进的多线程单例 不需要整个方法加锁,只需要创建时加锁 解法四(强烈推荐):利用静态构造函数 原理:类成员变量只在类加载时初始化一次。 解法五(强烈推荐):
阅读全文
posted @
2017-09-15 22:52
coder为
阅读(252)
推荐(0) 编辑
Filter拦截器
摘要:Filter执行顺序: GZipFilter应用: web.xml配置
阅读全文
posted @
2017-09-15 21:58
coder为
阅读(186)
推荐(0) 编辑
Web应用部署
摘要:一,WAR文件 建立WAR文件时,就是把整个Web应用结构(去掉Web应用上下文,也就是把WEB-INF之上的一级目录去掉)压缩起来,给定一个.war扩展名,WAR文件名就会成为WEB应用的名字。 当通过把WAR文件放在webapps目录中,在Tomcat中部署Web应用时,Tomcat会解开WAR
阅读全文
posted @
2017-09-15 21:57
coder为
阅读(265)
推荐(0) 编辑
Lua
摘要:http://www.luafaq.org/#T1.10
阅读全文
posted @
2017-09-13 12:55
coder为
阅读(92)
推荐(0) 编辑
Spring MVC 工作原理
摘要:转载自:http://www.cnblogs.com/nizuimeiabc1/p/7147532.html SpringMVC的工作原理图: SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用Handle
阅读全文
posted @
2017-09-13 12:39
coder为
阅读(2675)
推荐(0) 编辑
JSP&Servlet
摘要:一, 容器(container) servelt 没有main()方法,它们受控于另一个Java应用,这个Java应用称为容器(container)。Tomcat就是这样一个容器。Web服务器应用(如Apache)得到一个指向servlet的请求时,服务器不是把这个请求交给servlet本身,而是交
阅读全文
posted @
2017-09-12 20:31
coder为
阅读(356)
推荐(0) 编辑
Spring Bean的生命周期
摘要:转自: http://www.cnblogs.com/zrtqsk/p/3735273.html Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容
阅读全文
posted @
2017-09-12 11:46
coder为
阅读(209)
推荐(0) 编辑
A Speed Guide To Redis Lua Scripting
摘要:https://www.compose.com/articles/a-quick-guide-to-redis-lua-scripting/ What's Lua? Lua is a language which has been around since 1993. Its origins in
阅读全文
posted @
2017-09-12 09:39
coder为
阅读(217)
推荐(0) 编辑
日志那点事儿
摘要:转载自:http://www.cnblogs.com/xing901022/p/4149524.html 首先八卦一下这个日志家族的成员,下面这张图虽然没有包含全部的内容,但是基本也涵盖了日志系统的基本内容,不管怎么说,先记住下面这张图: 通过上面的图,可以简单的理清关系! commons-logg
阅读全文
posted @
2017-09-11 22:28
coder为
阅读(149)
推荐(0) 编辑
java web学习笔记-Servlet篇
摘要:转载自:http://www.cnblogs.com/happyfans/p/4363366.html Servlet基础 1.Servlet概述 JSP的前身就是Servlet。Servlet就是在服务器端运行的一段小程序。一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来
阅读全文
posted @
2017-09-11 21:53
coder为
阅读(563)
推荐(0) 编辑
java web学习笔记-jsp篇
摘要:转载自:http://www.cnblogs.com/happyfans/archive/2015/03/17/4343571.html 1.java web简介 1.1静态页面与动态页面 1.2搭建java web开发环境 jdk1.7+tomcat7.0+MyEclipse10。关于MyEcli
阅读全文
posted @
2017-09-11 21:32
coder为
阅读(386)
推荐(0) 编辑
Session & Cookie
摘要:会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用C
阅读全文
posted @
2017-09-11 14:07
coder为
阅读(190)
推荐(0) 编辑
ThreadLocal
摘要:ThreadLocal 详解 转载自:http://www.cnblogs.com/dolphin0520/p/3920407.html 一.对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadL
阅读全文
posted @
2017-09-11 11:14
coder为
阅读(139)
推荐(0) 编辑
Spring AOP
摘要:转载自:http://www.cnblogs.com/hongwz/p/5764917.html http://www.cnblogs.com/zhaozihan/p/5953063.html AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(
阅读全文
posted @
2017-09-11 09:24
coder为
阅读(266)
推荐(0) 编辑
Spring事务管理
摘要:转载自:https://www.ibm.com/developerworks/cn/education/opensource/os-cn-spring-trans/index.html Spring 事务属性分析 事务管理对于企业应用而言至关重要。它保证了用户的每一次操作都是可靠的,即便出现了异常的
阅读全文
posted @
2017-09-09 17:18
coder为
阅读(157)
推荐(0) 编辑
Spring MVC (二 ) ---- 各种参数绑定方式
摘要:转载自:http://www.cnblogs.com/HD/p/4107674.html SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: 表单代码: 表单中input的name值和Controller的参数变量名保持一致,就能完成数据绑
阅读全文
posted @
2017-09-08 21:32
coder为
阅读(223)
推荐(0) 编辑
Spring MVC(一)
摘要:一、示例 1.首先,导入SpringMVC需要的jar包。 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setting of springmvcDispatcherServlet and configure the mapping--> <ser
阅读全文
posted @
2017-09-08 19:59
coder为
阅读(193)
推荐(0) 编辑
Java垃圾回收机制
摘要:1,什么样的对象是垃圾 在Java中采用可达性分析的方式来确定对象是否会成为可回收对象。基本思想就是Java会有一系列的“GC Roots” 对象作为起始搜索点,如果没有一条路径能从GC Roots到某个Object,那这个Object就是不可达的,但不可达对象不会立马变为可回收对象,而是经过两次标
阅读全文
posted @
2017-09-08 16:40
coder为
阅读(230)
推荐(1) 编辑
Collections.synchronizedList()
摘要:以Collections.synchronizedList(List<T> list)为例来讲一下如何将非线程安全的集合转为线程安全的集合。 Collections.synchronizedList源码如下:(注意这里:静态资源不认识范型,所以需要<T>来声明一下范型) 如果是Collections
阅读全文
posted @
2017-09-08 12:54
coder为
阅读(868)
推荐(0) 编辑
线程池的选择
摘要:高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池? 1)高并发、任务执行时间短的业务,线程池线程数可以设置为CPU核数+1,减少线程上下文的切换 (2)并发不高、任务执行时间长的业务要区分开看: a)假如是业务时间长
阅读全文
posted @
2017-09-07 23:12
coder为
阅读(916)
推荐(0) 编辑
Java内存模型
摘要:1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Jav
阅读全文
posted @
2017-09-07 23:00
coder为
阅读(185)
推荐(0) 编辑
Thread.sleep(0)的作用
摘要:由于Java采用抢占式的线程调度算法,因此可能会出现某条线程常常获取到CPU控制权的情况,为了让某些优先级比较低的线程也能获取到CPU控制权,可以使用Thread.sleep(0)手动触发一次操作系统分配时间片的操作,这也是平衡CPU控制权的一种操作。
阅读全文
posted @
2017-09-07 22:58
coder为
阅读(518)
推荐(0) 编辑
Java中用到的线程调度算法是什么
摘要:抢占式。一个线程用完CPU之后,操作系统会根据线程优先级、线程饥饿情况等数据算出一个总的优先级并分配下一个时间片给某个线程执行。
阅读全文
posted @
2017-09-07 22:57
coder为
阅读(2432)
推荐(0) 编辑
怎么检测一个线程是否持有对象监视器
摘要:Thread.holdsLock(Object obj)方法,当且仅当对象obj的监视器被某条线程持有的时候才会返回true,注意这是一个static方法,这意味着"某条线程"指的是当前线程。
阅读全文
posted @
2017-09-07 22:52
coder为
阅读(1475)
推荐(0) 编辑
为什么要使用线程池
摘要:避免频繁地创建和销毁线程,达到线程对象的重用。另外,使用线程池还可以根据项目灵活地控制并发的数目。
阅读全文
posted @
2017-09-07 22:51
coder为
阅读(237)
推荐(0) 编辑
ThreadLocal
摘要:简单说ThreadLocal就是一种以空间换时间的做法,在每个Thread里面维护了一个以开地址法实现的ThreadLocal.ThreadLocalMap,把数据进行隔离,数据不共享,自然就没有线程安全方面的问题了
阅读全文
posted @
2017-09-07 22:50
coder为
阅读(165)
推荐(0) 编辑
生产者消费者模型的作用
摘要:1)通过平衡生产者的生产能力和消费者的消费能力来提升整个系统的运行效率,这是生产者消费者模型最重要的作用 (2)解耦,这是生产者消费者模型附带的作用,解耦意味着生产者和消费者之间的联系少,联系越少越可以独自发展而不需要收到相互的制约
阅读全文
posted @
2017-09-07 22:49
coder为
阅读(1280)
推荐(1) 编辑
线程间通信
摘要:通过在线程之间共享对象就可以了,然后通过wait/notify/notifyAll、await/signal/signalAll进行唤起和等待,比方说阻塞队列BlockingQueue就是为线程之间共享数据而设计的 线程的通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种
阅读全文
posted @
2017-09-07 22:48
coder为
阅读(165)
推荐(0) 编辑
线程安全
摘要:如果你的代码在多线程下执行和在单线程下执行永远都能获得一样的结果,那么你的代码就是线程安全的。 这个问题有值得一提的地方,就是线程安全也是有几个级别的: (1)不可变 像String、Integer、Long这些,都是final类型的类,任何一个线程都改变不了它们的值,要改变除非新创建一个,因此这些
阅读全文
posted @
2017-09-07 22:45
coder为
阅读(139)
推荐(0) 编辑
volatile关键字作用
摘要:(1)保证可见性:多线程主要围绕可见性和原子性两个特性而展开,使用volatile关键字修饰的变量,保证了其在多线程之间的可见性,即每次读取到volatile变量,一定是最新的数据。 当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取
阅读全文
posted @
2017-09-07 22:24
coder为
阅读(222)
推荐(0) 编辑
CyclicBarrier&CountDownLatch&Semaphore
摘要:CyclicBarrier示例: 每调用一次barrier.await(), barrier的counter就减一,直到减到0,线程执行。所以CyclicBarrier的作用就是使一组线程一起到达某个点的时候同时执行。 CountDownLatch示例: 只有CountDownLatch减到0,线程
阅读全文
posted @
2017-09-07 22:20
coder为
阅读(110)
推荐(0) 编辑
Callable、Future和FutureTask浅析
摘要:我们知道创建线程的方式有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,那如果我们想要获取返回结果该如何实现呢?还记上一篇Executor框架结构中提到的Callable接口和Future接口吗?,是的,从JAVA
阅读全文
posted @
2017-09-07 22:08
coder为
阅读(216)
推荐(0) 编辑
Unsafe与CAS
摘要:Unsafe 简单讲一下这个类。Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JVM还是开了一个后门,JDK中有一个类Unsafe,它提供了硬件级别的原子操作。 这个类尽管里面的方法都是public的,但是并没有办法使用它们,JDK API文档也没有提供任何
阅读全文
接口和抽象类的区别
摘要:1、接口和抽象类的概念是不一样的。接口是对动作的抽象,表示的是这个对象能做什么,比如人可以吃东西、狗也可以吃东西,只要有相同的行为;抽象类是对根源的抽象,表示的是这个对象是什么,比如男人是人、女人也是人 2、可以实现多个接口,只能继承一个抽象类 3、接口中只能定义抽象方法,抽象类中可以有普通方法 4
阅读全文
posted @
2017-09-07 21:49
coder为
阅读(172)
推荐(0) 编辑
内部类
摘要:内部类 最后一个语法糖,讲讲内部类,内部类指的就是在一个类的内部再定义一个类。 内部类之所以也是语法糖,是因为它仅仅是一个编译时的概念,outer.java里面定义了一个内部类inner,一旦编译成功,就会生成两个完全不同的.class文件了,分别是outer.class和outer$inner.c
阅读全文
posted @
2017-09-07 20:48
coder为
阅读(165)
推荐(0) 编辑
泛型
摘要:泛型初探 在泛型(Generic type或Generics)出现之前,是这么写代码的: 当然这是完全允许的,因为List里面的内容是Object类型的,自然任何对象类型都可以放入、都可以取出,但是这么写会有两个问题: 1、当一个对象放入集合时,集合不会记住此对象的类型,当再次从集合中取出此对象时,
阅读全文
posted @
2017-09-07 20:15
coder为
阅读(134)
推荐(0) 编辑
自动装箱和自动拆箱
摘要:http://www.cnblogs.com/xrq730/p/4869065.html 自动拆箱和自动装箱 Java为每种基本数据类型都提供了对应的包装器类型。举个例子: 这个过程中会自动根据数值创建对应的Integer对象,这就是自动装箱。再看另外一段代码: 这个过程中会根据包装器类型自动将数据
阅读全文
posted @
2017-09-07 19:54
coder为
阅读(864)
推荐(0) 编辑
foreach循环原理
摘要:转载自:http://www.cnblogs.com/xrq730/p/4868465.html 以前对foreach循环就是这么用着,触动我去研究foreach循环的原理的原因是大概两个月前,自己写了一个ArrayList,想用foreach循环遍历一下看一下写的效果,结果报了空指针异常。本文就写
阅读全文
posted @
2017-09-07 19:49
coder为
阅读(752)
推荐(0) 编辑
可变长度参数
摘要:可变长度参数 先讲可变长度参数,看一段代码: print方法的参数的意思是表示传入的String个数是不定的,看一下代码的运行结果: 我用数组遍历的方式成功地将输入的参数遍历出来了,这说明两个问题: 1、可以使用遍历数组的方式去遍历可变参数 2、可变参数是利用数组实现的 既然这样,那我其实main函
阅读全文
posted @
2017-09-07 19:45
coder为
阅读(432)
推荐(0) 编辑
反射
摘要:反射的作用 Java反射描述的是,在运行状态中: 1、对于任意一个类,都能够知道这个类的所有属性和方法 2、对于任意一个类,都能够调用它的任意一个属性和方法 之所以强调属性、方法,是因为属性、方法是开发者对于一个类最关注的两个部分。实际上通过反射,不仅仅可以获知类的属性、方法,还可以获知类的父类、接
阅读全文
posted @
2017-09-07 19:44
coder为
阅读(187)
推荐(0) 编辑
Cloneable接口和Object的clone()方法
摘要:转载自: http://www.cnblogs.com/xrq730/p/4858937.html 为什么要克隆 为什么要使用克隆,这其实反映的是一个很现实的问题,假如我们有一个对象: 现在我写一段程序: 运行结果其实很明显: Java底层使用C/C++实现的,"="这个运算符,如果左右两边都是对象
阅读全文
posted @
2017-09-07 19:34
coder为
阅读(278)
推荐(0) 编辑
Comparable和Comparator的区别
摘要:转载自:http://www.cnblogs.com/xrq730/p/4850140.html Comparable Comparable是一个内比较器,Comparable接口的实现类有一个特点:这些类可以与自己比较。如果要和另一个实现了Comparable接口的类比较就需要实现compareT
阅读全文
posted @
2017-09-07 17:46
coder为
阅读(278)
推荐(0) 编辑
自定义类加载器
摘要:转载自:http://www.cnblogs.com/xrq730/p/4847337.html 为什么要自定义类加载器
阅读全文
posted @
2017-09-07 16:58
coder为
阅读(93)
推荐(0) 编辑
HashCode的作用
摘要:Hash 先用一张图看下什么是Hash Hash是散列的意思,就是把任意长度的输入,通过散列算法变换成固定长度的输出,该输出就是散列值。关于散列值,有以下几个关键结论: 1、如果散列表中存在和散列原始输入K相等的记录,那么K必定在f(K)的存储位置上 2、不同关键字经过散列算法变换后可能得到同一个散
阅读全文
posted @
2017-09-07 16:55
coder为
阅读(332)
推荐(0) 编辑
String/StringBuilder/StringBuffer
摘要:结果:true 结果:false 原因: 在JVM中有一块区域叫常量池,常量池中的数据是那些在编译期间被确定,并被保存在已编译的.class文件中的一些数据。除了包含所有的8种基本数据类型(char, byte, short, int, long, float, double, boolean)外,
阅读全文
posted @
2017-09-07 16:22
coder为
阅读(154)
推荐(0) 编辑
Java对象XML化
摘要:http://www.cnblogs.com/xrq730/p/4823684.html
阅读全文
posted @
2017-09-07 16:11
coder为
阅读(135)
推荐(0) 编辑
Java对象序列化(pass)
摘要:转载自:http://www.cnblogs.com/xrq730/p/4821958.html IO操作或网络通信无法直接处理Java对象,必须将对象以某种方式表示出来,才能被IO或网络通信识别。 序列化:将一个对象转成二进制表示的字节数组,通过保存或转移这些字节数组来持久化。 反序列化:将二进制
阅读全文
posted @
2017-09-07 13:12
coder为
阅读(704)
推荐(0) 编辑
static关键字(pass)
摘要:静态变量和静态方法 静态方法和静态变量都是类的静态资源,是类实例之间共享的。静态资源是类初始化的时候加载的,而非静态资源是实例初始化也就是new一个对象的时候加载的。所以: 静态块 静态块和静态变量/静态方法一样,也是在类初始化的时候执行,且只执行一次。静态块有三个需要注意的地方: 示例1: 结果:
阅读全文
posted @
2017-09-07 09:07
coder为
阅读(181)
推荐(0) 编辑
《Java并发编程实战》----(八)线程池的使用
摘要:1,线程饥饿死锁 在线程池中,如果任务依赖于其他任务,那么可能产生死锁。在单线程的Executor中,如果一个任务将另一个任务提交到同一个Executor,并且等待这个被提交任务的结果,那么通常会引发死锁。第二个任务停留在工作队列中,等待第一个任务完成,而第一个任务又无法完成,因为它在等待第二个任务
阅读全文
posted @
2017-09-06 23:23
coder为
阅读(234)
推荐(0) 编辑
JSP&Servlet
摘要:Web服务器接收客户请求,然后向客户返回一些结果。 Web客户允许用户请求服务器上的某个资源,并向用户显示请求的结果。 HTTP是Web客户和服务器之间通信所用的协议。 服务器使用HTTP向客户发送HTML。 内容类型response首部的值称为 MIME 类型。MIME类型告诉浏览器要接收的数据是
阅读全文
posted @
2017-09-05 23:22
coder为
阅读(136)
推荐(0) 编辑
Java高级特性系列--锁机制
摘要:Lock与ReentrantLock 尽管synchronized在语法上已经足够简单了,在JDK 5之前只能借助此实现,但是由于是独占锁,性能却不高,因此JDK 5以后就开始借助于JNI来完成更高级的锁实现。JDK 5中的锁是接口java.util.concurrent.locks.Lock。另外
阅读全文
posted @
2017-09-05 19:13
coder为
阅读(450)
推荐(0) 编辑
白话经典算法系列之一 冒泡排序的三种实现
摘要:转载自:http://www.cnblogs.com/morewindows/archive/2011/08/06/2129603.html 冒泡排序是非常容易理解和实现,以从小到大排序举例: 设数组长度为N。 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 2.这样对数
阅读全文
posted @
2017-09-05 17:16
coder为
阅读(157)
推荐(0) 编辑
算法复杂度
摘要:一,时间复杂度 通常我们也不需要知道T(n)的确切大小,而只需要对其上界作出估计。比如说,如果存在正常数a、N 和一个函数f(n),使得对于任何n > N,都有 T(n) < a × f(n)我们就可以认为在n 足够大之后,f(n)给出了T(n)的一个上界。对于这种情况,我们记之为T(n) = O(
阅读全文
posted @
2017-09-05 16:56
coder为
阅读(545)
推荐(0) 编辑
Java高级特性系列--Concurrent
摘要:转载自 http://www.cnblogs.com/skywang12345/p/java_threads_category.html JUC:java.util.concurrent 一,JUC原子类 根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。 1. 基本类型: Atomic
阅读全文
posted @
2017-09-03 18:17
coder为
阅读(219)
推荐(0) 编辑
Java高级特性系列--多线程基础
摘要:转载自:http://www.cnblogs.com/skywang12345/p/3479202.html 进程:受操作系统管理的基本运行单元。360浏览器是一个进程,正在操作系统中运行的.exe都可以理解为一个进程。 线程:进程中独立运行的子任务就是线程。像QQ.exe运行的时候就有很多子任务在
阅读全文
posted @
2017-09-02 19:12
coder为
阅读(582)
推荐(0) 编辑
Iterator的fail-fast机制
摘要:原文地址: http://www.cnblogs.com/skywang12345/p/3308762.html 1 fail-fast简介 fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例
阅读全文
posted @
2017-09-01 17:32
coder为
阅读(340)
推荐(0) 编辑
Hashtable拉链法
摘要:哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,有点类似于数组,并且能在O(1)(冲突情况另算)下查找到元素。 比如:有一组数据包括用户名字、电话、住址等,为了快速的检索,我们可以利用名字作为关键
阅读全文
posted @
2017-09-01 16:43
coder为
阅读(368)
推荐(0) 编辑