![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
随风snail_dream
rgdgdfgdg
展开
-
Java容器之ArrayList、LinkedList和Vector
ArrayList拥有顺序表结构,因此其便于查询,而在插入和删除方面的效率却比较低。因为当你在ArrayList某个索引位置上插入或删除数据时,该位置之后的所有数据都将发生位移,所以效率比较低下。如果需要大量的插入和删除操作,建议使用LinkList。 ArrayList又称为动态数组,因为它能够动态增加或减少元素。就比如当你在往ArrayList这个集合类型中插入元素时,如果元素的数目原创 2014-02-27 20:59:58 · 828 阅读 · 0 评论 -
Java容器之HashMap
HashMap的存储结构是数组和链式的结合体,当你使用HashMap默认构造函数初始化HashMap时,它会创建一个长度为16的数组,该数组中存放的是Entry,也可以说是键值对。必须说一点的是,数组的长度一定是2的n次方,即使你指定了数组的长度,如果长度不是2的N次方那么HahsMap也会自动将其扩大到2的n次方,因为这个在后面查找,插入与删除中起到了很关键的作用。 当使用HashMa原创 2014-02-28 20:58:28 · 633 阅读 · 0 评论 -
HashMap与HahsTable的区别
HashTable是继承了旧类Dictionary,而HashMap是Java1.2引进对Map接口的实现; HashTable是同步的,线程安全的,而HashMap是异步的非线程安全的; HashTable中不可以放入Null,而HashMap中可以放入key为Null或value为Null的元素,不过HashMap只保存一个key为Null的元素,而却能保存多个value为原创 2014-03-01 17:09:12 · 721 阅读 · 0 评论 -
HashSet不能存放相同元素的原因
我想Hashset集合不能存放相同的元素这个道理很多人都懂,但HashSet是怎么实现这条规则的呢?起初我也不明白,后来看了HashSet的源码才搞清楚了原因,原因如下: HashSet内部封装了一个HashMap,HashSet许多方法都是调用HashMap来实现的,而HashSet的add(E e)方法则引用了HashMap的put(Kkey,V value),源码如下:原创 2014-03-01 20:08:53 · 822 阅读 · 0 评论 -
浅析Java中的Logger
Logger是用来记录系统或应用程序组件的日志信息,一般使用圆点分隔符的层次命名空间来命名的,但是他们一般应该基于被记录组件的包名或类名,此外还可以创建“匿名”的Logger,其名字为存放在Logger的命名空间。Logger通过getLogger()工厂来创建Logger或者获取一个合适的已有的Logger。Logger中包含了7个级别从高向低依次为server,warning,info,con原创 2014-03-02 22:42:06 · 946 阅读 · 0 评论 -
NIO与IO的区别
传统的IO是已流的方式进行数据的传输,在每次建立连接时都需要建立一个线程来接收和发送数据,而且在等待连接或者读写过程会出现阻塞,这个时候就会导致进程频繁的无意义的上下文切换。 NIO相对于IO引用了Buffer和Chanel等等重要数据类型抽象,Buffer就是连续的内存块,用来读或写的中转站;Chanel是数据传输的源头或目的地,可以向其读取或写入数据。NIO是基于块的方式进行数据的传原创 2014-03-05 21:36:03 · 559 阅读 · 0 评论 -
浅析Java的垃圾回收机制
在C/C++中使用完内存空间之后都要手动进行清除释放内存空间,如果没有及时释放内存空间,可能回导致内存溢出或“引用悬空”(dangling references),而Java拥有一套完善的自动垃圾回收机制,避免了上述问题的发生。两种常用的办法是引用计数和对象引用遍历 引用计数收集器 早期的JVM垃圾回收机制中使用引用计数收集器来对垃圾进行回收。在这种方法中,JVM为每个对象设置原创 2014-03-06 22:16:37 · 718 阅读 · 0 评论