很多小伙伴在面临面试的时候遇到的许多问题,面试常用的几项原因,我在下方给大家介绍了,大家可以仔细阅读一下。

内存区域

虚拟机栈—

生命周期与线程相同,描述的是Java 方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧,用于存取局部变量表、操作数栈、动态链接、方法出口等信息

本地方法栈—

与虚拟机栈作用相似,只不过本地方法栈是为虚拟机使用到的Native方法服务

堆-序计数器—

内存空间较小,可以看做是当前线程所执行的字节码的行号指示器。此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域

如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值为空(Undefined)

堆----

内存区域最大的一块,此内存区域的唯一目的就是存放对象实例,基本上所有的对象实例分配都是由其分配内存。Java堆是垃圾收集器管理的区主要区域,因此有时也成为GC堆

方法区—

也称为非堆,主要用来存取已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据

对象内存布局
对象头(Header)—

用于存储对象自身的运行时数据,如HashCode、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳

类型指针—

实例数据(Instance Data)

对象真正存储的有效信息,也是在程序代码中所定义的各种类型的字段内容

对齐补充(Padding)

仅仅起到占位符的作用

对象访问定位
句柄访问—

Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自的具体地址信息

直接指针访问—

Java堆对象的布局中就必须考虑如何放置访问类型数据的相关信息,而reference中存储的直接就是对象地址

虚拟机栈和本地方法栈异常
如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常

如果虚拟机在拓展时无法申请到足够的内存空间,则抛出OutOfMemoryError(OOM)异常

对象已死
引用计数法—

对象每引用一次就加1,引用失效则减1,当引用次数为0的时候将进行回收,会出现循环依赖问题,因此虚拟机没有使用此算法

可达性分析—

使用GC ROOTS来判断一个对象是否可达,不可达将其判断为不可达的对象

回收算法
标记-清除算法—

将要回收的对象进行标记,回收的时候直接将已标记的对象进行回收,但是很容易产生内存碎片

标记-整理算法—

将要回收的对象进行标记并移动到内存区域的一端,减少内存碎片的产生,但是这很影响效率

复制算法—

新生代的对象大部分都是朝夕生死的,使用复制算法将不需要回收的对象移动到Survivor区,为Eden区腾出空间,因为对象优先在Eden分配,年轻代中默认为Eden:Survivor为8:1,其中Survivor有两个

分代收集算法—

只是根据对象存活周期的不同将内存划分为几块,一般是将java堆分为新生代和老年代,这样就可以根据各个年代的特点采用最适当的收集算法

在新生代中,每次垃圾回收都有大批对象死去,只有少量存活,那就选中复制算法,只需要少量存活对象的复制成本就可以完成收集。而老年代中因为对象存活率高,没有额外空间对它进行分配担保,就必须使用标记–清理或标记–整理算法

HotSpot算法实现
枚举根节点—

安全点(Safepoint)

安全点的选定基本上是以程序“是否具有让程序长时间执行的特征”为标准进行选定的——因为每条指令执行的时间都是非常短暂,程序不太可能因为指令长度太长这个原因而过长时间运行,“长时间运行”的最明显的特征就是指令序列复用,如方法调用、循环跳转、异常跳转

产生安全点

方法调用

循环跳转

异常跳转

安全区域(Safe Region)

Safepoint机制保证了程序执行时,在不太长的时间内就会遇到可进入GC的Safepoint。但是,程序“不执行”的时候呢?所谓的程序不执行就是没有分配CPU时间,典型的例子就是线程处于Sleep状态或者Blocked状态,这时候线程无法响应JVM的中断请求,“走”到安全的地方挂起,JVM也显然不太可能等待线程重新被分配CPU时间。对于这种情况,需要安全区域来解决

在一段代码片段中,引用关系不会发生变化,在这个区域中的任意地方开始GC都是安全的,可以把Safe Region看成是被拓展了的Safepoint

垃圾收集器
并行与并发的概念—

并行(Parallel):指多条垃圾收集器线程并行工作,但此时用户线程仍然处于等待状态

并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续执行,而垃圾回收器程序运行于另一个CPU上

新生代—

Serial(JDK1.3.1之前)

单线程收集器,进行垃圾回收时必须暂停其他所有的工作线程,知道它收集结束。优点是简单高效(与其他收集器的单线程相比),没有线程交互开销

ParNew(JDK1.3)

Serial的多线程版本,除了多线程收集之外,其他与Serial收集器相比并没有太多创新之处

