
笔记
可乐不可乐。
这个作者很懒,什么都没留下…
展开
-
Vue的computed计算属性的使用和一些事件绑定用法
一. 计算属性模板内的表达式非常便利,但是设计他的初中是用于简单的计算,在模板中放入过多的逻辑会让模板过重难以维护。例如<div> {{message.splic(' ').reverse().join('')}}</div>就像上面的代码,你必须看一段时间,才能意识到,这是想要对message的反转字符串。所以,对于任何复杂的逻辑,你都应当使用计算属性1.1. 计算属性的本质fullname: {set(), get()}例子:var vm = n原创 2020-12-23 23:30:01 · 4018 阅读 · 3 评论 -
关于redis的雪崩、穿透、击穿问题
雪崩1、我们先了解一下雪崩是什么?但是假设我们现在有5000个请求,我们的缓存能抗住4000条请求,我们的数据库能抗住2000个请求,本来挺美好的,这个时候可恶的清洁阿姨突然踢掉了我们缓存机的电源线…我们的缓存宕机了,这个时候5000个请求全部打在我们的数据库,那我们的数据库肯定也要挂了…正常的访问应该是这样:然后我们的的缓存挂了2、 我们如何应对?道高一尺,魔高一丈,既然我们的雪崩是缓存宕机后发生的,这是一场意外,我们肯定要想法子解决提前预防:我们的redis是高可用的,通过主从+哨兵原创 2020-10-08 10:52:40 · 621 阅读 · 0 评论 -
reids的主从复制(Master/Slave)读写分离
1、什么是主从复制?主机数据更新后根据配置和策略,自动同步更新到备机的master/salve机制,master以写为主,Salve以读为主。2、主要作用?为了满足数据的高可用性。读写分离。当我们有多台redis服务器的时候,肯定有一台主服务器,和多台从服务器,一般来说主机负责写,从机负责读。容灾恢复,有了主从复制,如果遇到突发状况,主机的服务器炸了,那么我们从机中的数据并不会丢失。3、怎么使用?3、1 配置1、配置:配从(从机)不配主(主机)2、从机配置:使用 slaveof原创 2020-10-06 18:16:48 · 345 阅读 · 0 评论 -
redis的发布和订阅
1、 是什么?进程间的一种消息通信模式,发布者(pub)发送消息,订阅者(sub)接收消息2、常用命令3、案例先订阅后发布后才能收到消息,1、 可以一次性订阅多个,SUBSCRIBE c1 c2 c322、消息发布,PUBLISH c2 hello-redis===========================================================================================================3 、订阅原创 2020-10-06 15:53:03 · 182 阅读 · 0 评论 -
redis的事务相关概述
1、是什么?我们学过sql一定就知道事务,那么redis作为一个nosql(not only sql)也一定有自己的事务redis的事务:可以一次性执行多条命令,本质是一组命令的集合,一个事务中的所有命令都会被序列化,按顺序的串行化执行,而不会被其他命令插入,不允许加塞。简单说就是:一个队列中,一次性、顺序性、排他性的执行一系列命令2、 怎么用?2、1 几个基本命令multi 用于标记一个事务块的开始,之后所有的命令都放在队列,等遇到exec命令的时候再执行exec 用于事务块内所有命令的执原创 2020-10-06 15:31:42 · 298 阅读 · 0 评论 -
redis的五大数据类型和相关语法的使用
string(字符串)string是redis最基本的类型,你可以理解成Memcached一模一样的类型,一个key对应一个valuestring类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化对象。string类型是reids 最基本的数据雷兄,一个redis中字符串value最多可以是512mhash(哈希,类似java中的map)hash(哈希)Redis hash是一个键值对集合Redis hash是一个string类型的field和valu原创 2020-10-06 10:14:11 · 199 阅读 · 0 评论 -
redis持久化的方式AOF和RDB的相关概述
1 、概述redis是一种noslq(not only sql),那么他必定需要持久化,AOF和RDB就是redis持久化的两种方式。2、RDB2、1 什么是RDB?在指定的时间间隔内将内存中的数据集快照写入到磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读取到内存中。Redis会单独创建(fork)一个子进程进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程是不尽兴任何IO操作的,这就确保了极高的性能原创 2020-10-06 10:01:20 · 233 阅读 · 0 评论 -
什么是redis?为什么要用redis?(redis的概述)
1、入门概述1、1 互联网时代背景下大机遇,为什么要使用nosql1.单机Mysql的美好年代在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。上述架构下,我们来看看数据存储的瓶颈是什么?1.数据量的总大小 一个机器放不下时2.数据的索引(B+ Tree)一个机器的内存放不下时3.访问量(读写混合)一个实例不能承受如果满足了上述1 or 3个,进化…2.Memcached(缓存)+Myasql+垂直拆分后来,原创 2020-09-29 21:55:12 · 2208 阅读 · 0 评论 -
MySQL高级(下)之索引失效和一些优化
1、表单使用索引的常见索引失效1、1 全值匹配有以下sql语句EXPLAIN SELECT SQL_NO_CACHE * FROM emp WHERE emp.age=30 EXPLAIN SELECT SQL_NO_CACHE * FROM emp WHERE emp.age=30 and deptid=4 EXPLAIN SELECT SQL_NO_CACHE * FROM emp WHERE emp.age=30 and deptid=4 AND emp.name = 'abcd'建立索原创 2020-09-18 16:49:19 · 578 阅读 · 2 评论 -
MySql高级(上)之索引优化分析和EXPLAIN关键字
1、MySql的逻辑架构简介1、1 整体架构图和其他数据库相比,MySQL有点与众不同,它的架构可以在多种不同的场景中应用并发挥良好的作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取分离,这种架构可以根据业务的需求和实际需要选择合适的存储引擎1、1、1 连接层最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概原创 2020-09-17 13:15:45 · 669 阅读 · 0 评论 -
关于mysql中join指令的相关使用
七种join指令案例讲解多表联合查询sql语句CREATE TABLE `tbl_dept` (`id` INT(11) NOT NULL AUTO_INCREMENT,`deptName` VARCHAR(30) DEFAULT NULL,`locAdd` VARCHAR(40) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;CREATE TABLE `tb原创 2020-09-15 09:43:42 · 104 阅读 · 0 评论 -
linux 的一些基础命令操作(上)
1、开机、重启、和用户登陆注销1、1 关机&重启命令基本介绍shutdown- shutdown - h now : 表示立即关机- shutdown -h 1: 表示1分钟后关机- shutdown -r now :立即重启halt就是直接使用, 效果等价于直接关机reboot就是重启系统syn:把内存的数据同步到磁盘注意细节当我们关机的或重启的时候,都应该执行一下sync 的指令,吧内存的数据写入磁盘中,防止数据丢失。2、 用户登录和注册2、1 基本介绍登录时尽原创 2020-09-12 21:05:52 · 313 阅读 · 0 评论 -
swagger的使用
1、认识Swaggerswagger是一个规范完整的框架,用于生成、描述、调用和可视化的Restful风格的web服务,总体目标是使用客户端的文件系统作为服务器以同样的速度来更新,文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步作用:1. 接口的文档在线自动生成。2. 功能测试。swagge是一组开源项目,其主要项目如下Swagger-tools:提供各种与Swagger进行集成和交互的工具。例如模式检验、Swagger 1.2文档转换成Swagger 2.0文档原创 2020-09-05 10:11:55 · 230 阅读 · 0 评论 -
动态规划之--背包问题
1、什么是动态规划?定义:动态规划算法是通过拆分问题,定义问题转台和状态之间的关系,使得这些问题能够以递推的方式去解决。动态规划算法的基本思想和分治法类似,也是将待求解的问题分解成若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。基本思想和策略由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每原创 2020-09-01 21:48:47 · 271 阅读 · 0 评论 -
分治算法-汉诺塔问题
1、概述在计算机科学中,分治法是一种很重要的算法,字面的解释就是”分而治之“,就是把一个问题划分成两个或多个相同或相似的子问题,再把子问题划分成更小的子问题…只到问题解决这个技巧是很多高效的算法的基础,如排序算法中的快排、归并排序等等。分治算法可以求解的一些经典问题 二分搜索 大整数乘法 棋盘覆盖 合并排序 快速排序 线性时间选择 最接近点对问题 循环赛日程表 汉诺塔任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,解题所原创 2020-09-01 20:58:00 · 508 阅读 · 0 评论 -
二分查找算法解析
二分算法:1、我们讲过的二分查找,是使用递归的方式,下面我们讲解二分查找的非递归方式2、 二分查找只适用于从有序的数列中进行查找3、二分查找法的运行时间为对数时间O(log2n),即查找到需要的目标位置最多只需要log2n步,假设从[0,99]的队列(100个数),中寻找目标数30,则需要查找7次(2 ^6 <100 < 2^7)二分查找的代码实现数组{1,3,8,10,11,100},编程实现二分查找,要求使用非递归的方式完成1)、思路分析2)、代码实现package com原创 2020-08-30 10:05:22 · 206 阅读 · 0 评论 -
JVM中GC的日志分析
通过阅读GC日志,我们可以了解Java虛拟机内存分配与回收策略。内存分配与垃圾回收的参数列表一XX: +PrintGC 输出Gc日志。类似: 一verbose:gc一XX: +PrintGCDetails 输出GC的详细日志一XX: +PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)一XX: +PrintGCDateStamps输出GC的时间戳(以日期的形式,如2013一05一04T21 : 53:59.234+0800 )一XX: +PrintHeapAtGC 在进行G原创 2020-08-22 21:05:14 · 291 阅读 · 0 评论 -
JVM的七大垃圾回收器下篇----G1(Garbage First)
1、 G1回收器:区域化分代式既然我们已经有了前面几个强大的GC,为什么还要发布Garbage First(G1)GC?原因就在于应用程序应对的业务越来越庞大、复杂、用户越来越多。没有GC就不能保证应用程序正常进行,而经常造成STW的GC又跟不上实际的需求,所以才会不断地尝试对GC进行优化,G1 (Garbage一First) 垃圾回收器是在Java7 update4之后引入的一个新的垃圾回收器,是当今收集器技术发展的最前沿成果之一。与此同时,为了适应现在不断扩大的内存和不断增加的处理器数量,进一步降原创 2020-08-22 20:58:46 · 508 阅读 · 0 评论 -
JVM的七大垃圾回收器:上篇---Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1
GC逻辑分类垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。由与JDK的版本处于高速迭代的过程中,因此Java发展至今已经衍生了众多的GC版本。从不同的角度分析垃圾收集器,可以将GC分为不同的类型按线程数分(垃圾回收线程树)可以分为串行垃圾回收和并行垃圾回收器串行回收:串行回收指的是在同一时间段内,只允许有一个CPU用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾收集工作结束。➢在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的场合,串行回收原创 2020-08-22 17:40:23 · 1928 阅读 · 0 评论 -
JVM强引用、软引用、弱引用、虚引用、终结器引用垃圾回收行为总结
JVM的引用我们希望能描述这样一类对象:当内存空间还足够的时候,如果内存空间在进行垃圾收集后还是很紧张,则可能抛弃这些对象,-【既偏门又非常高频的面试题】强引用、软引用、弱引用、虚引用有什么区别?具体使用.场景是什么?在在JDK 1.2版之后,Java对引用的概念进行了扩充,将引用分为强引用(Strong Reference)、软引用(Soft Reference) 、弱引用(Weak Reference) 和虚引用(Phantom Reference) 4种,这4种引用强度依次逐渐减弱。除了强引原创 2020-08-22 15:57:13 · 817 阅读 · 0 评论 -
JVM垃圾回收安全点Safe Point
GC安全点(Safepoint)程序执行时并非在所有地方都能停顿下来开始GC,只有在特定的位置才能停顿下来开始GC,这些位置称为“安全点(Safepoint) ”Safe Point的选择很重要,如果太少可能导致GC等待的时间太长,如果太频繁可能导致运行时的性能问题。大部分指令的执行时间都非常短暂,通常会根据“是否具有让程序长时间执行的特征”为标准。比如:选择些执行时间较长的指令作为Safe Point, 如方法调用、循环跳转和异常跳转等。如何在GC发生时,检查所有线程都跑到最近的安全点停顿下来呢原创 2020-08-22 15:11:25 · 559 阅读 · 0 评论 -
JVM的并行和并发
程序的并行和并发程序的并发(Concurrent)在操作系统中,是指一个时间段上有几个程序都处于已经启动运行到运行已经完毕之间,且这几个程序都是在同一个处理器_上运行。并发不是真正意义上的”同时进行“,知识CPU把一个时间段划分成几个时间片段(时间区间),然后在这几个时间区间之间来回切换,由于CPU处理的速度非常快,只要时间间隔处理的的当,就可以让用户感觉是多个应用程序同时在进行程序的并行(Parallel)当系统有一个以上的CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个原创 2020-08-22 15:07:05 · 698 阅读 · 0 评论 -
JVM中的STW(Stop The World)
1、Stop The WorldStop一the一World,简称STW,指的是Gc事件发生过程中,会产生应用程序的停顿。停顿产生时整个应用程序线程都会被暂停,没有任何响应,有点像卡死的感觉,这个停顿称为STW。.举例:可达性分析算法中枚举根节点(GC Roots)会导致所有Java执行线程停顿。.停顿的原因分析工作必须在一个能确保一致性的快照中进行一致性指整个分析期间整个执行系统看起来像被冻结在某个时间点上如果出现分析过程中对象引用关系还在不断变化,则分析结果的准确性无法保证示例代码:原创 2020-08-22 14:43:48 · 13918 阅读 · 0 评论 -
JVM内存溢出与内存泄露
1、内存溢出与内存泄露内存溢出相对于内存泄露来说,尽管更容易被理解,但是同样的,内存溢出也是引发程序崩溃的罪魁祸首之一由于GC一直在发展,所有一般情况下,除非应用程序占用的内存增长速度非常快,造成垃圾回收已经跟不上内存消耗的速度,否则不太容易出现OOM的情况。大多数情况下,GC会进行各种年龄段的垃圾回收,实在不行了就放大招,来一次独占式的Full GC操作,这时候会回收大量的内存,供应用程序继续使用。javadoc中对OutOfMemoryError的解释是,没有空闲内存,并且垃圾收集器也无法提供原创 2020-08-22 14:38:32 · 378 阅读 · 0 评论 -
java垃圾回收中System.gc()的理解
System.gc()无法保证GC一定执行在默认情况下,通过System.gc()或Runtime.getRuntime()的调用,会显示的触发FullGC,同时对老年代和新生代进行回收,会尝试释放掉被丢弃对象占用的内存JVM实现者可以通过system.gc()调用来决定JVM的GC行为,而一般情况下,垃圾回收应该是自动进行的,无需手动触发,否则就太过于麻烦了。然而System.gc()调用附带一个免责声明,无法保证对垃圾收集器的调用(无法保证马上出发GC)在一些特殊情况下,如我们正在编写一个性原创 2020-08-22 14:00:31 · 7433 阅读 · 0 评论 -
JVM中的垃圾回收算法
1、垃圾标记阶段对象存活判断:在堆中存放着几乎所有的java对象实例,在GC执行垃圾回收之前,首先需要区分内存中那些是存活对象,哪些是已经死亡的对象,只有被标记为死亡的对象,GC才会在执行垃圾回收的时候,释放其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段那么JVM中究竟如何标记一个死亡对象呢? 简单来说,当一个对象已经被不在被任何存活的对象继续引用,就可以宣判已经死亡判断对象存活一般有两种方式:引用技术算法和可达性分析算法1、2 引用技术算法(Java没有采用)引用计数算法(Ref原创 2020-08-21 14:01:07 · 327 阅读 · 0 评论 -
JVM垃圾回收的概念
1、 什么是垃圾?什么是垃圾呢?➢垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。外文: An object is considered garbage when it can no longer be reached from any pointer in the runningprogram.如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间一定会保留到应用程序结束,被保留的空间无法被其他对象使用,甚至可能出现内存溢出垃圾收集,不是Java语言的伴生原创 2020-08-21 11:11:22 · 246 阅读 · 0 评论 -
JVM的字符串常量池
1、 String的基本特性string :字符串,使用一对“”引起来表示String s1 = “hello”;//字面量的定义方式String s2 = new String(“hello”);String类是已经被声明为final的, 不可被继承。String实现了Serializable接口:表示字符串是支持序列化的。 实现了Comparable接口:表示String可以比较大小String在JDK8 以前定义为private final char value[] 存储字符串数据原创 2020-08-20 22:04:17 · 437 阅读 · 0 评论 -
JVM的执行引擎
1、 概述执行引擎是java虚拟机的核心组成部分之一虚拟机是一个相对于“物理机”的概念,这两种机器都有代码执行能力。其区别是物理机的执行引擎是直接建立在处理、缓存、指令集和操作系统层面上的而虚拟机的执行引擎是自行实现的,因此可以不受物理条件制约的定制指令集与执行引擎的结构体系,能够执行那些不被硬件支持的指令集格式JVM的主要任务是负责装载字节码到其内部,但字节码不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM锁识别的字节码指令、符号原创 2020-08-19 22:12:52 · 258 阅读 · 0 评论 -
JVM的直接内存
1、直接内存直接内存不是虚拟机运行时数据区的一部分,也不是《java虚拟机规范》中定义的内存区域直接内存是java堆外的、直接向系统申请的内存空间简单理解:java.process memory= java heap+native memory示例代码:/** * IO NIO (New IO / Non-Blocking IO) * byte[] / char[] Buffer * Stream Channel原创 2020-08-19 14:16:52 · 505 阅读 · 0 评论 -
JVM学习之---对象实例化内存布局与访问定位
1、 对象的实例化1、1 创建对象的方式1、 new:最常见的方式(本质就是构造器) 变形1:Xxx的静态方法变形2:XxBuilder/XxoxFactory的静态方法2、Class的newInstance():反射的方法,只能调用空餐的构造器,权限必须是public3、 Construtor的newInstance(Xxx):反射的方法,位于java.lang.reflect.Constructor 可以调用空参、带参的构造器,权限没有要求4、使用clone():不调用任何构造器,当原创 2020-08-17 17:09:02 · 135 阅读 · 0 评论 -
JVM的运行时数据区之--方法区
1、概述首先我们先来回顾一下JVM的运行时数据区的分类图那么方法区和我们前面的堆、栈之间有没有什么联系呢?方法区的理解方法区和java堆一样,是各个线程共享的内存区域方法区在JVM启动时,就会被创建,并且它的实际的物理内存空间和java的堆区一样,都是可以不连续的方法区的大小,跟堆空间一样,都是可选择固定或者扩展的方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类,导致方法去溢出,虚拟机同样会抛出内存溢出的错误,java.lang.OutOfMemoryError.Perm原创 2020-08-16 21:35:00 · 448 阅读 · 0 评论 -
JVM堆空间的相关知识(下)--逃逸分析和代码优化之栈上分配
首先我们先想一个问题:JVM的堆是分配对象的唯一选择吗?在《深入理解Java虚拟机》中关于Java堆内存有这样一段描述:随着JIT编译期的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么“绝对”了。在Java虚拟机中,对象是在Java堆中分配内存的,这是一个普遍的常识。但是,有一种特殊情况,那就是如果经过逃逸分析(Escape Analysis)后发现,一个对象并没有逃逸出方法的话,那么就可能被优化成栈上分配。这样就无需在堆上分配内存,原创 2020-08-13 17:22:40 · 225 阅读 · 0 评论 -
JVM堆空间的相关知识(中)--GC以及堆空间的一些思想
本篇主要记载了一些JVM对于堆空间GC的相关概述1、 JVM常用的调优工具JDK命令行Eclipse:Memory Analyzer ToolJconsoleVisualVMJprofilerJava Flight RecorderGCViewerGc Easy2、Minor GC 、Major GC 与 Full GCGC 就是垃圾回收机制,当我们的堆空间不足的时候,就会发生GC,但是并不是每次都会对对堆空间的所有空间进行垃圾回收的,而大部分的GC都是针对新生代针对HotSpo原创 2020-08-13 17:01:12 · 326 阅读 · 0 评论 -
SpringBoot的错误处理机制
1、SpringBoot的默认的错误处理机制默认效果:1)、浏览器:返回一个默认的错误页面浏览器发送的请求头:2)、其他客户端:默认响应一个json数据原理:可以参照ErrorMvcAutoConfiguration;错误处理的自动配置;给容器中添加一下组件:1、DefaultErrorAttributes帮我们在页面共享信息;@Override public Map<String, Object> getErrorAttributes(RequestAttribut原创 2020-08-11 09:25:24 · 135 阅读 · 0 评论 -
与SpringBoot的web开发的环境相关的
1、 简介使用SpringBoot的简要步骤:1)、创建SpringBoot应用,选中我们需要的模块;2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码自动配置原理是什么呢?这个场景SpringBoot帮我们配置了什么?我们可以自己修改吗?能修改哪些配置?能不能扩展?…xxxxAutoConfiguration:帮我们给容器中自动配置组件;xxxxProperties:配置类来封装配置文件的内容;2、SpringBo原创 2020-08-10 15:05:18 · 125 阅读 · 0 评论 -
JVM堆空间的相关知识(上)--堆中空间的分配
1、堆的概述1、一个JVM实例中只存在一个堆内存,堆也是java内存管理的核心区域2、 JAVA堆区在JVM启动的时候被创建了, 其空间大小也就确定了,是JVM管理的最大一块内存空间(堆内存 可以调节)3、Java虚拟机规范》规范,对可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的4、所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)5、(几乎)所有的对象实例以及数组都应当在运行时分配在堆上。6、数组原创 2020-08-10 14:46:31 · 694 阅读 · 0 评论 -
JVM与虚拟机栈相关的-下篇:操作数栈和动态链接、方法返回地址
1、概念操作数栈:Operand Stack每一个独立的栈帧除了包含局部变量表外,还包含一个后进先出的操作数栈,可以称之为表达式栈在方法的执行过程中,根据字节码指令,往栈中写入数据,称为入栈(push),提取数据,称为出栈(pop)某些字节码指令将值压入操作数栈,其余的字节码指令将操作数取出栈,使用他们后再把结果压入栈比如:执行复制、交换、求和等操作代码举例:代码:字节码指令操作数栈,主要用于保存计算过程中的中间结果,同时作为计算过程中变量的临时存储空间。操作数栈就是jvm执行引原创 2020-08-08 10:08:06 · 597 阅读 · 0 评论 -
JVM虚拟机栈的相关理解
1、虚拟机栈的概述有很多开发人员一提到Java内存结构,就会非常粗粒度地将JVM中的内存区理解为仅有Java堆(heap)和Java战(stack)?为什么?首先,栈是运行时的单位,而堆是存储的单位栈解决程序的运行问题,即程序如何运行,或者说如何处理数据堆解决的是数据存储的问题,即数据怎么放,放在哪里2、什么是java虚拟机栈?Java虚拟机栈(Java Virtual Machine Stack),早期也叫java栈,每个线程在创建时,都会创建一个虚拟机栈,其内部保存一个个的栈帧,对应了原创 2020-08-07 11:31:25 · 243 阅读 · 0 评论 -
SpringBoot和日志框架有关的
1、日志框架我们在写代码的时候,难免出现需要记录一下我们代码运行时出现的一下重要数据,出现的错误等等,于是就有大牛专门开发了一些与日志相关的框架,供我们使用但是技术更新迭代,日志框架有时候不能满足所有的需求,因此出现了和JDBC-数据库驱动一样的统一的日志接口–日志门面(日志的一个抽象层):logging-abstract.jar我们需要给项目中导入具体的日志实现就行了,我们之前的日志框架都是实现的抽象层市面上有的日志框架:JUL、JCL、Jboss-loggin、logback、log4j、lo原创 2020-08-05 22:16:47 · 201 阅读 · 0 评论