- 博客(196)
- 资源 (2)
- 收藏
- 关注
原创 【SQL语句】在这个什么都涨价的年代,你还在使用for循环吗?--mybatis动态SQL
<update id="updateQueryIdNew" parameterType="java.lang.String"> UPDATE tid_schedule_detail SET is_query = 1 WHERE <foreach collection="PlanIDList" item="item" index="index" open="" clo.
2021-08-05 12:13:47
261
原创 欧尼酱讲JVM(24)—字节码文件的跨平台性
有待补充,有需要详细了解的读者,可以先私聊我,我给你发笔记,只是还没有整理好,所以没在优快云发表
2021-08-05 11:49:11
302
1
原创 欧尼酱讲JVM(23)——垃圾收集器
前面几篇文章我们讲了垃圾收集相关的算法,现在我们开始讲垃圾收集器。有了虚拟机就一定需要手机垃圾的机制,这就是GarbageCollection,对应的产品我们称为GarbageCollector。垃圾收集器发展史1999年,随JDK 1.3.1 一起来的是串行方式的Serial GC,它是第一款GC。ParNew GC是Serial GC的多线程版本。 2002年2月26日,Parallel GC和Concurrent Mark Sweep GC( 即CMS) 跟随 JD...
2020-12-12 17:31:11
1046
1
原创 欧尼酱讲JVM(22)——分代收集算法
前面我们介绍了垃圾收集相关算法,那么就没有一种最好的算法吗?答案是没有。没有最好只有最合适,具体情况要具体分析。那么今天我们就来介绍下分代收集算法。
2020-12-01 15:02:14
269
原创 欧尼酱讲JVM(21)——垃圾回收相关算法
垃圾回收有很多算法,但是没有最好的,只有最合适的。就像你的另一半,没有完美的,之后最合适你的。通过这篇文章你可以了解到不同的垃圾回收算法。
2020-11-30 14:57:54
616
1
原创 欧尼酱讲JVM(20)——了解垃圾回收
本篇文章中,我会简单介绍:什么是GC,为什么需要GC,了解早期垃圾回收行为,应该关心哪些区域的回收。小伙伴们赶快点进来了解一下吧!
2020-09-11 13:58:21
371
原创 欧尼酱讲JVM(18)——对象实例化内存布局与访问定位
对象实例化后在内存中是怎样的呢?它们是怎么拆分的呢?又是怎么存储的呢?对象实例又是怎样被访问到呢?
2020-09-06 11:44:06
1229
7
原创 欧尼酱讲JVM(14)——堆
我以我身上20斤肉发誓,这绝对是全网最全,最详细的有关【堆】的介绍,包含代码举例与JVisualVM演示对象分配过程,有动图,绝对通俗易懂。什么?不信?不信我就瘦20斤给你看!!
2020-08-31 14:38:54
887
2
原创 欧尼酱讲JVM(12)——本地方法接口
位置图解图中虚线框起来的就是本地方法接口什么是本地方法简单地讲,一个NativeMethod就是一个Java调用非Java代码的接口,一个NativeMethod是这样一个Java方法:该方法的实现由非Java语言实现,比如C,这个特征并非Java所有,很多其他的编程语言都有这样一个机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C函数。在定义一个native method时,并不提供实现体(有些像定义了一个Java interface),因为其实现...
2020-08-30 21:31:29
404
原创 欧尼酱讲JVM(11)——动态链接和常量池
因为动态链接和运行时常量池有联系,所以先解释一下运行时常量池:运行时常量池位于方法区(注意:JDK1.7 及之后版本的 JVM 已经将运行时常量池从方法区中移了出来,在 Java 堆(Heap)中开辟了一块区域存放运行时常量池)为什么需要运行时常量池常量池的作用,就是为了提供一些符号和常量,便于指令的识别。下面提供一张测试类的运行时字节码文件格式每一个栈帧内部都包含一个指向运行时常量池Constant pool或该栈帧所属方法的引用。包含这个引用的目的就是为了支持当前方法的代码能够实现.
2020-08-26 14:26:31
717
原创 欧尼酱讲JVM(10)——操作数栈
首先要明确一个概念:操作数栈在栈帧中。我红色框圈起来的部分。操作数栈的理解每一个独立的栈针中除了包含局部变量表以外,还包含一个后进先出的操作数栈,也叫表达式栈。操作数栈在方法执行过程中,根据字节码指令,往栈中写入数据或提取数据,即入栈。某些字节码指令将值压入操作数栈,其余字节码指令将操作数取出栈,使用他们后再把结果压入栈。 比如:执行复制,交换,求和等操作。操作数栈的特点操作数栈,主要用于保存计算过程的中间结果,同时作为计算过程中变量临时的存储空间。 操作数栈就是jvm执行引.
2020-08-26 09:47:17
488
原创 欧尼酱讲JVM(09)——虚拟机栈-变量槽slot
这篇文章接着【JVM】运行时数据区-虚拟机栈 来写,虚拟机栈中提到了局部变量表,那么局部变量表又是存储什么内容呢?关于Slot的理解参数值的存放总是在局部变量数组的index0开始,到数组长度-1索引结束。 局部变量表,最基本的存储单元是Slot(变量槽) 局部变量表中存放编译期可知的各种基本数据类型(8种),引用类型(reference),returnAddress类型的变量 局部变量表里,32位以内的类型只占用一个solt(包括returnAddress类型),64位的类型(long和d.
2020-08-26 08:51:11
430
原创 欧尼酱讲JVM(08)——字节码中方法内部结构的剖析
用到的工具——JclasslibIDEA提供了插件,很方便。首先先看一段代码:public class LocalVariablesTest { private int count = 0; public static void main(String[] args) { LocalVariablesTest test = new LocalVariablesTest(); int num = 10; test.test1().
2020-08-26 08:18:03
263
原创 欧尼酱讲JVM(07)——方法的栖身之所—虚拟机栈
本篇博客详细介绍了虚拟机栈的相关知识,包括虚拟机栈概念,内容,工作原理,生命周期等。大家快来围观吧!
2020-08-24 15:43:48
379
2
原创 欧尼酱讲JVM(03)——用户自定义类加载器
用户自定义类加载器在Java的日常应用程序开发中,类的加载几乎是由“引导类加载器,扩展类加载器,系统类加载器”这三种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制加载方式。为什么要自定义类加载器呢?隔离加载类:某些类路径一样,类名也相同,需要做类的仲裁,就需要自定义加载器,来隔离加载类。 修改类的加载方式 扩展加载源 防止源码泄露用户自定义类加载器实现步骤开发人员可以通过继承抽象类java.lang.ClassLoader类的方式,实现自己的类的加载器,满足一些特
2020-08-10 14:07:09
334
原创 欧尼酱讲JVM(02)——类的加载过程
加载我们知道,在代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制字节流文件(*.class)。而JVM把Class文件中的类描述数据从文件加载到内存,并对数据进行校验、转换解析、初始化,使这些数据最终成为可以被JVM直接使用的Java类型,这个说来简单但实际复杂的过程叫做JVM的类加载机制。这个过程就类似于,计算机把高级语言转化为机器语言,这个道路。类的加载器分类在加载阶段,需要用到类的加载器。引导类加载器 扩展类加载器 系统类加载器链接验证(Verify).
2020-08-09 22:03:40
436
4
原创 【Java】异常处理
面向对象类 两个概念:类和对象(对象也被称为实例) 修饰符:public、final、abstract 类的三种成员:初始化块,构造器(用于通过new关键字来创建类的实例)、成员变量、方法、内部类。空类(没有成员)。 成员变量 修饰符:public、protected、private、static、final。 类型:实例变量、类变量。 初始化和内存运行机制:当系统加载类或创建该类的对象时,系统自动为成员变量分配内存空间,然后自动...
2020-07-19 21:39:21
150
原创 【SQL语句】MyBatis中Mapper.xml文件中的转义字符
XML只有5个转义符:转义符 表达式 说明 < < 小于号 > > 大于号 & & 和 ' ’ 单引号 " " 双引号 注意:转义序列必须以”;”结束 区分大小写 转义序列字符之间不能有空格 单独出现的”&”不会被认为是转义的开始最后来一张可爱的珍珠:...
2020-06-14 17:30:07
1068
2
原创 【linux】coule not find java set JAVA HOME or ensure java in PATH
这是因为还没有配置环境变量的原因,如果也没有装JDK,那么首先要安装JDK。安装方法:https://blog.youkuaiyun.com/weixin_43893397/article/details/102636437
2020-05-17 19:45:31
420
原创 VMware Workstation-此主机支持Intel VT-x,但Intel VT-x处于禁用状态
解决办法:进入BIOS,把Intel Virtual Technology 的属性改成Enabled即可最后按F10,保存并退出即可!
2020-05-04 11:44:13
1143
2
原创 The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
经常会遇到的一个问题:问题的原因就是时区不一致。解决:在url末尾加上&serverTimezone=UTC
2020-05-03 19:34:54
558
1
原创 idea中surround with
idea中的surround with是把选中的代码块装进一些带有{}的语句中,比如if,try,for等等快捷键是ctrl+alt+t,先选中代码,再按快捷键,如图
2020-04-26 21:34:39
4657
原创 the server time zone value ' ' is unrecognized or represents more than one time zone. You must...
解决办法:在JDBC连接参数设置serverTimezone = UTC设置时区。
2020-04-19 19:37:35
260
jdk1.8.0_25.zip
2020-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人