自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 理解Javascript的原型和原型链

1、什么是原型?说到原型,那么我们就要来理解一下Javascript的funct类型,我们知道,javascript中是没有类这个概念的,它是一门函数式编程的语言。类有一个很重要的特性,就是它可以根据它的构造函数来创建以它为模板的对象。在javascript中,函数就有2个功能:第一、 作为一般函数调用第二、 作为它原型对象的构造函数 也就new()还是很模糊,那么我们直接来看创建一个函数的过程都做了什么吧function person(){ this.name = 'a'; }

2021-06-13 15:37:23 492 4

原创 前端Vue的组件化的思想以及创建组件的步骤

1、认识组件化人面对任何一个人处理信息的逻辑能力都是有限的,所以当面对一个复杂的问题的时候,我们不太可能一次性搞定一大堆内容。但是我们可以将问题进行拆解组件化就是我们将一个页面拆分成一个个的小的功能块,每个功能块完成属于自己的这部分独立的功能,那么大的问题也就迎刃而解了。组件化是Vue.js中的重要思想它提供了一种抽象,让我们可以开发出一个个独立 可复用的小组件来构造我们的应用。任何的应用都会被抽象城一颗组件树组件化的思想的应用:有了组件化的思想,我们在之后的开发中就要充分的利用它。

2020-12-24 22:51:20 668

原创 Vue的computed计算属性的使用和一些事件绑定用法

一. 计算属性模板内的表达式非常便利,但是设计他的初中是用于简单的计算,在模板中放入过多的逻辑会让模板过重难以维护。例如<div> {{message.splic(' ').reverse().join('')}}</div>就像上面的代码,你必须看一段时间,才能意识到,这是想要对message的反转字符串。所以,对于任何复杂的逻辑,你都应当使用计算属性1.1. 计算属性的本质fullname: {set(), get()}例子:var vm = n

2020-12-23 23:30:01 3999 3

原创 几大排序总结!图解解析+代码实例(冒泡、选择、插入、希尔、快排、归并)

