java集合梳理【7】— Collections和Collection的区别

刚开始学java的时候,分不清Collection和Collections,其实这两个东西是完全不一样的东西。Collection是一个接口,是java集合中的顶级接口之一,衍生出了java集合的庞大的体系。下面的图可以说明:继承Collection的子类关系如下:既然Collection是接口,那么它本身就是不可以实例化的,它的子类或者实现类是可以的。【java集合梳理】— Collection接口详解而Collections则是工具类,是java集合中常用的方法的一个小小汇总,覆盖了排序,搜索,线程安全之类的一些算法,里面基本都是静态方法,可以直接用类名调用。具体源码解析看这个:

java集合梳理【8】— List源码详细解读

文章目录1.List接口的特性2.List接口的源码解析3.相关子类介绍3.4.1 定义以及成员变量3.4.2 常用方法3.4.3 迭代器3.4.4 小结一下增加修改删除查询查询索引位置截取list3.3.1 成员变量3.3.2 构造函数3.3.3 常用方法3.3.4 小结一下增加删除修改查询3.2.1 成员变量3.2.2 构造函数3.2.3 常用函数3.2.4 小结一下添加元素查询元素修改元素删除元素3.1.1 成员变量3.1.2 构造方法3.1.3 常用增删改查方法3.1.4 小结一下添加元素查询元素更新元素删除元素3.1 ArrayList3.2 LinkedList3.3

java集合梳理【9】— ArrayList超级详细源码分析

文章目录1. ArrayList1.1 ArrayList特点介绍1.2 实现的接口和继承的类2. 成员变量3. 构造方法4. 常用增删改查方法添加元素查询元素更新元素删除元素5.自动扩容和手动缩容机制5.1 自动扩容5.2 手动扩容6. 其他函数7. 迭代器7.1 Itr7.2 ListItr7.3 ArrayListSpliterator8. 小结一下1. ArrayListArrayList是最最常用的集合类了,真的没有之一。下面的分析是基于1.8.0_261源码进行分析的。1.1 ArrayList特点介绍动态数组,使用的时候,只需要操作即可,内部已经实现扩容机制。线程不安全有顺序

别把体验不当回事(下)

别把体验不当回事(下) 半兽人药剂师 中生代技术 编者按:半兽人药剂师上篇文章《别把体验不当回事(上)》从术的角度分享了产品体验,今天从道的角度分享,当你在谈产品体验,我在谈生态 当你在谈产品体验时,我在谈生态 作者:半兽人药剂师编辑:王友强 我们怎样推动产品体验? 体验是一件很难的事情,大公司里,它的难点不在于我们找不出改进体验的方向和方法,而难点往往在于如何让体验这件事情能够在跨BU跨团队的合作中做好。作为一个庞大的公司,拥有为数众多的团队和产品,一个产品的高度和好坏早已不是一个英明的领导可以一手提起的了;当领导们意识到,各产品PD的智慧和高度已成为了制约产品向上发展的瓶颈时

java集合梳理【10】— Vector超级详细源码分析

文章目录1.Vector介绍2. 成员变量3. 构造函数4. 常用方法4.1 增加4.2 删除4.3 修改4.4 查询4.5 其他常用函数4.6 Lambda表达式相关的方法4.7 如何遍历元素5.序列化和反序列化6.迭代器6.1 Itr6.2 ListItr6.3 VectorSpliterator7. 小结一下1.Vector介绍Vector和前面说的ArrayList很是类似,这里说的也是1.8版本,它是一个队列,但是本质上底层也是数组实现的。同样继承AbstractList,实现了List,RandomAcess,Cloneable, java.io.Serializable接口

Java反射说得透彻一些

文章目录3.1 优点3.2 缺点2.1 获取对象的包名以及类名2.2 获取Class对象2.3 getInstance()获取指定类型的实例化对象2.4 通过构造函数对象实例化对象2.5 获取类继承的接口2.6 获取父类相关信息2.7 获取当前类的公有属性和私有属性以及更新2.8 获取以及调用类的公有/私有方法一、反射机制是什么?二、反射的具体使用三、反射的优缺点 很多时候我们会遇到别人问一个问题:你给我讲一下反射,到底是什么东西?怎么实现的?我们能用反射来做什么?它有什么优缺点?下面我们会围绕着这几个问题展开:一、反射机制是什么?反射是什么?什么是反?什么是正射? 有反就有正

java isAssignableFrom的用法详细解析

文章目录1. isAssignableFrom()是干什么用的?2.代码实验测试2.1 父子继承关系测试2.2 接口的实现关系测试3.总结 最近在java的源代码中总是可以看到isAssignableFrom()这个方法,到底是干嘛的?怎么用?1. isAssignableFrom()是干什么用的?首先我们必须知道的是,java里面一切皆对象,类本身也是会当成对象来处理,主要体现在类的.class文件,其实加载到java虚拟机之后,也是一个对象,它就是Class对象,全限定类名:java.lang.Class。那这个isAssignableFrom()其实就是Class对象的一个方法: /**

java集合梳理【10】— LinkedList超级详细源码分析

1.LinkedList介绍我们除了最最常用的ArrayList之外,还有LinkedList,这到底是什么东西?从LinkedList官方文档,我们可以了解到,它其实是实现了List和Queue的双向链表结构,而ArrayList底层则是数组结构。下面的讲解基于jdk 1.8:继承了AbstractSequentialList,实现了List,Queue,Cloneable,Serializable,既可以当成列表使用,也可以当成队列,堆栈使用。主要特点有:线程不安全,不同步,如果需要同步需要使用List list = Collections.synchronizedList(new

【Java基础】-- instanceof 用法详解

1. instanceof关键字如果你之前一直没有怎么仔细了解过instanceof关键字,现在就来了解一下:instanceof其实是java的一个二元操作符,和=,<,>这些是类似的,同时它也是被保留的关键字,主要的作用,是为了测试左边的对象,是不是右边的类的实例,返回的是boolean值。A instanceof B注意:A是实例,而B则是Class类下面使用代码测试一下:class A{}interface InterfaceA{}class B extends A implements InterfaceA{}public class Test { public static

JVM笔记 -- Java跨平台和JVM跨语言

学习JVM的重要性从上层应用程序到底层操作系统,到底有哪些东西? 平时开发的应用程序主要基于各种框架,譬如Spring,SpringMVC,Mybatis,而各种框架又是基于Java API来实现的,Java API调用执行是在JVM上的,而JVM则是运行在操作系统上的,操作系统是在物理机器打交道的。在框架上进行业务开发,或者学习框架如何使用,是大部分开发者的工作。但是实际上我们不该执着于框架该如何使用,而是应该往下走,一般最后遇到的问题都会到JVM和操作系统的问题。即使现在的 JVM 已经很完善,帮开发者做了很多事,但是我们不该以此为理由不去了解 JVM 的原理