Parallel Scavenge(JDK1.4)

使用复制算法的收集器,使用并行的多线程收集器,为了达到一个可控制的吞吐量,即CPU用于执行用户代码的时间与CPU总消耗时间的比值(吞吐量=用户代码执行时间/(用户代码执行时间+垃圾收集时间)),也称为吞吐量优先收集器

老年代—

Serial Old

Serial收集器的老年代版本,单线程收集器,使用标记——整理算法 。主要意义也是在于给Client模式下的虚拟机使用,GC时需要STW

Parallel Old(JDK1.6)

Parallel Scavenge收集器的老年代版本,使用多线程和标记——整理算法

CMS(JDK1.5,Concurrent Mark Sweep)

使用标记——清除算法,以获取最短回收停顿时间为目标的收集器。优点:并发收集,低停顿,Sun公司也称之为并发低停顿收集器(Concurrent Low Pause Collector)

运行步骤—

初始标记(需要STW)

标记一下GC Roots能直接关联到的对象,速度很快

并发标记

进行GC Roots Tracing的过程

重新标记(需要STW)

为了修正并发标记期间因用户程序继续运作而导致标记产生变动的那一部分对象的标记记录,这个阶段的停顿时间一般会比初始标记阶段稍长一点,但远比并发标记的事件短

并发清除

缺点

对CPU资源非常敏感

无法处理浮动垃圾

由于采用了标记——清除算法,所以这很容易导致产生大量空间碎片

G1(JDK1.7,Garbage First)

运行步骤

初始标记

并发标记

最终标记

筛选回收

面向服务端应用

特点

并行与并发

充分利用多CPU、多核环境下的硬件优势,使用多个CPU来缩短STW(Stop The World,GC进行时需停顿所有的Java执行进程)停顿的时间

分代收集

空间整合

可预测的停顿

内存分配与回收策略
新生代GC与老年代GC

新生代GC(Minor GC)

指发生在新生代的垃圾回收动作,因为Java对象大多都具备朝生夕灭的特性,所以Minor GC非常频繁,一般回收速度也比较快

老年代(Major GC / Full GC)

指发生在老年代的GC,出现了Major GC,经常会伴随至少一次的Minor GC(但非绝对的,在Parallel Scavenge收集器的收集策略里就有直接进行进行Major GC的策略选择过程)。Major GG的速度一般会比Minor GC慢10倍以上

对象优先在Eden分配

对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB(Thread Local Allocation Buffer 本地线程分配缓冲区)上分配

大对象直接放入老年代

大对象指的是需要大量连续内存空间的Java对象,最典型的大对象就是那种很长的字符串和数组,尽量避免出现朝生夕灭的大对象

长期存活的对象将进入老年代

虚拟机为每个对象定义了一个对象年龄(Age)计数器。如果对象在Eden出生并经过一次Minor GC后仍然存活,并且能被Survivor容纳的话,将被移动到Survivor空间中,并且对象年龄设为1。对象在Survivor区中每熬过一次Minor GC,年龄就增加1岁,当其年龄增加到一定程度(默认为15岁),就会晋升到老年代。对象晋升老年代的年龄阈值,可以通过参数-XX:MaxTenuringThreshold设置

空间分配担保

在发生Minor GC之前,虚拟机会先检查老年代最大可用的连续空间是否大于新生代所有对象总空间,如果这个条件成立,那么Minor GC可以确保是安全的。如果不成立,则虚拟机会查看HandlerPromotionFailure设置值是否允许担保失败。如果允许,那么会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小;如果大于,将尝试进行一次Minor GC,尽管这个Minor GC是有风险的;如果小于,或者HandlerPromotionFailure设置不允许冒险,那这时也要改为进行一次Full GC

JVM常用命令
jps

类似于Linux中的ps命令,列出正在执行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID),是使用频率最高的JDK命令行工具,因为其他的JDK工具大多需要输入它查询到的LVMID来确定要监控的是哪一个虚拟机进程

jps [options] [hostid]

options

-q

只输出LVMID,省略主类的名称

-m

输出虚拟机进程启动时传递给主类main()函数的参数

-l

输入主类的全名,如果进程执行的是Jar包,输出Jar包路径

-v

输出虚拟机进程启动时的JVM参数

hostid

RMI注册表中注册的主机名

jstat

虚拟机统计信息监视工具,可以显示本地或远程虚拟机中的类加载、内存、垃圾收集、JIT编译等运行数据

