文章目录一、 Java 内存区域 1.1 说一下 JVM 的主要组成部分及其作用? 1.2 说一下 JVM 运行时数据区 1.3 详细的介绍下 程序计数器 ? 1.4 详细介绍下 java 虚拟机栈? 1.5 一个方法调用另一个方法,会创建很多栈帧吗?递归的调用自己会创建很多栈帧吗? 1.6 你能给我详细的介绍Java堆吗? 1.7 能不能解释一下本地方法 ......
218
0
0
2023-11-23
什么是 JVM ?定义Java Virtual Machine – java 程序的运行环境(java 二进制 字节码的运行环境) 好处一次编写,到处运行 自动内存管理,垃圾回收功能 数组下标越界检查 多态 jvm jre jdk 常见的 JVM 整体结构 内存结构程序计数器 定义Program Counter Register 程序计数器(寄存器 ......
211
0
0
2023-11-19
介绍了 Java 的传统 I/O ,也就是 B-I/O (Blocking IO)。这篇文章介绍一下 N-I/O (Non-Block)的基本知识点,以及为什么 N-I/O 在高并发以及大文件的处理方面更有优势。本地文件I/O操作——NIO小试牛刀 Channel和Buffer BIO 里操作的是 InputStream 和 ......
196
0
0
2023-11-18
前言今天来和小伙伴们分享下设计模式中的 工厂模式 啦 一、 工厂模式 我们都知道,设计模式有 23 种,按照功能和使用场景可以分为三大类: 创建型模式 结构型模式 行为型模式 工厂设计模式(Factory Pattern)呢,就是一种很常见的设计模式,属于 创建型模式 的,主要作用就是来 创建对象 的~ 原理图 先来看一个 ......
203
0
0
2023-11-18
写 JAVA 代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(JUC锁)。其中 synchronized 锁是JAVA语言层面提供的能力,在此不展开,本文主要讨论JUC里的ReentrantLock锁。 一 JDK层 1 abstract QueuedSynchronizer Reen ......
197
0
0
2023-11-18
原文链接: 1、在java中 守护线程 和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法 Thread .setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之 ......
190
0
0
2023-11-18
在 java 程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例简单来说,单例主要适用于以下三个方面:控制资源的使用,通过线程同步来控制资源的并发访问;控制实例的产生,以达到 ......
220
0
0
2023-11-18
目录 何为反射? 反射(Reflection),是指 java 程序具有 在运行期 分析类以及修改其本身状态或行为的能力 。 通俗点说 就是 通过反射我们可以 动态地 获取一个类的所有属性和方法,还可以操作这些方法和属性。 实例的创建 一般我们创建一个对象实例 Person zhang = new P ......
196
0
0
2023-11-17
solr 实现全文搜索Solr Apache Solr特点 搜索引擎 搜索引擎组件 搜索引擎工作流程 分词技术 中文分词算法 基于字符串匹配 基于统计及机器学习的分词方式 IKAnalyzer 部署Solr并安装IKAnalyzer Solr分析功能 修改managed-schema配置业务系统字段 复制配置到容器 重启容器 SpringBoot整合Solr ......
164
0
0
2023-11-15
在开发过程中经常会使用 if …else…进行判断抛出异常、分支处理等操作。这些if…else…充斥在代码中严重影响了代码代码的美观,这时我们可以利用Java 8的 Function 接口来消灭if…else…。 if (...){ throw new Runtime Exception ("出现异常了"); } if (...){ ......
157
0
0
2023-11-14
Java IO 的演变之路I/O模型:就是用什么样的通道或者说是通信模式和架构进行数据的传输和接受,很大程度上决定了程序通信的性能,在 Java 当中一种支持 3 种 IO模型。BIO、NIO、AIO在实际通信需求下,要根据不同的业务场景和性能需求决定选择不同的 IO 模型。I/O 模型Java BIO:同步并阻塞的(传统阻塞型),服务器实现模式为一个连 ......
254
0
0
2023-11-14
前些年 Scala 大肆流行,打出来 Java 颠覆者的旗号,究其底气来源,无非是函数式和面向对象的“完美结合”,各式各样的“语法糖”,但其过高的学习门槛,又给了新来者当头一棒。随着 Java8 的发布,Lambda 特性的引入,之前的焦灼局面是否有所转变,让我们一起揭开 Java 函数式编程的面纱:面向对象 VS 函数式FunctionalInterfa ......
200
0
0
2023-11-14
Java 应用生产问题排查步骤 学会这篇文章里面的命令并熟练使用,出去面试就可以说自己有5年工作经验并且精通 JVM 了。本篇文章中介绍的命令绝对是 JAVA程序员 平时工作中经常使用的并且必须会的命令,如果你不会你就是没有工作经验的人。如果你不会,那么在别人眼中你肯定就是菜鸟一个,所以本篇文章中的命令,你必须学会并且熟练使用。 注意:本篇文章内容基于 ......
216
0
0
2023-11-14
作者 | 常意责编 | 屠敏1、导读 唐宋八大家之一欧阳修在《 卖油翁 》中写道:编写代码的”老司机”也是如此,”老司机”之所以被称为”老司机”,原因也是”无他,唯手熟尔”。 编码 过程中踩过的坑多了,获得的编码经验也就多了,总结的编码技巧也就更多了。总结的编码技巧多了,凡事又能够举一反三,编码的速度自然就上来了。笔者从数据结构的角度,整理了一些 Java ......
198
0
0
2023-11-14
垃圾回收器性能指标吞吐量:程序运行时间占总运行时间(总运行时间=程序运行时间+垃圾回收时间)的比例,垃圾回收时间越少,吞吐量越高; 暂停时间:STW的时间; 内存占用:Java堆所占的大小。 以上三点构成不可能三角,即一款垃圾回收器不可能同时满足三点。随着硬件水平的提升,内存占用不再是我们关注的重点,评估垃圾回收器性能时,重点关注吞吐量和暂停时间。吞吐量和 ......
204
0
0
2023-11-13