03 2020 档案

摘要:这两天,广州的天气又开始热了起来,又到了小动物交配的季节,啊呸,又到了一个收割 offer 的季节。年底将至,又到了面试的高峰期,JVM 作为Java 程序员面试绕不过的一道坎儿,它又来了,你准备好了吗? 说说引用 面试官 A:小伙几,上篇我们说到了 JVM 收集的两种算法 —— 引用记数法和可达性 阅读全文
posted @ 2020-03-27 06:46 山禾说 阅读(445) 评论(0) 推荐(1)
摘要:前言 上篇文章,我们了解了GC 的相关概念,这篇文章我们通过两个算法来了解如何去确定 堆中的对象实例 哪些是我们需要去回收的 垃圾对象 。 引用计数算法 引用计数法的原理很简单,就是在对象中维护一个计数器,当有一个对象引用它的时候,该计数器的值就会加一,当这个引用失效的时候,计数器的值就会减少一,当 阅读全文
posted @ 2020-03-25 14:21 山禾说 阅读(157) 评论(0) 推荐(0)
摘要:前言 在「对象内存布局」一节中,我们了解到对象头中包含了一个叫做 类型指针 的东西,即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。但是,并不是所有的虚拟机都是这么去做的。不同的虚拟机关于这点有不同的实现,目前主流的方式可以分为 句柄 和 直接指针 句柄 由图中我们可以 阅读全文
posted @ 2020-03-23 08:49 山禾说 阅读(283) 评论(0) 推荐(0)
摘要:循环 老生常谈的一个控制流程了,我们在是使用数组和集合的时候,遍历元素的时候经常会用到循环的结构,Java具有非常灵活的三种循环机制: 根据是否知道循环的次数可以为分为while循环,do...while循环和for循环,下面我们单独来了解一下: while循环 当我们不知道循环的具体次数时,可以使 阅读全文
posted @ 2020-03-20 08:22 山禾说 阅读(375) 评论(0) 推荐(0)
摘要:数组,一种应用非常广泛的数据结构,简单地来说就是一组 类型相同 且 无序 的元素的存储在 固定长度 且 有序 的内存空间。 创建一个数组 在Java中,我们可以通过 去声明一个指定类型的数组 当然,一般情况下我们更喜欢使用第一种方式来声明一个数组,因为它将类型与变量名分开,优化了代码的可读性。 刚刚 阅读全文
posted @ 2020-03-19 08:36 山禾说 阅读(322) 评论(0) 推荐(2)
摘要:字符串介绍 类是 包中的一个类,是我们日常中使用的非常多的一个类,它不是基础数据类型,底层实现是字符数组来实现的: 类是由 修饰的,所以是无法被继承的,一旦创建了 对象,我们就无法改变它的值。因此, 它是线程安全的 ,可以安全地用于多线程环境中。 下面我们通过几道面试题来学习 类 如何创建一个字符串 阅读全文
posted @ 2020-03-18 06:50 山禾说 阅读(422) 评论(0) 推荐(0)
摘要:简介 修饰符是用于限定类型以及类型成员申明的一种符号,从修饰对象上可以分为类修饰符,方法修饰符,变量修饰符;从功能上可以划分为访问控制修饰符和非访问修饰符。访问修饰符控制访问权限,不同的访问修饰符有不同的权限范围,而非访问修饰符则是提供一些特有功能。 下面我们从功能的角度分别讲解修饰符 访问修饰符 阅读全文
posted @ 2020-03-17 08:27 山禾说 阅读(401) 评论(0) 推荐(0)
摘要:运算符简介 计算机自打诞生以来,用作最多的就是进行 计算 ,而计算离不开运算符,所以运算符在我们的Java语言中的地位举足轻重,我们现在就来了解一下Java给我们提供的运算符。 从运算的元素的个数来区分,可以分为一元运算符,二元运算符,三元运算符。 其中一元运算符包括: +(正数) (负数) ++( 阅读全文
posted @ 2020-03-16 08:35 山禾说 阅读(309) 评论(0) 推荐(1)