- 博客(16)
- 收藏
- 关注
原创 mybatis入门
体系结构工作原理:配置mybatis.xml:mybatis.xml的改进:配置mapper.xml:增加student和dao:Impl实现功能(先增加一个配置工具类):Impl实现功能:test测试:源码分析。
2023-03-18 22:18:41 58
原创 StringTable(字符串常量池)
注意点: ①String被final修饰,不可被继承,是不可变的字符序列 ②String在jdk8及以前内部定义了final char value[]用于存储字符串数据。JDK9时改为byte[] ③字符串常量池是不会存储相同内容的字符串的 ④jdk7前在永久代的运行时常量池中,jdk7及之后在堆中字符串的拼接:1、常量与常量的拼接结果在常量池,原理是编译期优化“a” + “b” + “c” 优化成了 “a...
2021-08-04 20:41:30 222
原创 运行时数据区(方法区)
方法区主要存放的是 Class,而堆中主要存放的是实例化的对象元空间与永久代最大的区别在于:元空间不在虚拟机设置的内存中,而是使用本地内存。我们可以将方法区类比为Java中的接口,将永久代或元空间类比为Java中具体的实现类...
2021-08-04 17:54:19 118
原创 运行时数据区(堆)
注意点:1.所有的对象实例以及数组都应当在运行时分配在堆上。2.“几乎”所有的对象实例都在堆分配内存。还有一些对象是在栈上分配的(逃逸分析,标量替换)3.是GC(Garbage Collection,垃圾收集器)执行垃圾回收的重点区域。 4.几乎所有的Java对象都是在Eden区被new出来的,绝大部分的Java对象的销毁都在新生代进行了 5.JVM为每个线程分配了一个私有缓存区域,它包含在Eden空间内。...
2021-08-04 17:12:35 109
原创 运行时数据区(虚拟机栈)
虚拟机栈:它保存方法的局部变量(8 种基本数据类型、对象的引用地址)、部分结果,并参与方法的调用和返回。栈是运行时的单位,而堆是存储的单位。每个线程对应着一个虚拟机栈,对应着一个个的栈帧,对应着一次次的Java方法调用 栈只有进栈和出栈两种操作,不需要GC,但是可能存在OOM(不存在垃圾回收问题)...
2021-08-03 15:41:44 81
原创 运行时数据区(PC寄存器、本地方法栈)
PC寄存器:存储指向下一条指令的地址。唯一一个在Java虚拟机规范中没有规定任何OutofMemoryError情况的区域。使用PC寄存器的作用: 1.恢复该线程上次中断执行的位置 2.明确下一条执行哪条指令PC寄存器被设定为私有的原因: CPU在不停地做任务切换,为了记录各个线程正在执行的字节码指令且之间不发生相互干扰。本地方法栈:Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。...
2021-08-03 13:28:42 113
原创 类加载子系统
一、概述加载阶段:在内存中生成一个代表这个类的java.lang.Class对象链接阶段:①验证:字节流信息符合虚拟机要求 ②准备:为(类变量)static变量分配内存并设零值。注意:这里不会为实例变量分配初始化,类变量会分配在方法区中,而实例变量是会随着对象一起分配到Java堆中 ③解析:将常量池内的符号引用转换为直接引用的过程初始化阶段:执行类构造器方法<clini...
2021-08-03 11:37:35 71
原创 JVM和Java体系架构
Java虚拟机:一次编译,到处运行 自动内存管理 自动垃圾回收功能JVM的架构模型:一种基于栈的指令集架构,栈的优点:跨平台,指令集小,编译器容易实现,缺点是性能比寄存器差一些一种是基于寄存器的指令集架构。JVM的生命周期:虚拟机的启动:通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的。虚拟机的执行:执行一个所谓的Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程...
2021-08-03 10:57:41 67
原创 计算机网络
请求的流程:浏览器查询 DNS--->获取域名对应的 IP 地址--->浏览器请求建立链接--->发送HTTP请求--->服务端处理并返回请求--->浏览器渲染页面--->连接结束一、五层网络协议体系结构①应用层:通过应用进程间的交互来完成特定网络应用。协议:HTTP(超文本传输协议)、DNS(域名解析)、SSH(安全外壳协议)、SMTP、FTP等②传输层:向两台主机进程之间的通信...
2021-08-02 21:48:16 84
原创 环境变量&java常识
一.Hello World解释程序 /* public:表公开 class:定义了一个类 HelloWorld:一个类名 */ public class HelloWorld{表示定义了一个公开的类,叫做Hello World /* public:公开的 void:空 static:静态 main:方法名为main (String[ ] args):mai...
2020-06-07 18:00:01 196
原创 链表样例
一 . 链表的创建1)链表是由结点构建而成,结点中既包含数据域,也包含指针域,指针域涵盖的是下一个结点数据域的地址。2)用结构体的方式创建结点,再多次利用结构体创建链表函数,主函数进行调用。例如:#include<stdio.h>#include<stdlib.h>#define N sizeof(struct stud)struct stud{ long...
2019-12-09 00:46:47 169
原创 指针及样例
一 . 指针1.指针含有存储位置和存储类型两个概念,有一个指针常量“NULL”称为空指针。故定义格式:基类型名 *指针变量名【=&变量名];而且‘ * ’的结合方式为从右到左。注意:不可以用整数或其他非地址量作为地址值给指针变量赋初值,且如果没有给下指针变量赋初值,则系统默认为“空指针”(即地址字节值为0)。2 .例:float *p=&d;则 *p是变量...
2019-12-01 22:07:39 193
原创 函数,结构体与共用体
一 . 函数函数格式:返回类型 函数名(参数列表){ 说明语句;执行语句;(返回值:return 表达式或者参数实现数据传递)}程序执行过程:1)先执行main函数。2)若main函数调用了其它函数,则开始执行该调用函数中的代码,执行完之后返回main函数。3)继续执行main函数,main函数执行结束,则程序完成。注:程序中的函数相互独立,且可以相互调用,但mai...
2019-11-24 16:46:26 520
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人