JVM 内存架构和 GC 算法基础

本文讨论了 JDK8 及更高版本的堆内存和栈内存管理的基本概念。以及 GC 及其算法的基础知识。,Java 垃圾收集器不能确保堆内存完全空闲,而且对于开发人员来说,不可能强制垃圾收集器在特定时间运行...
5年前
460

Java 循环语句的简要指南

,只要某些预定的条件为真,一个 ​​while​​​ 循环就会执行一组任务。这被认为是一个控制结构,可以指导程序的流程。它是一种你可以通过定义一个条件来告诉你的代码要做什么的方法,它可以测试它,并根据...
3年前
450

java动态代理的原理

,说明,1、使用代理将对象包装起来,然后用该代理对象取代原始对象。,2、任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。,实例,以上就是java动态代理的原理,希望...
4年前
450

java RMI的工作过程

,工作流程,1、Client方面有被称为Stub的东西,有时也会成为存根,是RMIClient的代理对象。,2、Stub的主要功能是在请求远程方法时构筑信息块,RMI协议将该信息块发送给Server方...
3年前
430

java重写发生的条件

,发生条件,1、方法名相同,2、方法的参数列表相同(返回类型和数据类型),3、方法的返回值相同,4、重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。,但是可以抛出更少,更有限或者...
4年前
430

java使用泛型的优势

,说明,1、编译时进行更强的类型检查。,2、Java编译器检查泛型代码的强类型,如果代码违反类型安全。,会出错。修正编译时的错误比修正运行时的错误容易,后者可能难以找到。,3、消除显示类型转换。,4...
3年前
400

Java Map中那些巧妙的设计

最近拜读了一些Java Map的相关源码,不得不惊叹于JDK开发者们的鬼斧神工。他山之石可以攻玉,这些巧妙的设计思想非常有借鉴价值,可谓是最佳实践。然而,大多数有关Java Map原理的科普类文章都是...
3年前
390

java状态模式的特点

,1、特点,状态类拥有相同的public方法,状态类拥有一个属性指向使用此状态的实体类,状态类在内部自动切换状态,用户无法感知,用于替换大块重复出现的if语句,2、实例,以上就是java状态模式的特点...
4年前
390

java泛型方法的语法使用

,说明,1、泛型方法的语法包括类型参数列表(在尖括号中),它出现在方法返回类型之前。,对于静态泛型方法,类型参数必须出现在返回类型之前。,2、泛型方法是引入自己类型参数的方法。,这类似于声明的泛型类型...
4年前
390

java动态代理如何使用

,1、在使用动态代理时候,需要定义一个位于代理类与委托类之间的中介类。,这个中介类被要求实现InvocationHandler接口。,2、动态代理方式下,要求委托类必须实现某个接口。 ,以上就是jav...
4年前
380

java中EnumSet的使用

,说明,1、EnumSet可以存储一个枚举中的元素,它提供了一种通过集合来操作枚举类的方式。,2、EnumSet中的所有元素都必须指定枚举类型的枚举值,这种枚举类型在创建EnumSet时是显性的或隐性...
4年前
380

Volatile与Java内存模型

内存屏障(是一类同步屏障指令,是CPU或编译器在对内存随机访问的操作中的一个同步点,使得此点之前的所有读写操作都执行后才可以开始执行此点之后的操作),避免代码重排序。内存屏障其实就是一种JVM指令,J...
3年前
370

程序员与java那些不得不说的话题

,说到程序员,很多人对他们的第一印象是格子衬衫和肩包,钱多话少。程序员已经习惯了自黑,还在默默用行动改变世界。与低效率相比,程序员更愿意用高效率的算法解决问题。追求细节,严谨,通过不断优化,让生活更加...
4年前
370

java中Cglib代理的使用

,说明,1、Cglib代理可以称为子类代理,是在内存中构建子类对象,从而扩展目标对象的功能。,静态代理和JDK代理都需要一个对象来实现一个接口。有时候代理对象只是一个单独的对象,Cglib代理可以在这...
4年前
370

2023 年 Java 发展趋势

,抛开排名不谈,Java 是自诞生以来企业使用率最高的编码语言,至今仍保持着同样的地位。作为一种编程语言,它优于许多竞争对手,并继续成为大多数公司/组织的软件应用程序选择。但是,Java 并没有保持不...
5年前
370

JVM系列:几张图看懂Java字节码

作为一个java程序员,如果你不懂字节码的话,你只能算是初级程序员了。,这可不是耸人听闻。了解字节码你才能真正了解包括“动态代理的原理”、“类加载的细节过程”、“重载和重写是如何实现的”、“多态是如何...
3年前
360

如何使用Java生成PDF文档?

,在如今数字化时代,越来越多的人使用PDF文档进行信息传递和共享。而使用Java生成PDF文档也成为了一个非常重要的技能,因为Java作为一种通用的编程语言,可以在不同的操作系统和平台上运行。下面,我...
5年前
360

java类加载的过程

,说明,当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过以下三个步骤对该类进行初始化。,类加载步骤,1、加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行...
4年前
350

java中变量的使用注意

,说明,1、每个变量都有类型,类型可以是基本类型,也可以是引用类型。,2、变量名必须是合法的标识符。,3、变量声明时一条完整的语句,因此每一个声明都必须以分号结束。,实例,以上就是java中变量的使用...
3年前
340

Java应用提速(速度与激情)

作者 | 道延 微波 沈陵 梁希 大熊 断岭 北纬 未宇 岱泽 浮图,什么是速度?速度就是快,快有很多种。,有小李飞刀的快,也有闪电侠的快,当然还有周星星的快:(船家)"我是出了名够快"。(周星星...
4年前
330

java虚拟机中栈的运行原理

,运行原理,1、不同线程中所包含的栈帧是不允许存在相互引用的。,2、如果当前方法调用了其他方法,方法返回之际,当前栈帧会传回此方法的执行结果给当前一个栈针,并且虚拟机会丢弃当前栈帧,使得前一个栈帧重新...
4年前
330