Java是如何实现拆箱和装箱的?通过字节码来解析原理!
你好,我是猿java。 Java 是一种强类型语言,然而在 Java中`Integer类型`和`int类型`两种不同类型的数字却能正常地进行数学运算(比如,加减乘除),为什么?今天我们就来聊聊其背后的秘密:拆箱和装箱。 什么是拆箱和装箱? {#什么是拆箱和装箱?} ====================== 拆箱和装箱,其实是`Java 5`引入的一个语法糖,是将 Ja...
你好,我是猿java。 Java 是一种强类型语言,然而在 Java中`Integer类型`和`int类型`两种不同类型的数字却能正常地进行数学运算(比如,加减乘除),为什么?今天我们就来聊聊其背后的秘密:拆箱和装箱。 什么是拆箱和装箱? {#什么是拆箱和装箱?} ====================== 拆箱和装箱,其实是`Java 5`引入的一个语法糖,是将 Ja...
嗨,你好,我是**猿java** 自从 Java 8 引入函数式编程后,给很多 Java 程序员带来了福音,函数式编程是一种专注于使用函数来创建清晰简洁的代码的范式,它不像传统的命令式编程那样修改数据和维护状态,而是将函数视为一等公民。这样就可以将它们分配给变量,作为参数传递,并从其他函数返回,这种方法可以使代码更易于理解和推理。 Java为什么要引入函数式编程? {#Ja...
接口通常是为子类定义一些需要被实现的抽象方法,但是,在 Java 9 及其以后的版本中,允许在接口中定义 private 方法,为什么 Java 会在 接口中引入 private方法,这篇文章,我们将详细探讨其中的缘由。 接口方法改变历史 {#接口方法改变历史} ==================== 在 Java 8 之前,接口只能包含抽象方法,这些方法没有实现,并且所...
在现代编程语言中,协程(goroutine)和线程(thread)绝对是赫赫有名的两种并发处理机制,它们分别在 Golang 和 Java 中扮演着重要角色。这篇本文,我们将深入探讨 Golang 的协程和 Java 的线程,分析它们的概念、实现、优缺点及应用场景。 定义 {#定义} ======== Golang 的协程 {#Golang-的协程} -----------...
正则表达式(Regular Expression,简称 Regex)是一种用于描述字符串模式的工具,它在文本处理、数据验证、搜索和替换等方面有着广泛的应用。这篇文章,我们将分析什么是正则表达式,它是如何工作的? 什么是正则表达式? {#什么是正则表达式} ===================== 正则表达式(regular expression,常简写为 regex、re...
最近,有小伙伴反馈:B站 1面要直接手撕一个 Java Agent,直接把他搞懵逼了。这篇文章,我们将针对这么小伙伴遇到的问题,深入分析什么 Java Agent及其工作原理,最后带领大家手撕一个 Java Agent。 什么是 Java Agent? {#什么是-Java-Agent?} ================================== Java Ag...
最近,有小伙伴反馈:B站 1面要直接手撕一个 Java Agent,直接把他搞懵逼了。这篇文章,我们将针对这么小伙伴遇到的问题,深入分析什么 Java Agent及其工作原理,最后带领大家手撕一个 Java Agent。 什么是 Java Agent? {#什么是-Java-Agent?} ================================== Java Ag...
你好,我是猿java。 在实际工作中,或许你最开始接触jdk7,或许是jdk8或者是jdk11,对于java中的for循环和jdk8开始引入的java stream的使用大家各持意见,有人说java stream比for循环性能高,有人说java stream晦涩难懂,今天,我们就从代码的长期可维护性的角度来来谈谈 Streaming API和for循环的区别。 比较点 {...
你好,我是猿java。 在 Java19之前,线程是 Java运行的最小单元,线程作为 Java的核心功能之一,在 Java的发展史上起着举足轻重的作用,因此,今天我们就来聊聊 Java线程的相关知识。 > 申明:本文基于 jdk-11.0.15,操作系统基于 Linux,JVM > 基于hotspot源码,[hotspot 源码下载地址](https:/...
你好,我是**猿java** 在 JDK的`java.util`包里提供了一个用于生成随机数的`Random`类,它是如何生成随机数的?为什么它生成的随机数是均匀的?今天我们一起来聊聊其背后的原理。 > 本文基于Java语言,jdk 11 java.util.Random {#java-util-Random} ============================...