jstat [option vmid [interval[s | ms] [count]] ]

options 列举2个

-class

监视类装载、卸载数量、总空间以及类装载所耗费的时间

-gc

监视Java状况,包括Eden区、两个Survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息

interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次;eg:

jstat -gc 2764 250 20

需要每250ms查询一次进程2764垃圾收集情况,一次查询20次

jinfo

Java配置信息工具,实时查看和调整虚拟机各项参数

jinfo [options] pid

options

jinfo对于Windows平台功能仍然有较大限制,只提供了最基本的-flag选项

eg:查询CMSInitiatingOccupancyFraction参数值

jinfo -flag CMSInitiatingOccupancyFraction 1444

jmap

Java内存影像工具(Memory Map for Java),jmap命令用于生成堆转储快照(一般称为headdump或dump文件)。和jinfo命令一样,jmap有不少功能在Windows平台都是受限的

jmap [ option ] vmid

options列举4个

-dump

用于生成Java堆转储快照

-finalizerinfo

显示在F-Queue中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris平台才有效

-head

显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况等。只在Linux/Solaris平台下有效

-histo

显示堆中对象统计信息,包括类、实例数量、合计容量

jhat

虚拟机堆转储快照分析工具,Sun JDK提供jhat(JVM Heap Analysis Tool)命令与jmap搭配使用,来分析jmap生成的堆转储快照,jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以在浏览器中查看。

jstack

Java堆栈跟踪工具,jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因。如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者等待些什么资源

jstack [option] vmid

-F

当正常输出的请求不被响应时,强制输出线程堆栈

-l

除堆栈外,显示关于锁的附加信息

-m

如果调用到本地方法的话,可以显示C/C++的堆栈

类加载
加载—

通过一个类的全限定名来获取定义此类的二进制字节流

将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构

在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口

(Class对象比较特殊,存放在方法区里)

二进制流获取路径—

从ZIP包中获取,这很常见,最终成为JAR、EAR、WAR格式的基础

从网络中获取,如从Applet应用中获取

运行时计算生成,如动态代理技术(JDK动态代理或cglib),在java.lang.reflect.Proxy中,就是用了ProxyGenerator.generateProxyClass来为特定接口生成形式为”*$Proxy“的代理类的二进制流

由其他文件生成,如JSP应用,由JSP文件生成对应的Class类

从数据库中读取,比较少见,有些中间件服务器(如SAP Netweaver)可以选择把程序安装到数据库中来完成程序代码在集群间的分发

验证—

文件格式验证

验证字节流是否符合Class文件格式的规范,并且能被当前版本的虚拟机处

是否以魔数0xCAFEBABE开头

主、次版本号是否在当前虚拟机处理范围之内

常量池的常量中是否有不被支持的常量类型(检查常量tag标志)

指向常量的各种索引值中是否有指向不存在的常量或不符合类型的常量

CONSTANT_Utf8_info型的常量中是否有不符合UTF8编码的数据

Class文件中各个部分及文件本身是否有被删除的或附加的其他信息

元数据验证—

对字节码描述的信息进行语义分析,以保证其描述的信息符合Java语言规范的要求

这个类是否有父类(除了java.lang.Object之外,所有的类应当有父类)

这个类的父类是否继承了不允许继承的类,如被final修饰的类

如果这个类是抽象类,是否实现了其父类或接口之中要求实现的所有方法

类中的字段、方法是否与父类产生矛盾(如覆盖了父类的final字段、或者出现不符合规则的方法重载、重写)

字节码验证—

验证过程最为复杂,主要目的是通过数据流和控制流分析,以确定程序语义是合法的、符合逻辑的

保证任意时刻操作数栈的数据类型与指令代码序列都能配合工作,例如不会出现类似这样的情况:在操作数栈放置了一个int类型的数据,使用时却按long类型来加载入本地变量表中

保证跳转指令不会调转到方法体以外的字节码指令上

保证方法体中的类型转换是有效的,例如可以把一个子类对象赋值给父类数据类型,这是安全的,但是把父类对象赋值给子类数据类型,甚至把对象赋值给与它毫无继承关系、完全不相干的一个数据类型,则是危险和不合法的

符号引用验证—

符号引用中通过字符串描述的全限定名是否能找到对应的类

在指定类中是否存在符合方法的字段描述符以及简单名称所描述的方法和字段

符号引用中的类、字段、方法的访问性

(private、protected、public、default)是否可以被当前类访问

