- 博客(15)
- 资源 (14)
- 收藏
- 关注
原创 Java容器——ArrayList VS LinkedList(Java8) 性能比较
ArrayList和LinkedList都继承自List, 内在实现机制有所不同,关于区别方面已经有很多优秀的文章进行了介绍。本文从实践角度出发,对比两种List在不同操作中的性能,便于读者在特定场景中参考选型。由于电脑配置,JDK版本,IDE等会导致测试结果又出入甚至有结论不太一致的结果,本文的试验结果仅具备一定的参考价值。 一 插入数据以同样的方式向两种List中插入数据,首先插...
2018-05-30 23:51:46 589
原创 深入JVM垃圾回收——垃圾回收算法
目录前言垃圾产生垃圾定位引用计数可达分析垃圾回收标记-清除算法复制清除算法标记-整理算法算法对比前言Java虚拟机规范中提到:"Java堆中存储的对象由自动内存管理系统(垃圾回收器)负责收集,不可以被显式销毁"。这一规定描述了Java作为静态语言有别于C/C++的一大特色:自动管理和回收堆中内存,无需开发者手动触发。这既是Java语言的一大优点,让开...
2019-03-11 22:18:48 187
原创 Java容器——HashSet(Java8)源码解析
HashSet是一种元素集合,实现了Set接口,是一种快速的,去重的集合对象,继承关系见图1所示。 图1 HashSet继承关系图HashSet继承自Set接口,继承Set的还包括TreeSet,SortedSet等,他们都...
2019-01-12 16:36:19 227
原创 Java容器——HashMap(Java8)源码解析(二)
在前文中介绍了HashMap中的重要元素,现在万事俱备,需要刨根问底看看实现了。HashMap的增删改查,都离不开元素查找。查找分两部分,一是确定元素在table中的下标,二是确定以指定下标元素为首的具体位置。可以抽象理解为二维数组,第一个通过哈希函数得来,第二个下标则是链表或红黑树来得到,下面分别来说。一 哈希函数说到HashMap,最值得引起注意的自然是接近常数级别的操作速度,大家也都...
2018-12-16 15:47:31 239
原创 Java容器——HashMap(Java8)源码解析(一)
一 概述HashMap是最常用的Java数据结构之一,是一个具有常数级别的存取速率的高效容器。相对于List,Set等,结构相对复杂,本篇我们先对HashMap的做一个基本说明,对组成元素和构造方法进行介绍。二 继承关系首先看HashMap的继承关系,比较简单,实现了Map和序列化等。 ...
2018-12-16 15:47:23 294
原创 JAVA容器——Stack(JAVA8) 源码解析
一 栈简介 栈是一种常用的线性抽象数据结构,在计算机中应用极为广泛。栈有两个为人熟知的特性,一是进出栈的顺序是先进后出(FILO),即最先进栈的数据最后出栈,当然相对的也有后进先出(LIFO),最后进栈的数据先出栈。另一个是支持两个通用操作:Push:将元素推进栈;Pull:从栈中取出数据。 栈的操作演示见下图,这里需要注意的是1的位置对应的是栈底,后面再Push的元素...
2018-11-21 20:10:16 286
原创 Java容器——Hashtable(Java8)源码解析
Hashtable是一种键值对型Java存储容器,自JDK1.0沿用至今。经常有将Hashtable和HashMap进行比较的例子和文章,实际上早期二者的实现原理基本一致,而HashTable的操作方法都进行了加锁,因而线程安全。本文从源码角度介绍HashTable的实现。 一 组成元素 1 关键变量 /** * Hashtable bucket...
2018-10-29 20:37:17 199
原创 Java容器——ArrayList(Java8 )源码解析
ArrayList是一种常用List类型实现,也是Java集合中的的常用类型,以遍历查询性能优异著称,继承关系如下: 可见ArrayList实现了Cloneable,Serializable,RandomAcess和List接口,继承了AbstractList抽象类,简而言之,ArrayList是一个实现了可复制,可序列化,支持快速随机访问的List类型。这里最重要的是实现了...
2018-10-29 20:35:51 419
原创 Java容器——LinkedList(Java8 )源码解析
LinkedList继承自List,是一种常用的容器。虽然同为ArrayList和LinkedList同为List,但二者的实现方式完全不同,导致二者的性能和使用场景都有较大的不同,本文将从源码角度解析LinkedList。 LinkedList的类图关系如上图所示。简而言之,LinkedList是实现了可复制,可序列化的一种双向链表。虽然它同时实现了List和Deq...
2018-10-29 20:35:36 204
原创 Java容器——Vector(Java8)源码解析
Vector是Java早期实现的容器,自JDK1.0就存在。目前在日常使用中逐渐被ArrayList或同步的ConcurrentLinkedQueue等代替,不过在早期的代码中和类库中,仍经常能见到Vector,因此有必要对其的组成和原理进行基本的了解。 Vector的继承关系如上图所示,可以看到,Vector和ArrayList的继承关系完全一致(可参考笔者先前的文章...
2018-10-29 20:35:03 307
原创 Android Studio 导入OSChina客户端
从github上down下来OSChina的Android源码,感觉是一个很好的学习的参考,导入eclipse很方便,问题是导入Android Studio出了问题,记录一下,积累点小经验~
2015-06-04 14:09:46 946
原创 Android Studio导入gradle项目问题解决
放弃了eclipse转投Android Studio,发现原来的import project 都变得麻烦了许多,记录一下导入一个项目遇到的各种坑,可能以后还会遇到,也可以为他人作个参考。 工欲善其事必先利其器,Java环境变量,gradle安装、环境变量配置是必须的。在DevStore上看到实现EditText输入文字之后格式正确性认证功能 http://www.dev
2015-06-02 12:04:08 3489
转载 转老罗 Android应用程序资源的查找过程分析
原文地址 http://blog.csdn.net/luoshengyang/article/details/8806798 转载请说明 我们知道,在Android系统中,每一个应用程序一般都会配置很多资源,用来适配不同密度、大小和方向的屏幕,以及适配不同的国家、地区和语言等等。这些资源是在应用程序运行时自动根据设备的当前配置信息进行适配的。这也就是说,给定一个相同的资源I
2013-12-19 10:57:03 828
转载 转自老罗 Android应用程序资源的编译和打包过程分析
原文地址 http://blog.csdn.net/luoshengyang/article/details/8744683 转载自老罗,转载请说明 我们知道,在一个APK文件中,除了有代码文件之外,还有很多资源文件。这些资源文件是通过Android资源打包工具aapt(Android Asset Package Tool)打包到APK文件里面的。在打包之前,大部分文本格式的XML
2013-12-19 10:35:11 926
转载 转自 老罗 Android应用程序资源管理器(Asset Manager)的创建过程分析
原文地址在 http://blog.csdn.net/luoshengyang/article/details/8791064 原创老罗,转载请说明 在前面一篇文章中,我们分析了Android应用程序资源的编译和打包过程,最终得到的应用程序资源就与应用程序代码一起打包在一个APK文件中。Android应用程序在运行的过程中,是通过一个称为AssetManager的资源管理器来读取
2013-12-19 10:25:58 892
Fedora Linux gcc g++安装包合集
2017-01-14
eclipse svn 最新插件 subclipse
2016-05-06
Android universal image loader库
2015-09-16
win7 x86系统编译完成openssl
2014-09-01
openssl-1.0.1i win32已编译命令行工具
2014-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人