上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: GC安全点(Safepoint) 程序执行时并非在所有地方都能停顿下来开始GC,只有在特定的位置才能停顿下来开始GC,这些位置称为“安全点(Safepoint) ” Safe Point的选择很重要,如果太少可能导致GC等待的时间太长,如果太频繁可能导致运行时的性能问题。大部分指令的执行时间都非常短 阅读全文
posted @ 2020-07-23 10:25 研发之心 阅读(1739) 评论(0) 推荐(1) 编辑
摘要: 程序的并行和并发 程序的并发(Concurrent) 在操作系统中,是指一个时间段中有几个程序都处于己启动运行到运行完毕之间,且这几个程序都是在同一个处理器_上运行。 并发不是真正意义上的“同时进行”,只是CPU把一个时间段划分成几个时间片段(时间区间),然后在这几个时间区间之间来回切换,由于CPU 阅读全文
posted @ 2020-07-23 10:15 研发之心 阅读(1163) 评论(0) 推荐(0) 编辑
摘要: Stop The World Stop一the一World,简称STW,指的是Gc事件发生过程中,会产生应用程序的停顿。停顿产生时整个应用程序线程都会被暂停,没有任何响应,有点像卡死的感觉,这个停顿称为STW。. 举例: ➢可达性分析算法中枚举根节点(GC Roots)会导致所有Java执行线程停顿 阅读全文
posted @ 2020-07-23 09:54 研发之心 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 内存溢出与内存泄漏 内存溢出相对于内存泄漏来说,尽管更容易被理解,但是同样的,内存溢出也是引发程序崩溃的罪魁祸首之一。 由于GC一直在发展,所有一般情况下,除非应用程序占用的内存增长速度非常快,造成垃圾回收已经跟不上内存消耗的速度,否则不太容易出现OOM的情况。 大多数情况下,GC会进行各种年龄段的 阅读全文
posted @ 2020-07-22 19:58 研发之心 阅读(777) 评论(0) 推荐(0) 编辑
摘要: System.gc()无法保证GC一定执行 在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。 JVM实现者可以通过system.gc()调用来决定JVM的GC行 阅读全文
posted @ 2020-07-22 16:33 研发之心 阅读(3886) 评论(0) 推荐(2) 编辑
摘要: 垃圾标记阶段 对象存活判断:在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段。 那么在JVM中究竟是如何标记一 阅读全文
posted @ 2020-07-21 15:30 研发之心 阅读(1312) 评论(2) 推荐(4) 编辑
摘要: 什么是垃圾 什么是垃圾( Garbage) 呢? ➢垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。 ➢外文: An object is considered garbage when it can no longer be reached from any pointer 阅读全文
posted @ 2020-07-21 14:57 研发之心 阅读(750) 评论(0) 推荐(1) 编辑
摘要: String的基本特性 String:字符串,使用一对""引起来表示。 String sl = "hello";//字面量的定义方式; String s2 = new String("hello") ; String类是已经被声明为final的, 不可被继承。 String实现了Serializab 阅读全文
posted @ 2020-07-19 18:44 研发之心 阅读(1412) 评论(0) 推荐(3) 编辑
摘要: 1.执行引擎是Java虚拟机的核心组成部分之一 2.虚拟机是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的。 而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行 阅读全文
posted @ 2020-07-18 10:15 研发之心 阅读(4312) 评论(0) 推荐(5) 编辑
摘要: 直接内存 1.直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 2.直接内存是Java堆外的、直接向系统申请的内存区间。 3.简单理解: java process memory = java heap + native memory 示例代码: /** * IO 阅读全文
posted @ 2020-07-18 10:01 研发之心 阅读(3137) 评论(0) 推荐(1) 编辑
摘要: 对象的实例化 创建对象的方式 1.new:最常见的方式(本质是构造器) 变形1 : Xxx的静态方法 变形2 : XxBuilder/XxoxFactory的静态方法 2.Class的newInstance():反射的方式,只能调用空参的构造器,权限必须是public 3.Constructor的n 阅读全文
posted @ 2020-07-17 17:21 研发之心 阅读(841) 评论(0) 推荐(3) 编辑
摘要: 运行时数据区结构图(温习): 堆、栈、方法区的交互关系 方法区的理解 方法区(Method Area)与Java堆一样,是各个线程共享的内存区域 方法区在JVM启动时就会被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的 方法区的大小,跟堆空间一样,可以选择固定大小或者可拓展 方 阅读全文
posted @ 2020-07-16 16:02 研发之心 阅读(2351) 评论(0) 推荐(7) 编辑
摘要: 在《深入理解Java虚拟机》中关于Java堆内存有这样一段描述:随着JIT编译期的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么“绝对”了。 在Java虚拟机中,对象是在Java堆中分配内存的,这是一个普遍的常识。但是,有一种特殊 阅读全文
posted @ 2020-07-16 11:38 研发之心 阅读(957) 评论(0) 推荐(2) 编辑
摘要: 一个进程对应一个jvm实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈。 核心概述 1.一个jvm实例只存在一个堆内存,堆也是java内存管理的核心区域 2.Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最 阅读全文
posted @ 2020-07-15 11:42 研发之心 阅读(1901) 评论(5) 推荐(9) 编辑
摘要: 一、前言 在实际使用中搜索结果中的关键词前端通常会以特殊形式展示,比如标记为红色使人一目了然。我们可以通过 ES 提供的高亮功能实现此效果。 二、代码实现 前文查询是通过一个继承 ElasticsearchRepository 的接口实现的,但是如果要实现高亮,这种方式就满足不了了,这里我们需要通过 阅读全文
posted @ 2020-06-16 20:08 研发之心 阅读(1163) 评论(0) 推荐(0) 编辑
摘要: 第一种 通过过滤器来设置 @Configuration public class UtfConfig { @Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean registratio 阅读全文
posted @ 2020-06-16 20:02 研发之心 阅读(5652) 评论(0) 推荐(0) 编辑
摘要: response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。例如web浏览器就是通过MIME类型来判断文件是GIF图片。通过MIME类型来处理json字符串。Tomcat的安装目录\conf 阅读全文
posted @ 2020-06-16 19:57 研发之心 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 我存入数据表中的数据是使用 html 格式,获取数据是使用 vue 获取。 遇到了一个问题,就是界面上显示的数据是 html 格式的,但是我需要它显示纯文本。 怎么做呢?首先在 js 中写一个将 html 格式转化为纯文本的函数: 这是我从其他博客上找到的函数,亲测可用。 function ToTe 阅读全文
posted @ 2020-06-16 19:50 研发之心 阅读(2121) 评论(0) 推荐(0) 编辑
摘要: 使用SpringBoot开发过程中,难免需要配置相关数据项,然后在Java代码中@Autowired注入并使用。 我们应该如何读取properties文件中的配置项呢? 基于SpringBoot项目,配置项一般都存放在application.properties文件中。有2种常用的方法: 1.使用@ 阅读全文
posted @ 2020-06-16 19:38 研发之心 阅读(719) 评论(0) 推荐(0) 编辑
摘要: 编程语言分为低级语言和高级语言,机器语言、汇编语言是低级语言,C、C++、java、python等是高级语言。 机器语言是最底层的语言,能够直接执行。而我们编写的源代码是人类语言, 计算机只能识别某些特定的二进制指令,在程序真正运行之前必须将源代码转换成二进制指令。 汇编语言通过汇编器翻译成机器指令 阅读全文
posted @ 2020-05-08 19:34 研发之心 阅读(3467) 评论(4) 推荐(10) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
点击右上角即可分享
微信分享提示