准备—

为类变量(被static修饰的变量,不包括实例变量,实例变量将会在对象实例化时随着对象一起分配在Java堆中)分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区进行分配

初始值通常情况下是数据类型的零值

如果类字段的字段属性表中存在ConstantValue属性,那么在准备阶段变量value就会被初始化为ConstantValue属性所指定的值(被final修饰的类变量在编译时会生成ConstantValue属性)

eg:public static final int value = 123;

在准备阶段虚拟机就会根据ConstantValue的设置将value赋值给123

解析—

解析阶段是虚拟机将常量池内的符号引用(在Class文件中以CONSTANT_Class_info、CONSTANT_Fieldref_info、CONSTANT_Methodref_info等类型的常量)替换成直接引用的过程

符号引用(Symbolic References)

符号引用以一组符号来描述所引用的目标,符号可以是任意形式的字面量,只要使用时能无歧义地定位到目标即可。符号引用与虚拟机实现的内存布局无关,引用的目标并不一定已经加载到内存中

直接引用(Direct References)

直接引用可以是直接指向目标的指针,相对偏移量或是一个能间接定位到目标的句柄。直接引用是和虚拟机实现的内存布局相关的,同一个符号引用在不同虚拟机实例上翻译出来的直接引用一般不会相同。如果有了直接引用,那引用的目标必定已经在内存中存在

类或接口的解析

字段解析

类方法解析

接口方法解析

初始化

必须立即对类进行初始化的5种情况

遇到new(实例化一个对象)、getstatic(读取一个类的静态字段【被final修饰、已在编译期把结果放入常量池的静态字段除外】)、putstatic(设置一个类的静态字段【被final修饰、已在编译期把结果放入常量池的静态字段除外】)或invokestatic(调用一个类的静态方法)字节码指令时

使用java.lang.reflect包的方法对类进行反射调用的时候

当初始化一个类的时候,如果发现其父类还没有进行初始化,则需要先触发其父类的初始化

包含main方法的类(执行的主类)

当使用JDK1.7的动态语言支持时,如果一个java.lang.invoke.MethodHandle实例最后的解析结果REF_getStatic、REF_putStatic、REF_invokeStatic的方法句柄,并且这个方法句柄所对应的的类没有进行过初始化,则需先触发其初始化

主动引用

上述五种情况均为主动引用

被动引用

所有引用类的方法都不会触发初始化

通过子类引用父类的静态字段,不会导致子类初始化

通过数组定义来引用类,不会触发此类的初始化

常量在译阶段会存入调用类的常量池中,本质上并没有直接引用到定义常量的类,因此不会触发定义常量的类的初始化

类构造器()

可由类中的static{}语句块产生

也可由接口中的定义的常量产生,接口中不能定义static{}语句块,需要注意的是,执行接口的()方法不需要先执行父接口的()方法,只有当父接口的常量使用时,父接口才会初始化

它不要显示调用地父类构造器,虚拟机会保证在子类的()方法执行之前,父类的()方法已经执行完毕。可以得出java.lang.Object是第一个先执行()方法的类

虚拟机会保证一个类的()方法在多线程环境中被正确加锁、同步,如若多个线程同时去初始化一个类,那么只有一个线程执行这个类的()方法,其他线程阻塞等待,直至这个线程执行完()方法。其他线程唤醒之后不会再次进入()方法

()方法不是必须的,如果类中没有静态语句块,也没有对变量的赋值操作,那么编译器可以不为这个类生成()方法

实例构造器()

使用

卸载

类加载器
类加载器分类

从JVM的角度上看

启动类加载器 Bootstrap ClassLoader

由C++实现,是虚拟机的一部分

所有其他的类加载器

由Java实现,独立于虚拟机外部,并且全部继承自抽象类ClassLoader

从Java开发人员角度上看

启动类加载器 Boostrap ClassLoader

拓展类加载器 Extension ClassLoader

应用程序类加载器 Application ClassLoader

自定义类加载器 User ClassLoader

双亲委派模型

如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都是应该传送到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载

