摘要: 1. 反射是什么? 反射是一种机制,是一种能力,是指JVM在运行过程中,对于任意一个类,都可以知道这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意方法和属性。 2. 反射的原理? 如果你对 JVM 的类加载机制有所了解(这里不了解也没关系),就会知道,类在编译的时候,会生成一个 .cla 阅读全文
posted @ 2020-11-13 09:26 山禾说 阅读(750) 评论(0) 推荐(4) 编辑
摘要: 1. 注解是什么 首先,我们先来康康注解在百度百科上的解释 而在 Java 中,简单通俗的讲,就是一个标签,对类、方法、变量的一个解释说明,在早些年,我们通常使用 xml 去对我们的代码进行增强的解释,但是格式繁杂,代码可读性差,维护起来很困难,在 Java SE 5.0 以后,注解的出现为这种情况 阅读全文
posted @ 2020-11-03 09:42 山禾说 阅读(504) 评论(4) 推荐(1) 编辑
摘要: 问题一:简单聊一下关于你对Object的理解 在 Java 中,只有基本数据类型不是对象,比如,数值,布尔和字符类型的值都不是对象。而其余的数据类型都是继承自一个名为Object的类,这个类是所有类的始祖,每个类都是由Object类扩展而来。 如果一个类继承自Object类,我们可以将extends 阅读全文
posted @ 2020-08-17 08:58 山禾说 阅读(528) 评论(1) 推荐(2) 编辑
摘要: 搭建前的准备 在我们正式开始搭建一个完全属于我们自己的博客之前,我们首先要做好一些事前的准备(当然,如果你没有做好准备也没有关系,下面会一步一步的教你搞定这些) 服务器一台 or github 账号一个(二选一)域名一个(可选)node.js(建议10.0以上版本)git 域名和服务器的购买我这里就 阅读全文
posted @ 2020-07-08 21:08 山禾说 阅读(407) 评论(0) 推荐(1) 编辑
摘要: 【高能预警】:两万字长文,建议先收藏再看,深度源码分析,二十个问题带你一网打尽集合面试。 阅读全文
posted @ 2020-06-29 15:40 山禾说 阅读(664) 评论(2) 推荐(1) 编辑
摘要: 走过路过千万不要错过~ 阅读全文
posted @ 2020-06-22 08:27 山禾说 阅读(924) 评论(2) 推荐(2) 编辑
摘要: 你先回去等通知吧 阅读全文
posted @ 2020-06-15 08:32 山禾说 阅读(497) 评论(0) 推荐(2) 编辑
摘要: 写作这件小事儿 阅读全文
posted @ 2020-05-25 08:58 山禾说 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 前言 在上篇中,我们把 JVM 中的垃圾收集算法有了一个大概的了解,又是一个阴雨连绵的周末,宅在家里的我们又开始了新一轮的学习: 产品大大:上周末我们说了垃圾收集算法,下面是不是要讲一下这些算法的应用呢? 我:当然,如果说垃圾收集算法是打狗棒法,那么垃圾收集器就是历届的丐帮帮主们,不同的帮主领悟到的 阅读全文
posted @ 2020-04-21 08:56 山禾说 阅读(456) 评论(3) 推荐(0) 编辑
摘要: 纠结的我,给我的JVM系列终于起了第三个名字,害,我真是太难了。从 JVM 到 每日五分钟,玩转 JVM 再到现在的给产品经理讲 JVM ,虽然内容为王,但是标题可以让更多的人看到我的文章,所以,历经了三个选题,最终定下来了这个。 这个名字的由来,且听我给你慢慢道来,从学习知识的角度上来说,最深入的 阅读全文
posted @ 2020-04-13 08:23 山禾说 阅读(374) 评论(2) 推荐(0) 编辑
摘要: 这两天,广州的天气又开始热了起来,又到了小动物交配的季节,啊呸,又到了一个收割 offer 的季节。年底将至,又到了面试的高峰期,JVM 作为Java 程序员面试绕不过的一道坎儿,它又来了,你准备好了吗? 说说引用 面试官 A:小伙几,上篇我们说到了 JVM 收集的两种算法 —— 引用记数法和可达性 阅读全文
posted @ 2020-03-27 06:46 山禾说 阅读(434) 评论(0) 推荐(1) 编辑
摘要: 前言 上篇文章,我们了解了GC 的相关概念,这篇文章我们通过两个算法来了解如何去确定 堆中的对象实例 哪些是我们需要去回收的 垃圾对象 。 引用计数算法 引用计数法的原理很简单,就是在对象中维护一个计数器,当有一个对象引用它的时候,该计数器的值就会加一,当这个引用失效的时候,计数器的值就会减少一,当 阅读全文
posted @ 2020-03-25 14:21 山禾说 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 前言 在「对象内存布局」一节中,我们了解到对象头中包含了一个叫做 类型指针 的东西,即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。但是,并不是所有的虚拟机都是这么去做的。不同的虚拟机关于这点有不同的实现,目前主流的方式可以分为 句柄 和 直接指针 句柄 由图中我们可以 阅读全文
posted @ 2020-03-23 08:49 山禾说 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 循环 老生常谈的一个控制流程了,我们在是使用数组和集合的时候,遍历元素的时候经常会用到循环的结构,Java具有非常灵活的三种循环机制: 根据是否知道循环的次数可以为分为while循环,do...while循环和for循环,下面我们单独来了解一下: while循环 当我们不知道循环的具体次数时,可以使 阅读全文
posted @ 2020-03-20 08:22 山禾说 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 数组,一种应用非常广泛的数据结构,简单地来说就是一组 类型相同 且 无序 的元素的存储在 固定长度 且 有序 的内存空间。 创建一个数组 在Java中,我们可以通过 去声明一个指定类型的数组 当然,一般情况下我们更喜欢使用第一种方式来声明一个数组,因为它将类型与变量名分开,优化了代码的可读性。 刚刚 阅读全文
posted @ 2020-03-19 08:36 山禾说 阅读(306) 评论(0) 推荐(2) 编辑
摘要: 字符串介绍 类是 包中的一个类,是我们日常中使用的非常多的一个类,它不是基础数据类型,底层实现是字符数组来实现的: 类是由 修饰的,所以是无法被继承的,一旦创建了 对象,我们就无法改变它的值。因此, 它是线程安全的 ,可以安全地用于多线程环境中。 下面我们通过几道面试题来学习 类 如何创建一个字符串 阅读全文
posted @ 2020-03-18 06:50 山禾说 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 简介 修饰符是用于限定类型以及类型成员申明的一种符号,从修饰对象上可以分为类修饰符,方法修饰符,变量修饰符;从功能上可以划分为访问控制修饰符和非访问修饰符。访问修饰符控制访问权限,不同的访问修饰符有不同的权限范围,而非访问修饰符则是提供一些特有功能。 下面我们从功能的角度分别讲解修饰符 访问修饰符 阅读全文
posted @ 2020-03-17 08:27 山禾说 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 运算符简介 计算机自打诞生以来,用作最多的就是进行 计算 ,而计算离不开运算符,所以运算符在我们的Java语言中的地位举足轻重,我们现在就来了解一下Java给我们提供的运算符。 从运算的元素的个数来区分,可以分为一元运算符,二元运算符,三元运算符。 其中一元运算符包括: +(正数) (负数) ++( 阅读全文
posted @ 2020-03-16 08:35 山禾说 阅读(291) 评论(0) 推荐(1) 编辑
摘要: 64位JVM和32位JVM 最初的时候,JVM是32位的,但是随着64位系统的兴起,JVM也迎来了从32位到64位的转换,32位的JVM对比64位的内存容量比较有限,但是我们使用64位虚拟机的同时,也带来了一个问题,64位下的JVM中的对象会比32位中的对象多占用1.5倍的内存空间,这是我们不想看到 阅读全文
posted @ 2020-01-07 06:47 山禾说 阅读(1156) 评论(2) 推荐(1) 编辑
摘要: 一份呕心沥血两周 共计七千五百字 三十张图的让你效率翻倍的年度总结 阅读全文
posted @ 2020-01-02 08:27 山禾说 阅读(2682) 评论(16) 推荐(12) 编辑