首页
学习
活动
专区
工具
TVP
发布

Vi的技术博客

专栏作者
104
文章
54654
阅读量
30
订阅数
【两万字】面试官:听说你精通集合源码,接我二十个问题!
这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口。
山禾说
2020-07-24
5720
十问泛型,你能扛住吗?
使用泛型机制编写的代码要比那些杂乱的使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性,也就是说使用泛型机制编写的代码可以被很多不同类型的对象所重用。
山禾说
2020-07-24
1K0
「给产品经理讲 JVM 」: 垃圾收集器
在上篇中,我们把 JVM 中的垃圾收集算法有了一个大概的了解,又是一个阴雨连绵的周末,宅在家里的我们又开始了新一轮的学习:
山禾说
2020-04-27
3230
「给产品经理讲JVM」:垃圾收集算法
纠结的我,给我的JVM系列终于起了第三个名字,害,我真是太难了。从 JVM 到 每日五分钟,玩转 JVM 再到现在的给产品经理讲 JVM ,虽然内容为王,但是标题可以让更多的人看到我的文章,所以,历经了三个选题,最终定下来了这个。
山禾说
2020-03-31
3460
Java 基础(六):数组
老生常谈的一个控制流程了,我们在是使用数组和集合的时候,遍历元素的时候经常会用到循环的结构,Java具有非常灵活的三种循环机制:
山禾说
2020-03-20
3650
Java 语法(五):数组
当然,一般情况下我们更喜欢使用第一种方式来声明一个数组,因为它将类型与变量名分开,优化了代码的可读性。刚刚我们只是声明了一个数组 a ,但是并没有将 a 初始化为一个真正的数组。
山禾说
2020-03-19
4140
「Offer收割机之JVM」:引用是个什么鬼
这两天,广州的天气又开始热了起来,又到了小动物交配的季节,啊呸,又到了一个收割 offer 的季节。年底将至,又到了面试的高峰期,JVM 作为Java 程序员面试绕不过的一道坎儿,它又来了,你准备好了吗?
山禾说
2020-01-15
3480
「每日五分钟,玩转JVM」:两种算法
上篇文章,我们了解了GC 的相关概念,这篇文章我们通过两个算法来了解如何去确定堆中的对象实例哪些是我们需要去回收的垃圾对象。
山禾说
2019-11-21
3270
「每日五分钟,玩转JVM」:对象的内存布局
一个对象根据不同情况可以被划分成两种情况,当对象是一个非数组对象的时候,对象头,实例数据,对齐填充在内存中三分天下,而数组对象中在对象头中多了一个用于描述数组对象长度的部分
山禾说
2019-09-10
3480
Java Grammar:运算符
修饰符是用于限定类型以及类型成员申明的一种符号,从修饰对象上可以分为类修饰符,方法修饰符,变量修饰符;从功能上可以划分为访问控制修饰符和非访问修饰符。访问修饰符控制访问权限,不同的访问修饰符有不同的权限范围,而非访问修饰符则是提供一些特有功能。
山禾说
2019-09-08
6060
「Java Grammar」:几道面试题助你玩转String
String类是java.lang包中的一个类,是我们日常中使用的非常多的一个类,它不是基础数据类型,底层实现是字符数组来实现的:
山禾说
2019-09-02
4110
Java基础系列(四十六):Set & AbstractSet
Set继承了 Collection接口,它本身也是一个接口,代表一种不能拥有重复元素的容器类型,更确切的说,集合不包含一对元素 e1和 e2 ,使得 e1.equals(e2) 。
山禾说
2019-08-21
5010
Java基础系列(四十三):集合之Vector&Stack
Vector是一种实现了动态数组的集合,何为动态数组呢?即长度可以自动增长的数组,它是线程同步的,也就是说同一时刻只有一个线程可以写Vector,可以避免多线程同时写引起的不一致性,但是比较消耗资源。接下来,我们来看Vector的源码。
山禾说
2019-08-21
3270
Java Grammar:数据类型
我们知道,Java是一种 强类型 语言,类型对于Java语言来说非常的重要不言而喻,在Java中,分为 基础数据类型 和 引用数据类型 ,其中基础数据类型分为了 四类八种:
山禾说
2019-08-08
5640
JVM(二):画骨
我们首先来认识一下JVM的运行时数据区域,如果说JVM是一个人,那么运行时数据区域就是这个人的骨架,它支撑着JVM的运行,所以我们先来学习一下运行时数据区域的分类和简单介绍。
山禾说
2019-08-06
3180
Java基础系列(四十八):集合之HashMap
说起HashMap,大家肯定都不会陌生,我们用的最多的大概就是这个容器类来存储k-v数据,正如它的名字所说的那样,它是基于散列表实现的,散列表的强大之处在于查找时的时间复杂度为O(1),因为每个对象都有一个对应的索引,我们可以直接根据对象的索引去访问这个对象,而这个索引就是我们对象的hash值。
山禾说
2019-01-21
4340
Java基础系列(四十一):集合之List
List是继承自Collection的一个子接口,它提供了一个有序的集合,在这个集合中我们可以使用索引去获取集合中的值,同时,我们也可以通过迭代器去访问集合中的元素,第一种方法被称为随机访问,因为我们可以按照任意的顺序去访问元素,而使用迭代器就必须顺序的去访问元素。
山禾说
2019-01-21
3340
Java基础系列(四十七):集合之AbstractMap
亲爱的读者们,以后我每周更新两篇,周一更新基础底层,周五框架实战,上次投票的结果是JVM,我会在周一这一档等到基础系列完结后进行更新,周五目前更新的是spring boot 2.1.0系列,敬请期待~
山禾说
2019-01-21
4240
Java基础系列(三十四):泛型入门
使用泛型机制编写的代码要比那些杂乱的使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性,也就是说使用泛型机制编写的代码可以被很多不同类型的对象所重用。
山禾说
2019-01-21
3180
Java基础系列(三十五):泛型进阶
因为变量min和max使用了compareTo方法,那么我们应该如何去保证一个泛型类具有这样的方法呢?解决方案就是对类型变量T进行限定,将T限制为实现了Comparable接口的类:<T extends Comparable>。
山禾说
2019-01-21
5560
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档