今天的分享就到这里,因为平台限制许多内容未能呈现给大家,个人手头上的学习资料及相关经验总结有需要、感兴趣的朋友可以加下方小编微信获取“guigui758758” 也可以来我的qq群:1071760506,里面有许多java干货,希望来的是来学习一起共同努力进步的伙伴,一起加油!

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 初学docker——构建一个BASE image

    构建一个BASE image第一步建一个c语言文件vim work.cc语言文件代码:#include<stdio.h> int main() {printf("no pain,no gain\n"); }第二步编译c语言文件gcc -static work.c -o work第三步编写Dokerfilevim Dockerfile内容FROM scratch ADD work / CMD [&quo…...

    2024/5/7 18:20:53
  2. 洛谷[P3799 妖梦拼木棒] {暴力枚举} 奋斗的珂珂~

    洛谷[P3799 妖梦拼木棒] {暴力枚举} 题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来。 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案对 10910^9109+7 取模。 输入格式 第一行一个整数 n。 第二行 n个整数,第 i 个整数…...

    2024/4/16 12:25:43
  3. C++学习(一一七)pdb文件

    符号文件(Symbol Files)是一个数据信息文件,它包含了应用程序二进制文件(比如:EXE、DLL等)调试信息。在 Windows 系统中,符号文件以 .pdb 为扩展名。 一般情况下,符号文件包括以下的数据信息: 1、全局变量(Global variables); 2、局部变量(Local variables); 3、…...

    2024/5/7 14:00:01
  4. 泛统计理论初探——模型泛化能力增强技巧

    数据挖掘-机器学习模型泛化增强技巧 机器学习模型泛化能力增强技巧简介在之前的文章中,我们已经介绍了三种提高模型泛化能力的方法,即前一篇文章介绍的L1正则化、L2正则化、DropOut方法。在本文中,我们将会从数据角度、模型训练角度、策略角度进行提高模型泛化能力的方法介绍…...

    2024/4/18 9:42:00
  5. JavaScript中forEach()和map()的相同点和区别

    相同点都是循环遍历数组中的每一项每一次执行匿名函数都支持三个参数,数组中的当前项item,当前项的索引index,原始数组array匿名函数中的this指向外层函数的this;当没有外层函数的时候,外层函数就是window只能遍历数组不同点forEach()方法不会返回执行结果,而是undefined…...

    2024/4/27 1:10:13
  6. 请问图片中的蓝色标注的是别名还是临时表名

    ...

    2024/5/7 21:07:39
  7. c++ sort函数自定义排序

    在网上查阅sort函数自定义排序资料,在写比较函数cmp时不明白为啥都要写到结构体里,也不明白a<b为啥是升序,a>b为啥是降序 struct cmp{ bool operator ()(const int a , const int b) { return a < b ; // 从小到大,反过来就是从大到小 } }; 在查…...

    2024/4/17 5:47:16
  8. 五 趣味方程

    百鸡百钱 公鸡5文钱一只,母鸡3文钱一只,小鸡3只1文钱 如果用100文钱买100只鸡,公鸡母鸡小鸡各应该多少只 运行结果如下:代码如下: public class Ch5_1 {public static void main(String[] args) {// TODO Auto-generated method stubint x,y,z;int money=100;int count=10…...

    2024/5/7 14:46:01
  9. k8s安装命令

    k8s安装命令 mkdir -p /docker-datacat <<EOF > /etc/docker/daemon.json {"graph": "/docker-data" } EOF...

    2024/4/18 14:40:30
  10. 生日悖论是啥?我用它省了上百G的内存

    生日悖论: 是指在不少于 23 个人中至少有两人生日相同的概率大于 50%。例如在一个 30 人的小学班级中,存在两人生日相同的概率为 70%。对于 60 人的大班,这种概率要大于 99%。从引起逻辑矛盾的角度来说,生日悖论并不是一种 “悖论”。但这个数学事实十分反直觉,故称之为一个…...

    2024/4/16 12:25:32
  11. 文件包含渗透File inclusion 本地文件和远程文件包含+webshell(网络安全学习11)

    CONTENTS1 文件包含渗透简述1.1 原理和危害1.2 实验模拟环境2 低安全级别渗透2.1 本地文件包含2.2 本地文件包含+webshell2.3 远程文件包含+webshell3 中安全级别渗透3.1 本地文件包含3.2 本地文件包含+webshell3.3 远程文件包含+webshell4 高安全级别渗透1 文件包含渗透简述1.…...

    2024/4/18 3:46:57
  12. Java中的锁分类以及简单使用

    1. Java锁的种类在笔者面试过程时,经常会被问到各种各样的锁,如乐观锁、读写锁等等,非常繁多,在此做一个总结。介绍的内容如下:乐观锁/悲观锁独享锁/共享锁互斥锁/读写锁可重入锁公平锁/非公平锁分段锁偏向锁/轻量级锁/重量级锁自旋锁以上是一些锁的名词,这些分类并不是全…...

    2024/4/16 12:26:50
  13. 6-33 从下往上打印指定元素的所有祖先 (6分)

    6-33 从下往上打印指定元素的所有祖先 (6分) 本题要求实现按从下往上打印二叉树中指定元素的祖先。 函数接口定义:int PrintAncestors(BiTree T,char ch);T是二叉树树根指针,ch为指定的元素值,PrintAncestors函数按从下到上输出二叉树的ch的所有祖先结点序列,格式为一个字符…...

    2024/5/7 20:38:02
  14. python设计模式之责任链模式

    python设计模式之责任链模式 开发一个应用时,多数时候我们都能预先知道哪个方法能处理某个特定请求。然而,情况并非总是如此。例如,想想任意一种广播计算机网络,例如最早的以太网实现。在广播计算机网络中,会将所有请求发送给所有节点(简单起见,不考虑广播域),但仅对所…...

    2024/4/1 0:44:50
  15. HDFS源码解析之验证NameNode是不是RPC的服务端(二)

    一、环境准备以及源码导入通过我们上一个篇章的学习,我们已经可以简单的知道我们HDFS是如何远程通信的,那么我们接下来就可以进入阅读源码了我们采用的是我们的场景驱动的方式所以我们接下来,只看NameNode的启动流程,这时我们应该从哪里入手呢,阅读源码我们需要找到程序的入口是…...

    2024/5/1 21:54:31
  16. 内存操作流

    内存操作流----ByteArrayInputStream、ByteArrayOutputStream 文章目录内存操作流----ByteArrayInputStream、ByteArrayOutputStream前言ByteArrayInputStream的主要方法ByteArrayOutputStream的主要方法案例演示使用内存操作流完成一个小写字母转换为大写字母的程序运行结果总…...

    2024/4/18 12:00:12
  17. 计算机网络 - 概述

    网络的网络 ISP 主机之间的通信方式 电路交换与分组交换1. 电路交换 2. 分组交换时延1. 排队时延 2. 处理时延 3. 传输时延 4. 传播时延计算机网络体系结构1. 五层协议 2. OSI 3. TCP/IP 4. 数据在各层之间的传递过程网络的网络 网络把主机连接起来,而互联网是把多种不同的网络…...

    2024/5/7 17:37:31
  18. 算法分析设计 期末复习题三

    ...

    2024/4/18 4:06:45
  19. JVM- 虚拟机栈 7.2

    1.栈中存储每个线程都有自己的栈,栈中最小数据单元为栈帧(stack frame) 在这个线程上正在执行的每一个方法都对应一个栈帧 栈帧是一个内存区块,是一个数据集,维系着方法执行过程中的各种数据信息2.栈的运行原理JVM直接对栈的操作只有两个,就是对栈帧的压栈和出栈,遵循先…...

    2024/4/27 0:36:37
  20. finalShell 连接 linux模式服务器

    添加实例填写登录信息登录服务器...

    2024/4/16 12:26:05

最新文章

  1. Web实操(6),基础知识学习(24~)

    1.[ZJCTF 2019]NiZhuanSiWei1 &#xff08;1&#xff09;进入环境后看到一篇php代码&#xff0c;开始我简单的以为是一题常规的php伪协议&#xff0c;多次试错后发现它并没有那么简单&#xff0c;它包含了基础的文件包含&#xff0c;伪协议还有反序列化 &#xff08;2&#x…...

    2024/5/7 22:53:35
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. JRT高效率开发

    得益于前期的基础投入&#xff0c;借助代码生成的加持&#xff0c;本来计划用一周实现质控物维护界面&#xff0c;实际用来四小时左右完成质控物维护主体&#xff0c;效率大大超过预期。 JRT从设计之初就是为了证明Spring打包模式不适合软件服务模式&#xff0c;觉得Spring打包…...

    2024/5/7 4:57:38
  4. 鹅厂实习offer

    #转眼已经银四了&#xff0c;你收到offer了吗# 本来都打算四月再投实习了&#xff0c;突然三月初被wxg捞了&#xff08;一年前找日常实习投的简历就更新了下&#xff09;&#xff0c;直接冲了&#xff0c;流程持续二十多天&#xff0c;结果是运气还不错&#xff0c;应该是部门比…...

    2024/5/1 13:19:09
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/7 5:50:09
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57