冒泡排序冒泡排序是我们能想到的一个最简单的排序方法,它的思想就是将一个数组内的数字和相邻的进行比较,把比较大的放在靠后位置,当从头到尾比较一遍,我们就可以拿到最大的那个数据了,这样循环,每次排除最大的那个,就可以完成排序。上图:代码实现:(写法不唯一,可以自己简化写出)public class BubbleSort { //冒泡,arr:需要排序的数组,n:需要排序的数组的长度 public static void Bubble(int[] arr,int n){

2020-10-15 10:31:46 661 3

原创 ActiveMQ的helloword(简单使用)

1、 准备工作1、在我们的linux虚拟机中安装好我们的ActiveMQ,并启动服务,这里我们不详细介绍。2、关闭防火墙,使得我们能在我们的windows服务器上访问到我们的linux的ActiveMQ,在浏览器中输入127.0.0.1:8161,默认的初始用户名和密码都是admin,访问成功后看到控制台:注意:ActiveMQ采用61616端口提供JMS服务,采用8161提供管理控制台服务。3、创建一个Maven工程,POM.xml导入我们的依赖:<!-- https://mvnrepo

2020-10-14 15:04:24 314

原创 什么是MQ(消息中间件)?能解决哪些问题?

1、入门概述1、1 什么是消息中间件?消息中间件事利用高效可靠的消息传递机制进行异步的数据传输,并基于数据通信进行分布式系统的集成。通过提供消息队列模型和消息传递机制,可以在分布式的环境下扩展进程间的通信。1、2 为什么要在系统中引入消息中间件?解耦、削峰、异步链式调用是我们在写程序的时候的一般流程,为了完成应整体的功能,会将其拆分成多个函数(或子模块),比如模块A调用模块B,模块B调用模块C,模块C调用模块D,但是在大型分布式应用中,系统间的RPC交互频繁,一个功能背后要调用上百个接口并非不可能

2020-10-14 14:32:14 3385 1

原创 总结:IOC容器的理解和三中依赖注入的方式

1、IOC的理解IOC(控制反转)是spring的一个重要思想。首先我们需要从字面意思上去理解IOC既然是控制反转,那么我们就要知道是谁控制谁、什么是反转、哪些方面要进行反转1、谁控制谁?控制什么?在传统的javaSE中,我们需要创建对象的方式基本上是使用new的方式,是程序代码主动的去创建依赖对象,而IOC是一个专门用来创建和管理这些对象的一个容器,意思就是,当我们有了这个IOC容器后,IOC容器来控制对象的。那么控制了什么呢?控制了外部资源获取(不只是对象包括文件等)。2、反转是什么?哪些方面

2020-10-11 21:28:24 262

原创 关于redis的雪崩、穿透、击穿问题

雪崩1、我们先了解一下雪崩是什么?但是假设我们现在有5000个请求,我们的缓存能抗住4000条请求,我们的数据库能抗住2000个请求,本来挺美好的,这个时候可恶的清洁阿姨突然踢掉了我们缓存机的电源线…我们的缓存宕机了,这个时候5000个请求全部打在我们的数据库,那我们的数据库肯定也要挂了…正常的访问应该是这样:然后我们的的缓存挂了2、 我们如何应对?道高一尺,魔高一丈,既然我们的雪崩是缓存宕机后发生的,这是一场意外,我们肯定要想法子解决提前预防:我们的redis是高可用的,通过主从+哨兵

2020-10-08 10:52:40 609

原创 reids的主从复制(Master/Slave)读写分离

1、什么是主从复制?主机数据更新后根据配置和策略,自动同步更新到备机的master/salve机制,master以写为主,Salve以读为主。2、主要作用?为了满足数据的高可用性。读写分离。当我们有多台redis服务器的时候,肯定有一台主服务器,和多台从服务器,一般来说主机负责写,从机负责读。容灾恢复,有了主从复制,如果遇到突发状况,主机的服务器炸了,那么我们从机中的数据并不会丢失。3、怎么使用?3、1 配置1、配置:配从(从机)不配主(主机)2、从机配置:使用 slaveof

2020-10-06 18:16:48 335

原创 redis的发布和订阅

1、 是什么?进程间的一种消息通信模式,发布者(pub)发送消息,订阅者(sub)接收消息2、常用命令3、案例先订阅后发布后才能收到消息,1、 可以一次性订阅多个,SUBSCRIBE c1 c2 c322、消息发布,PUBLISH c2 hello-redis===========================================================================================================3 、订阅

2020-10-06 15:53:03 179

原创 redis的事务相关概述

1、是什么?我们学过sql一定就知道事务,那么redis作为一个nosql(not only sql)也一定有自己的事务redis的事务:可以一次性执行多条命令,本质是一组命令的集合,一个事务中的所有命令都会被序列化,按顺序的串行化执行,而不会被其他命令插入,不允许加塞。简单说就是:一个队列中,一次性、顺序性、排他性的执行一系列命令2、 怎么用?2、1 几个基本命令multi 用于标记一个事务块的开始,之后所有的命令都放在队列,等遇到exec命令的时候再执行exec 用于事务块内所有命令的执

2020-10-06 15:31:42 294

原创 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 190

原创 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 229

原创 什么是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 2200

原创 面试题之:java基础1

请你谈谈java中是如何支持正则表达式操作的?参考回答:java中的String类提供了支持正则表达式的操作方法,包括matches()、replaceAll()、replaceFirst()、split()。此外,hava中可以用Pattern类表示正则表达式对象,踏提供了丰富的api进行各种正则表达式的操作。比如:import java.util.regex.Matcher;import java.util.regex.Pattern;class RegExpTest { public

2020-09-27 21:22:33 1073

原创 反转单向链表

题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。1、使用非递归的方法我们的list中有一个add方法,可以指定把当前需要插入的内容插入指定的位置。public class test { ArrayList<Integer> list = new ArrayList(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayLi

2020-09-26 21:30:49 134

原创 进程共享和独占的内容

进程共享的内容:进程代码段进程的共有数据(利用这些共享的数据,进程很容易的实现相互之间的通讯)进程打开的文件描述符信号的处理器进程的当前目录和进程的用户ID与进程组ID线程独有的内容:线程ID寄存器组的值线程的堆栈错误返回码线程的信号屏蔽码...

2020-09-20 15:21:39 368

原创 简要描述MySQL数据库联合索引的命中规则

mysql的联合查询索引尊姓最左前缀匹配规则,即从联合索引的最左列开始向右匹配,知道遇到匹配的终止条件。例如联合索引(col1、col2、col3),where的条件为col1=a AND col2=`b,可命中该联合索引的(col1、col2)前缀部分,where条件为 col2=‘a’ AND col3='c’的时候,不符合左前缀匹配,不能命中该联合索引匹配终止条件为范围操作符(如>、<、 between、like等)或函数等,不能应用索引的情况,例如联合索引(col1、col2、col.

2020-09-18 19:52:57 879

原创 如果线上某台虚拟机CPU load过高,该如何快速排查原因?

造成CPU load过高的原因:Full gc的次数增大、代码中存在BUG(比如死循环、正则的不恰当使用等)都有可能会造成cpuload增高。排查方法(思路和linux的命令):1、jps -v:查看java进程号2、top -Hp [java进程号]:查看当前线程下最耗费CPU的线程3、print"%x\n"[步骤2中的java进程号]:得到线程的16进制表示4、jstack[java进程号] | grep -A 100 [步骤3的结果]:查看线程堆栈,定位代码行。参考:如何是使用JStack分

2020-09-18 19:42:30 936

原创 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 572 2

原创 MySql高级(上)之索引优化分析和EXPLAIN关键字

1、MySql的逻辑架构简介1、1 整体架构图和其他数据库相比,MySQL有点与众不同,它的架构可以在多种不同的场景中应用并发挥良好的作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取分离,这种架构可以根据业务的需求和实际需要选择合适的存储引擎1、1、1 连接层最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概

2020-09-17 13:15:45 660

原创 关于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 97

原创 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 305

原创 swagger的使用

1、认识Swaggerswagger是一个规范完整的框架,用于生成、描述、调用和可视化的Restful风格的web服务,总体目标是使用客户端的文件系统作为服务器以同样的速度来更新,文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步作用:1. 接口的文档在线自动生成。2. 功能测试。swagge是一组开源项目,其主要项目如下Swagger-tools:提供各种与Swagger进行集成和交互的工具。例如模式检验、Swagger 1.2文档转换成Swagger 2.0文档

2020-09-05 10:11:55 228

原创 动态规划之--背包问题

1、什么是动态规划?定义:动态规划算法是通过拆分问题,定义问题转台和状态之间的关系,使得这些问题能够以递推的方式去解决。动态规划算法的基本思想和分治法类似,也是将待求解的问题分解成若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。基本思想和策略由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每

2020-09-01 21:48:47 269

原创 分治算法-汉诺塔问题

1、概述在计算机科学中,分治法是一种很重要的算法,字面的解释就是”分而治之“,就是把一个问题划分成两个或多个相同或相似的子问题,再把子问题划分成更小的子问题…只到问题解决这个技巧是很多高效的算法的基础,如排序算法中的快排、归并排序等等。分治算法可以求解的一些经典问题  二分搜索 大整数乘法 棋盘覆盖 合并排序 快速排序 线性时间选择 最接近点对问题 循环赛日程表 汉诺塔任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,解题所

2020-09-01 20:58:00 499

原创 二分查找算法解析

二分算法: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 172

原创 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 284

原创 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 496

原创 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 1917

原创 JVM强引用、软引用、弱引用、虚引用、终结器引用垃圾回收行为总结

JVM的引用我们希望能描述这样一类对象:当内存空间还足够的时候,如果内存空间在进行垃圾收集后还是很紧张,则可能抛弃这些对象,-【既偏门又非常高频的面试题】强引用、软引用、弱引用、虚引用有什么区别?具体使用.场景是什么?在在JDK 1.2版之后,Java对引用的概念进行了扩充,将引用分为强引用(Strong Reference)、软引用(Soft Reference) 、弱引用(Weak Reference) 和虚引用(Phantom Reference) 4种,这4种引用强度依次逐渐减弱。除了强引

2020-08-22 15:57:13 808

原创 JVM垃圾回收安全点Safe Point

GC安全点(Safepoint)程序执行时并非在所有地方都能停顿下来开始GC,只有在特定的位置才能停顿下来开始GC,这些位置称为“安全点(Safepoint) ”Safe Point的选择很重要,如果太少可能导致GC等待的时间太长,如果太频繁可能导致运行时的性能问题。大部分指令的执行时间都非常短暂,通常会根据“是否具有让程序长时间执行的特征”为标准。比如:选择些执行时间较长的指令作为Safe Point, 如方法调用、循环跳转和异常跳转等。如何在GC发生时,检查所有线程都跑到最近的安全点停顿下来呢

2020-08-22 15:11:25 552

原创 JVM的并行和并发

程序的并行和并发程序的并发(Concurrent)在操作系统中,是指一个时间段上有几个程序都处于已经启动运行到运行已经完毕之间,且这几个程序都是在同一个处理器_上运行。并发不是真正意义上的”同时进行“,知识CPU把一个时间段划分成几个时间片段(时间区间),然后在这几个时间区间之间来回切换,由于CPU处理的速度非常快,只要时间间隔处理的的当,就可以让用户感觉是多个应用程序同时在进行程序的并行(Parallel)当系统有一个以上的CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个

2020-08-22 15:07:05 694

原创 JVM中的STW(Stop The World)

1、Stop The WorldStop一the一World,简称STW,指的是Gc事件发生过程中,会产生应用程序的停顿。停顿产生时整个应用程序线程都会被暂停,没有任何响应,有点像卡死的感觉,这个停顿称为STW。.举例:可达性分析算法中枚举根节点(GC Roots)会导致所有Java执行线程停顿。.停顿的原因分析工作必须在一个能确保一致性的快照中进行一致性指整个分析期间整个执行系统看起来像被冻结在某个时间点上如果出现分析过程中对象引用关系还在不断变化,则分析结果的准确性无法保证示例代码:

2020-08-22 14:43:48 13892

原创 JVM内存溢出与内存泄露

1、内存溢出与内存泄露内存溢出相对于内存泄露来说,尽管更容易被理解,但是同样的,内存溢出也是引发程序崩溃的罪魁祸首之一由于GC一直在发展,所有一般情况下,除非应用程序占用的内存增长速度非常快,造成垃圾回收已经跟不上内存消耗的速度,否则不太容易出现OOM的情况。大多数情况下,GC会进行各种年龄段的垃圾回收,实在不行了就放大招,来一次独占式的Full GC操作,这时候会回收大量的内存,供应用程序继续使用。javadoc中对OutOfMemoryError的解释是,没有空闲内存,并且垃圾收集器也无法提供

2020-08-22 14:38:32 370

原创 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 7419

原创 JVM中的垃圾回收算法

1、垃圾标记阶段对象存活判断:在堆中存放着几乎所有的java对象实例,在GC执行垃圾回收之前,首先需要区分内存中那些是存活对象,哪些是已经死亡的对象,只有被标记为死亡的对象,GC才会在执行垃圾回收的时候,释放其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段那么JVM中究竟如何标记一个死亡对象呢? 简单来说,当一个对象已经被不在被任何存活的对象继续引用,就可以宣判已经死亡判断对象存活一般有两种方式:引用技术算法和可达性分析算法1、2 引用技术算法(Java没有采用)引用计数算法(Ref

2020-08-21 14:01:07 323

原创 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 235

原创 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 429

原创 JVM的执行引擎

1、 概述执行引擎是java虚拟机的核心组成部分之一虚拟机是一个相对于“物理机”的概念,这两种机器都有代码执行能力。其区别是物理机的执行引擎是直接建立在处理、缓存、指令集和操作系统层面上的而虚拟机的执行引擎是自行实现的,因此可以不受物理条件制约的定制指令集与执行引擎的结构体系,能够执行那些不被硬件支持的指令集格式JVM的主要任务是负责装载字节码到其内部,但字节码不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM锁识别的字节码指令、符号

2020-08-19 22:12:52 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除