java
文章平均质量分 62
Super_Anna
这个作者很懒,什么都没留下…
展开
-
Iterater
Iterater和ListIterator之间有什么区别? (1)我们可以使用Iterator来遍历Set和List集合,而ListIterator只能遍历List。 (2)Iterator只可以向前遍历,而LIstIterator可以双向遍历。 (3)ListIterator从Iterator接口继承,然后添加了一些额外的功能,比如添加一个元素、替换一个元素、获取前面或后面元素的索引位置。原创 2016-08-26 15:52:30 · 531 阅读 · 0 评论 -
Comparator与Comparable的异同
相同点它们都是Java的一个接口,都是用来实现集合中元素的比较、排序。不同 Comparator位于java.util下; Comparable位于java.lang下;总结两种方法各有优劣, 用Comparable 简单, 只要实现Comparable 接口的对象直接就成为一个可以比较的对象, 但是需要修改源代码, 用Comparator 的好处是不需要修改源代码, 而是另外实现一个比较转载 2016-08-23 00:06:07 · 250 阅读 · 0 评论 -
List 源码解析
ListArrayList和LinkedList都继承自abstractList 都是线程不安全的。abstractList 提供checkForComodification方法(next,add,remove方法中都有调用此方法),在单线程中,遍历的时候删除List(for循环和增强for循环都不是正确做法,迭代器遍历才是正确的,博客后面有例子声明)。当两个线程有冲突时,(当一个线程使用迭代器遍原创 2016-08-22 17:01:49 · 605 阅读 · 0 评论 -
java四种引用类型
⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。 ps:强引用其实也就是我们平时A a = new A()这个意思。⑵软引用(SoftReference) 如果一个对象只具有软引转载 2016-08-31 22:28:11 · 289 阅读 · 0 评论 -
synchornized reentrant lock
synchornized reentrant lock原创 2016-08-21 18:11:49 · 430 阅读 · 0 评论 -
java 装箱拆箱
装箱就是 自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。 下表是基本数据类型对应的包装器类型:int(4字节) Integerbyte(1字节) Byteshort(2字节) Shortlong(8字节) Longfloat(4字节) Floatdouble(8字节) Doublechar(2字节) Characterboo原创 2016-08-27 16:00:31 · 485 阅读 · 0 评论 -
小题目
java 面试题抽象类和接口的区别 抽象类中可以有普通成员变量,接口中没有普通成员变量。抽象类和接口中都可以包含静态成员常量。一个类可以实现多个接口,但只能继承一个抽象类抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。1.抽象类可以有构造方法,接口中不能有构造方法。 2.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象原创 2016-08-26 16:17:33 · 681 阅读 · 0 评论 -
map源码解析
HashMap数据结构:由hash表构成 源码解析 filed table:数组结构元素由hash值区分; entrySet:每个数组元素所存的链表(key,value,hash,next) size:table长度 loadFactor:负载因子 (也是构造函数的参数),根据该变量得到阈值,进行翻倍扩容 threshold: 扩容的阈值,一般为容量*负载因子 modCount:根原创 2016-08-22 18:07:59 · 520 阅读 · 0 评论 -
Spring管理filter
Spring管理filter在使用spring容器的web应用中,业务对象间的依赖关系都可以用context.xml文件来配置,并且由spring容器来负责依赖对象 的创建。如果要在filter或者servlet中使用spring容器管理业务对象,通常需要使用WebApplicationContextUtils.getRequiredWebApplicationContext(g原创 2016-07-18 00:32:07 · 432 阅读 · 0 评论 -
metaq
metaq 笔记MetaQ是一款分布式、队列模型的消息中间件1.metaq的特点支持严格的消息顺序 支持Topic与Queue两种模式 亿级消息堆积能力 比较友好的分布式特性 同时支持Push与Pull方式消费消息2.几个概念Producer 产生消息,发送(push)到metaq服务器中。 (ProducerGroup 生产者集群,一组group下的生产者生产一类信息,相同发送逻原创 2016-07-06 13:04:49 · 4312 阅读 · 2 评论 -
JVM java类的装载、链接、初始化
.java文件经过最初的编译成为.class字节码,成为机器识别的二进制语言。 .class文件由JVM解释成所对应不同的硬件平台操作系统能够执行的代码。 (编译器是与平台无关,编译生成的中间码也与平台无关(一次编译,到处运行),中间码再由解释器解释执行,解释器是与平台相关的,也就是不同的平台需要不同的解释器.java程序也通过运行在不同jvm上实现跨平台)解释有以下的三个步骤装载:通过cl原创 2016-07-10 15:43:31 · 1384 阅读 · 0 评论 -
autoConfig
很多框架支持在运行时刻替换配置文件中的placeholder占位符。 Webx,Spring,log4j 就有这个功能。但他们支持占位符替换的配置不同。Webx通过中心配置服务器(Config Sever),Spring通过PropertyPlaceholderConfigurer类来配置,而Log4j则需要在DomConfigurator中把参数传进去。着重说下 Webx 的 auto-confi原创 2016-07-04 21:02:56 · 781 阅读 · 0 评论 -
jdk jre java虚拟机 GCjava回收机制
jdk 和jrejdk (Java Development Kit) java开发工具包,包含jre,java开发工具(java编译器,调试器),java的一些类库。 jdk的文件夹下包含jre,jre下的bin 可以认为就是bin,lib是jvm工作时所需要的类库。jre(java runtime environment) 是java程序的运行环境,j原创 2016-07-26 00:44:55 · 488 阅读 · 0 评论 -
Java中普通代码块,构造代码块,静态代码块区别及代码示例
//执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。//使用helloB类时 1 开始进行类装载的初始化步骤(先初始化父类,再初始化子类(初始化执行static静态代码块,执行一次) //2 普通代码块(在方法中出现的{}的称为普通代码块 ) 同语句一样,按顺序执行代码块和语句. //3 new对象的时候 调用构造代码块(接在类中定义且没有加static关键字原创 2016-08-26 16:08:33 · 499 阅读 · 0 评论