- 博客(16)
- 收藏
- 关注
原创 vscode 运行springboot项目
## 安装插件`Spring Boot Extension Pack``Java Extension Pack``Language Support for Java(TM) by Red Hat`配置java路径、maven路径,修改 json.settings文件修改配置json.settings
2021-05-13 16:37:54 1128
原创 MyBatis-Plus执行SQL分析打印(04)
性能分析插件我们在平时的开发中,会遇到一些慢查询,会遇到一些慢sql,测试!druid…MP也提供了性能分析插件,如果超过了这个时间就停止运行。导入插件 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.9.1</version>
2021-03-27 22:04:36 1103
原创 MyBatis-PlusCRUD扩展(03)
CRUD扩展插入操作insert 插入 @Test public void testInsert() { User user = new User(); user.setName("name"); user.setAge(24); user.setEmail("511814693@qq.com"); int result = userMapper.insert(user); S
2021-03-24 21:43:28 153 1
原创 MyBatis-Plus配置(02)
配置我们所有的sql现在都是不可见的,我们希望知道它怎么执行的,所以我们必须要看日志!日志配置mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl日志格式
2021-03-23 18:05:53 199
转载 Mybatis-Plus(01)
Mybatis-Plus 快速入门特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 I
2021-03-23 17:52:42 160
原创 虚拟机栈的异常
常见异常OOM:由于当前程序线程数过多,会导致出现虚拟机栈内存溢出问题不过这个异常很少见,因为系统创建线程的开销远大于创建虚拟机栈的开销大SOF:由于方法递归的层次太深,a->b->c->d->..出现的方法调用深度方法的局部变量由很大关系...
2021-03-20 20:25:00 146
原创 栈帧的结构
栈帧的结构标题栈的结构分为四层局部变量当前方法的局部变量基本数据类型存值,引用数据类型存地址数据槽(slot)->专门对应于我们存储数据的字节一个数据槽4个字节,所有基本数据类型和引用数据类型基本上都是占用一个槽,只有double和long占用两个槽,为了代码的快速分配一般情况下非静态方法的第一个位置存放的是当前对象的引用(this)操作数栈对方法中的变量提供计算的区域常量信息,常量数据的引用常量数据会专门存放到常量池中,基本数据类型、引用数据类型都存放常量
2021-03-19 22:03:10 200
原创 栈帧的作用
每一个线程都会对一个虚拟机栈线程中的每个方法都会创建一个栈帧()栈帧可以把它理解为一个数据结构(数组,map)存放了本次方法执行过程中所需要的所有数据如果一个线程中有多个方法的调用a->b->c->d 发挥虚拟机栈的作用先进后出,后进先出,会对栈帧进行压栈操作方法的调用就类似于栈帧的压栈和出栈当前正在执行的方法,它的栈帧一定在栈顶,我们只能获取到栈顶位置,栈帧中的数据...
2021-03-19 21:37:27 219
原创 虚拟机栈
虚拟机栈存放当前线程中所声明的变量java的数据类型基本数据类型引用数据类型基本数据类型和引用数据类型划分的标准是什么?变量在声明的时候,是否能够确认占用内存的大小数据类型是否能确认占用内存大小基本数据类型能引用数据类型不能基本数据类型名称字节byte1short2int4long8float4double8boolean1位char2引用数据类型类 接口 数
2021-03-18 22:36:12 74
原创 程序计数器
程序计数器JVM内存划分程序计数器只为当前的线程所服务cpu将时间片分配给线程,然后线程开始执行对应代码(指令)Thread1 --> 50Thread2 -->33Thread3 --> ?程序计数器会记录当前线程要执行指令的内存地址因为指令也会被存放到JVM的内存中(加载类的过程中)它只占用一小部分内存区域,只记录一个地址,所以我们认为程序计数器是不会出现内存溢出问题的分区。...
2021-03-18 22:10:54 80
原创 JVM划分的标准
内存划分的标准JVM就是一个程序,是计算机的一个集成,需要对内存区进行划分JVM按照线程是否共享将内存首先分成两大类线程独享有多少个线程就有多少个独享线程区域每一个线程只能访问独享区内部的数据,线程之间不能共享线程独享区跟随着线程的创建而创建,随着线程的销毁而被回收线程共享属于所有线程都可以访问的区域所以本区域中会存放大量对象,所有的线程都可以创建自己的对象当线程被销毁的时候,共享区的数据也会被垃圾回收掉并不会马上回收,需要等待达到垃圾回收的阈值才会进行回收线
2021-03-18 22:00:57 85
原创 CPU与多线程
CPU与多线程cpu: 中央处理器线程:隶属于进程,属于一个运行中程序的单独路线 单独的逻辑如果你的计算机是单核,能不能同时玩游戏,听音乐、下载电影?电脑将其运算能力分为以纳秒为单位,称之为时间片,如果一个程序得到了时间片,我们可以理解为它拥有了cpu的执行能力,理论上来讲cpu会根据程序的线程数目分配对应比例的时间片,所以以cpu的视角来看,程序是顺序执行的,但是以人的视角来看,程序是并行执行的,切换的时间太快了,人感觉不到对于单线程的应用,多核的cpu是无能为力的,但是我们的计算机同在运
2021-03-17 21:49:07 179
原创 JVM划分区域的原因
JVM划分区域的原因JVM 内存区域划分jvm也是一个软件、也需要和其他软件共享计算机的内存。我们所有java运行中所处理的对象或者算法都使用jvm的内存空间java 也可以通过一些参数去控制jvm内存的使用量最小内存 XMS最大内存 XMx按照正常理解,jvm用于创建对象,随着对象数量的增加,jvm使用率也在增加如果jvm使用率达到100%就无法使用为了让jvm可以让更多的对象重复使用,我们需要垃圾回收垃圾:不会被使用的对象所以jvm中的空间是被循环使用的为了提高垃圾回收
2021-03-17 21:32:27 235 3
原创 JVM内存区域的划分
JVM内存区域的划分程序程序=算法+数据结构面向过程的思路数据结构:按照一定的结构对数据进行存储,便于我们的操作链表(删除插入) 数组(随机访问)红黑树(数据的搜索)b树 图算法:解决问题的不走或者流程,每一个步骤所要操作的就是数据结构中的值冯诺依曼体系所有的数据都存放在内存中(指令和数据)所有的数据的数据以二进制进行存储完整的体系(输入设备、存储器、控制器、运行器、输出设备)JVM中要同时存放算法和数据结构jvm 如何时创建和销毁对象jvm 如何判断
2021-03-17 21:11:37 78
原创 稀疏数组
int[][] array1 = new int[11][11]; array1[1][2] = 1; array1[2][3] = 2; System.out.println("输出原始的数组"); for (int[] ints : array1) { for (int anInt : ints) { System.out.print(anInt + "\t"); ...
2021-03-13 18:34:44 56
原创 冒泡排序
冒泡排序 private static String bubbleSort(int[] array) { int temp; boolean flag = false; for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (array[j] &g
2021-03-13 17:39:09 56
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人