程序员的50大JVM面试问题及答案
文章目录
- 1.JDK、JRE、JVM关系?
- 2.启动程序如何查看加载了哪些类,以及加载顺序?
- 3. class字节码文件10个主要组成部分?
- 4.画一下jvm内存结构图?
- 5.程序计数器
- 6.Java虚拟机栈
- 7.本地方法栈
- 8.Java堆
- 9.方法区
- 10.运行时常量池?
- 11.什么时候抛出StackOverflowError?
- 12.Java7和Java8在内存模型上有什么区别?
- 13.程序员最关注的两个内存区域?
- 14.直接内存是什么?
- 15.除了哪个区域外,虚拟机内存其他运行时区域都会发生OutOfMemoryError?
- 16.什么情况下会出现堆内存溢出?
- 17.如何实现一个堆内存溢出?
- 18.空间什么情况下会抛出OutOfMemoryError?
- 19.如何实现StrackOverflowError?
- 20.如何设置直接内存容量?
- 21.Java堆内存组成?
- 22.Edem : from : to默认比例是?
- 23.垃圾标记阶段?
- 24.引用计数法?
- 25.根搜索算法?
- 26.JVM中三种常见的垃圾收集算法?
- 27.标记-清除算法?
- 28.复制算法?
- 29.标记-整理算法?
- 30.分代收集算法?
- 31.垃圾收集器?
- 32.Stop The World?
- 33.Serial收集器?
- 34.PartNew收集器?
- 36.Parallel Scavenge?
- 37.Parallel Old收集器?
- 38.CMS 收集器?
- 39.CMS垃圾回收的步骤?
- 41.CMS收集器优点?缺点?
- 42.G1收集器?
- 42. G1收集器是如何改进收集方式的?
- 43.虚拟机进程状况工具?
- 44.虚拟机统计信息工具?
- 45.jstat 工具主要选项?
- 45.配置信息工具?
- 46.内存映像工具?
- 47.虚拟机堆转存储快照分析工具?
- 48.堆栈跟踪工具?
- 49.除了命令行,还有什么可视化工具?
- 50.类加载过程?
1.JDK、JRE、JVM关系?
Jdk (Java Development Kit) : java语言的软件开发包。包括Java运行时环境Jre。
Jre (Java Runtime Environment) :Java运行时环境,包括Jvm。
Jvm (Java Virtual Machine) :
- 一种用于计算机设备的规范。
- Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Jdk包括Jre,Jre包括jvm。
2.启动程序如何查看加载了哪些类,以及加载顺序?
java -XX:+TraceClassLoading 具体类
Java -verbose 具体类
3. class字节码文件10个主要组成部分?
- MagicNumber
- Version
- Constant_pool
- Access_flag
- This_class
- Super_class
- Interfaces
- Fields
- Methods
- Attributes
4.画一下jvm内存结构图?
5.程序计数器
属于线程私有内存。占用一块非常小的空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的指令的字节码,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器来完成。
6.Java虚拟机栈
属于线程私有内存。它的生命周期与线程相同,虚拟机栈描述的是Java方法执行内存模型;每个方法被执行的时候都会同时创建一个栈桢用于存储局部变量表、操作栈、动态链接、方法出口信息等。每一个方法被调用直至执行完成的过程,就对应着一个栈帧再虚拟机中从入栈到出栈的过程。
7.本地方法栈
本地方法栈与虚拟机栈所发挥的作用是非常相似的,只不过虚拟机栈对虚拟机执行Java方法服务,而本地栈是为虚拟机使用到Native方法服务。
8.Java堆
是Java虚拟机所管理的内存中最大的一块。Java堆事被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。
Tips:但随着JIT编译器的发展与逃逸分析技术的逐渐成熟,栈上分配、标亮替换优化技术将会导师一些微妙的变化发生,所有的对象都分配在堆上就不那么绝对了。
9.方法区
是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
10.运行时常量池?
是方法区的一部分,Class文件中除了有类的版本、字段、方法、接口等描述信息,还有一项是常量池(Constant PoolTable)用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放道方法区的运行时常量池中。
11.什么时候抛出StackOverflowError?
如果线程请求的栈深度大于虚拟机所允许的深度,则抛出StackOverflowError。
12.Java7和Java8在内存模型上有什么区别?
Java8取消了永久代,用元空间(Metaspace)代替了,元空间是存在本地内存(Native memory)中。
13.程序员最关注的两个内存区域?
堆(Heap)和栈(Stack),一般大家会把Java内存分为堆内存和栈内存,这是一种比较粗糙的划分方式,但实际上Java内存区域是很复杂的。
14.直接内存是什么?
直接内存并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,但这部分内存也频繁被实用,也有OutOfMemoryError异常的出现的可能。
Tips:JDK1.4中加入了NIO(new input/output)类,引入了一种基于通道(Channe)与缓冲区(Buffer)的I/O方式,也可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆里面的DirectByteBuffer的对象作为这块内存的引用进行操作。
15.除了哪个区域外,虚拟机内存其他运行时区域都会发生OutOfMemoryError?
程序计数器。
16.什么情况下会出现堆内存溢出?
堆内存存储对象实例。我们只要不断地创建对象。并保证gc roots到对象之间有可达路径来避免垃圾回收机制清除这些对象。就会在对象数量到达最大。堆容量限制后,产生内存溢出异常。
17.如何实现一个堆内存溢出?
public class Cat {public static void main(String[] args) {List list = new ArrayList();while (true) {list.add(new Cat());}}}
18.空间什么情况下会抛出OutOfMemoryError?
如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError。
19.如何实现StrackOverflowError?
public static void main(String[] args) {eat();}public static void eat () {eat();}
20.如何设置直接内存容量?
通过 -XX:MaxDirectMemorySize指定,如果不指定,则默认与Java堆的最大值一样。
21.Java堆内存组成?
堆大小 = 新生代 + 老年代。如果是Java8则没有Permanent Generation。
其中新生代(Young) 被分为 Eden和S0(from)和S1(to)。
22.Edem : from : to默认比例是?
Edem : from : to = 8 : 1 : 1
此比例可以通过 –XX:SurvivorRatio 来设定
23.垃圾标记阶段?
在GC执行垃圾回收之前,为了区分对象存活与否,当对象被标记为死亡时,GC才回执行垃圾回收,这个过程就是垃圾标记阶段。
24.引用计数法?
比如对象a,只要任何一个对象引用了a,则a的引用计数器就加1,当引用失效时,引用计数器就减1,当计数器为0时,就可以对其回收。
但是无法解决循环引用的问题。
25.根搜索算法?
跟搜索算法是以跟为起始点,按照从上到下的方式搜索被根对象集合所连接的目标对象是否可达(使用根搜索算法后,内存中 的存活对象都会被根对象集合直接或间接连接着),如果目标对象不可达,就意味着该对象己经死亡,便可以在 instanceOopDesc的 Mark World 中将其标记为垃圾对象。
在根搜索算法中, 只有能够被根对象集合直接或者间接连接的对象才是存活对象。
26.JVM中三种常见的垃圾收集算法?
标记-清除算法(Mark_Sweep)
复制算法(Copying)
标记-压缩算法(Mark-Compact)
27.标记-清除算法?
首先标记出所有需要回收的对象,在标记完成后统一回收掉所有的被标记对象。
缺点:
- 标记和清除的效率都不高。
- 空间问题,清除后产生大量不连续的内存随便。如果有大对象会出现空间不够的现象从而不得不提前触发另一次垃圾收集动作。
28.复制算法?
他将可用内存按容量划分为大小相等的两块,每次只使用其中的一块,当这一块内存用完了,就将还存活的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。
优点:
解决了内存碎片问题。
缺点:
将原来的内存缩小为原来的一半,存活对象越多效率越低。
29.标记-整理算法?
先标记出要被回收的对象,然后让所有存活的对象都向一端移动,然后直接清理掉边界以外的内存。解决了复制算法和标记清理算法的问题。
30.分代收集算法?
当前商业虚拟机的垃圾收集都采用“分代手机算法”,其实就根据对象存活周期的不同将内存划分为几块,一般是新老年代。根据各个年代的特点采用最适当的收集算法。
31.垃圾收集器?
如果说垃圾收集算法是方法论,那么垃圾收集器就是具体实现。连线代表可以搭配使用。
32.Stop The World?
进行垃圾收集时,必须暂停其他所有工作线程,Sun将这种事情叫做"Stop The World"。
33.Serial收集器?
单线程收集器,单线程的含义在于它会 stop the world。垃圾回收时需要stop the world ,直到它收集结束。所以这种收集器体验比较差。
34.PartNew收集器?
Serial收集器的多线程版本,除了使用采用并行收回的方式回收内存外,其他行为几乎和Serial没区别。
可以通过选项“-XX:+UseParNewGC”手动指定使用 ParNew收集器执行内存回收任务。
36.Parallel Scavenge?
是一个新生代收集器,也是复制算法的收集器,同时也是多线程并行收集器,与PartNew 不同是,它重点关注的是程序达到一个可控制的吞吐量(Thoughput,CPU 用于运行用户代码 的时间/CPU 总消耗时间,即吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)), 高吞吐量可以最高效率地利用 CPU 时间,尽快地完成程序的运算任务,主要适用于在后台运算而不需要太多交互的任务。
他可以通过2个参数精确的控制吞吐量,更高效的利用cpu。
分别是: -XX:MaxCcPauseMillis 和 -XX:GCTimeRatio
37.Parallel Old收集器?
Parallel Scavenge收集器的老年代版本,使用多线程和标记-整理算法。JDK 1.6中才开始提供。
38.CMS 收集器?
Concurrent Mar Sweep 收集器是一种以获取最短回收停顿时间为目标的收集器。重视服务的响应速度,希望系统停顿时间最短。采用标记-清除的算法来进行垃圾回收。
39.CMS垃圾回收的步骤?
-
初始标记 (stop the world)
-
并发标记
-
重新标记 (stop the world)
-
并发清除
初始标记仅仅只是标记一下GC Roots能直接关联到的对象,速度很快。
并发标记就是进行Gc Roots Tracing的过程。
重新标记则是为了修正并发标记期间,因用户程序继续运行而导致的标记产生变动的那一部分对象的标记记录,这个阶段停顿时间一般比初始标记时间长,但是远比并发标记时间短。
整个过程中并发标记时间最长,但此时可以和用户线程一起工作。
41.CMS收集器优点?缺点?
优点:
并发收集、低停顿
缺点:
- 对cpu资源非常敏感。
- 无法处理浮动垃圾。
- 内存碎片问题。
42.G1收集器?
Garbage First 收集器是当前收集器技术发展的最前沿成果。jdk 1.6_update14中提供了 g1收集器。
G1收集器是基于标记-整理算法的收集器,它避免了内存碎片的问题。
可以非常精确控制停顿时间,既能让使用者明确指定一个长度为 M毫秒的时间片段内,消耗在垃圾收集上的时间不多超过N毫秒,这几乎已经是实时java(rtsj)的垃圾收集器特征了。
42. G1收集器是如何改进收集方式的?
极力避免全区域垃圾收集,之前的收集器进行收集的范围都是整个新生代或者老年代。而g1将整个Java堆(包括新生代、老年代)划分为多个大小固定的独立区域,并且跟踪这些区域垃圾堆积程度,维护一个优先级李彪,每次根据允许的收集时间,优先回收垃圾最多的区域。从而获得更高的效率。
43.虚拟机进程状况工具?
jps (Jvm process status tool ),他的功能与ps类似。
可以列出正在运行的虚拟机进程,并显示执行主类(Main Class,main()函数所在的类)的名称,以及浙西进程的本地虚拟机的唯一ID。
语法 : jps [options] [hostid]
-q 主输出lvmid,省略主类的名称
-m 输出虚拟机进程启动时传递给主类main()函数的参数
-l 输出主类全名,如果进程执行是Jar包,输出Jar路径
-v 输出虚拟机进程启动时JVM参数
44.虚拟机统计信息工具?
jstat(JVM Statistics Montoring Tool)是用于监视虚拟机各种运行状态信息命令行工机具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、jit编译等运行数据。
jstat [option vmid [interval[s|ms] [count]] ]
interval 查询间隔
count 查询次数
如果不用这两个参数,就默认查询一次。
option代表用户希望查询的虚拟机信息,主要分3类:
- 类装载
- 垃圾收集
- 运行期编译状况
45.jstat 工具主要选项?
-class 监视类装载、卸载数量、总空间及类装载锁消耗的时间
-gc 监视Java堆状况,包括Eden区,2个survivor区、老年代
-gccapacity 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用的最大和最小空间
-gcutil 监视内容与-gc基本相同,主要关注已经使用空间站空间百分比
-gccause 与-gcutil 功能一样,但是会额外输出导致上一次GC产生的原因
-gcnew 监视新生代的GC的状况
-gcnewcapacity 监视内容与 -gcnew基本相同,输出主要关注使用到的最大最小空间
-gcold 监视老年代的GC情况
-gcoldcapacity 监控内容与 -gcold基本相同,主要关注使用到的最大最小空间
-compiler 输出jit 编译器编译过的方法、耗时等信息
45.配置信息工具?
jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机的各项参数。
使用jps 命令的 -v 参数可以查看虚拟机启动时显示指定的参数列表。
jinfo 语法: jinfo [option] pid
46.内存映像工具?
jmap(Memory Map for Java) 命令用于生成堆转储快照(一般称为heapdump或dump文件)。
语法 :jmap [option] vmid
它还可以查询finalize执行队列,Java堆和永久代的详细信息,如果空间使用率、当前用的是哪种收集器等。
- -dump 生成Java堆转储快照,其中live自参数说明是否只dump出存活对象
- -finalizerinfo 显示在F -Queue 中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris平台下有效
- -heap 显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况。
- -histo 显示堆中对象统计信息、包括类、实例数量和合计容量。
- -F 当虚拟机进程对-dump选项没有响应时,可使用这个选项强制生成dump快照。
47.虚拟机堆转存储快照分析工具?
jhat ( JVM Heap Analysis Tool) 用来分析jmap生成的堆转储快照。
48.堆栈跟踪工具?
jstack(Stack Trace for Java) 命令用于生成虚拟机当前时刻的线程快照(一般称为thread dump 或javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因。
jstack [option] vmid
-F 当正常输出的请求不被响应时,强制输出线程堆栈
-l 除堆栈外,显示关于锁的附加信息
-m 如果调用本地方法的花,可以显示C/C++ 的堆栈
49.除了命令行,还有什么可视化工具?
JConsole 和 VisualVM,这两个工具是JDK的正式成员。
50.类加载过程?
加载-》验证-》准备-》解析-》初始化-》使用-》卸载
时间不会回头感情岂会有如果
相关文章:
程序员的50大JVM面试问题及答案
文章目录 1.JDK、JRE、JVM关系?2.启动程序如何查看加载了哪些类,以及加载顺序?3. class字节码文件10个主要组成部分?4.画一下jvm内存结构图?5.程序计数器6.Java虚拟机栈7.本地方法栈8.Java堆9.方法区10.运行时常量池?…...
架构设计系列之前端架构和后端架构的区别和联系
前端架构和后端架构都是软件系统中最关键的架构层,负责处理不同方面的任务和逻辑,两者之间是存在一些区别和联系的,我会从以下几个方面来阐述: 一、定位和职责 前端架构 主要关注用户界面和用户体验,负责处理用户与…...
UE5 水材质注意要点
1、两个法线反向交替流动,可以去观感假的现象 2、水面延边的透明度低 3、增加水面延边的浪花 4、增加折射 折射要整体质量至少在High才有效果 改为半透明材质没有法线信息? 5、处理反射效果 勾选为true 找到这个放在水域 勾为false,即可有非…...
数据安全扫描仪荣膺网络安全优秀创新成果大赛优胜奖 - 凸显多重优势
近日,由中国网络安全产业联盟(CCIA)主办、CCI数据安全工作委员会中国电子技术标准化研究院等单位承办的“2023年网络安全优秀创新成果大赛”获奖名单公布。天空卫士数据安全扫描仪(DSS)产品获得创新成果大赛优胜奖。 本…...
数据结构学习 leetcode64最小路径和
动态规划 题目: 建议看这里,有这道题详细的解析。我觉得写的挺好。 这是我在学动态规划的时候,动手做的一道题。 虽然我在学动态规划,但是我之前学了dps,所以我就想先用dps试着做,结果发现不行…...
导出(导入)Linux虚拟机并修改IP地址
一、导出虚拟机 说明:先关闭虚拟机,然后再进行导出。 步骤1:选择要导出的虚拟机 步骤2:选择文件菜单栏下的导出为OVF文件。 步骤3:将导出的文件保存至硬盘文件夹。 二、导入虚拟机 步骤1:选择文件菜单栏…...
OpenCV4工业缺陷检测的六种方法
👨🎓博主简介 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…...
ICC2:Less than minimum edge length和Concave convex edge enclosure
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 首先,要介绍一下这两种drc Less than minimum edge length对应的tf rule如下: 而Concave convex edge enclosure对应图示和tf 规则如下,可...
RouterSrv-DHCP
2023年全国网络系统管理赛项真题 模块B-Windows解析 题目 安装和配置DHCP relay服务,为办公区域网络提供地址上网。DHCP服务器位于AppSrv服务器上。拆分DHCP服务器上的作用域,拆分的百分比为7:3。InsideCli优先从RouterSrv获取地址。配置步骤 安装和配置DHCP relay服务,为办…...
【人生苦短,我学 Python】(8)文件的读写和过滤器
目录 简述 / 前言1. 文件的操作2. 过滤器2.1 more —— 逐屏显示数据2.2 sort —— 排序2.3 more 和 sort 一起用 文章传送门 简述 / 前言 上一篇我们介绍了 Python 的输入(input)和输出(print),以及如何通过命令行给…...
智能优化算法应用:基于饥饿游戏算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于饥饿游戏算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于饥饿游戏算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.饥饿游戏算法4.实验参数设定5.算法结果6.…...
leetCode算法—10. 正则表达式匹配
10.给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 难度:困难 *** 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ‘*’ 匹…...
Android Studio 实现音乐播放器
目录 一、引言 视频效果展示: 1.启动页效果 2.登录页效果 3.注册页效果 4.歌曲列表页效果 5.播放页效果 二、详细设计 1.登陆注册功能 2.音乐列表页面 2.音乐播放功能 三、源码获取 一、引言 Android初学者开发第一个完整的实例项目应该就属《音乐播放器…...
端口占用命令 netstat (centos)+netstat (windows)
linux 1.使用 netstat 命令查看端口占用情况 netstat -tlnp 使用 -p 选项查看进程信息。 使用 -t 选项列出 TCP 协议的连接:类似(使用 -u 选项列出 UDP 协议的连接:) 2.查找占用指定端口号的应用信息 netstat -tlnp | grep 3…...
Python-基于fastapi实现SSE流式返回(类似GPT)
最近在做大模型对话相关功能,需要将对话内容流式返回给前端页面(类似GPT的效果)。下面直接说下如何实现: 1.首先导入fastapi和sse流式返回所需要的包 from fastapi import APIRouter, Response, status from sse_starlette.sse …...
iOS中宿主APP与录屏扩展进程数据传递方式
背景 在iOS生态系统中,应用程序的功能不再局限于单一的宿主应用,而是可以通过扩展进程实现更丰富的用户体验和功能。其中一种引人注目的扩展是录屏功能,它使用户能够捕捉设备屏幕上的活动,无论是游戏过程、教育演示还是其他应用场…...
Windows系统下的可用RADIUS软件-[资源]
RADIUS协议相关原理介绍,可参考博客RADIUS协议原理介绍报文分析配置指导-RFC2865/RFC2866。 本文用于提供和介绍Window系统下几种可用的RADIUS软件。主要涉及软件有radius_ping(绿色免安装版)和WinRadius(绿色免安装版)…...
基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十五:基础数据模块相关功能实现
一、本章内容 本章使用已实现的公共组件实现系统管理中的基础数据中的验证码管理、消息管理等功能。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 3.1 B站视频地址: 基于VUE3+Layui从头搭建通用后台管理系统合集-验证码功能实现 3.2 西瓜…...
MAC苹果笔记本电脑如何彻底清理垃圾文件软件?
苹果电脑以其流畅的操作系统和卓越的性能而备受用户喜爱。然而,随着时间的推移,系统可能会积累大量垃圾文件,影响性能。本文将介绍苹果电脑怎么清理垃圾文件的各种方法,以提升系统运行效率。 CleanMyMac X是一款专业的Mac清理软件…...
【Linux C | 文件I/O】文件的打开关闭 | open、creat、colse 函数
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...
【BEV感知】BEVFormer 融合多视角图形的空间特征和时序特征 ECCV 2022
前言 本文分享BEV感知方案中,具有代表性的方法:BEVFormer。 它基于Deformable Attention,实现了一种融合多视角相机空间特征和时序特征的端到端框架,适用于多种自动驾驶感知任务。 主要由3个关键模块组成: BEV Que…...
Amazon Toolkit — CodeWhisperer 使用
tFragment--> 官网:https://aws.amazon.com/cn/codewhisperer/?trkcndc-detail 最近学习了亚马逊云科技的 代码工具,感慨颇多。下面是安装 和使用的分享。 CodeWhisperer,亚马逊推出的实时 AI 编程助手,是一项基于机器学习…...
Flink SQL填坑记2:Flink和MySQL的Bigdata类型不同导致ClassCastException报错
最近在开发Flink SQL的时候,需要关联Kafka事实表和MySQL维表,得到的数据写入Phoenix表中,但是其中有个字段,Kafka表、MySQL表和Phoenix表都是BigData类型,但是在实现的时候却报“java.math.BigInteger cannot be cast to java.lang.Long”异常,从报错信息来看,是由于Big…...
本地MinIO存储服务如何创建Buckets并实现公网访问上传文件
文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 前言 MinIO是一款高性能、分布式的对象存储系统,它可以100%的运行在标准硬件上,即X86等…...
通过https协议访问Tomcat部署并使用Shiro认证的应用跳转登到录页时协议变为http的问题
问题描述: 在最近的一个项目中,有一个存在较久,并且只在内部城域网可访问的一个使用Shiro框架进行安全管理的Java应用,该应用部署在Tomcat服务器上。起初,应用程序可以通过HTTP协议访问,一切运行都没…...
Backend - Django 项目创建 运行
目录 一、配置环境 二、创建 Django 项目 (一)新建文件夹 (二)打开文件夹 (三)打开运行终端 (四)创建基础项目 (五)创建app 1. 安装Django …...
C# .Net学习笔记—— Expression 表达式目录树
一、什么是表达式目录树 (1)Expression我们称为是表达式树,是一种数据结构体,用于存储需要计算,运算的一种结构,这种结构可以只是存储,而不进行运算。通常表达式目录树是配合Lambda一起来使用的…...
《论文阅读28》Unsupervised 3D Shape Completion through GAN Inversion
GAN,全称GenerativeAdversarialNetworks,中文叫生成式对抗网络。顾名思义GAN分为两个模块,生成网络以及判别网络,其中 生成网络负责根据随机向量产生图片、语音等内容,产生的内容是数据集中没有见过的,也可…...
一个正则快速找到在ES中使用profile的时产生慢查询的分片
在es中使用profile分析慢查询的时候,往往因为分片过多,或者因为查询条件太复杂,分析的结果几十万行。在kibana上点半天,也找不到一个耗时长的分片。 kibana上可以通过正则来匹配。其实我们只需要匹配到耗时大于10秒的请求。 检索语…...
链接未来:深入理解链表数据结构(一.c语言实现无头单向非循环链表)
在上一篇文章中,我们探索了顺序表这一基础的数据结构,它提供了一种有序存储数据的方法,使得数据的访 问和操作变得更加高效。想要进一步了解,大家可以移步于上一篇文章:探索顺序表:数据结构中的秩序之美 今…...
安徽网站建设公司/优秀网站网页设计
Masked AutoEncoders(MAE) Top-1准确率87.8% masked autoencoders(MAE) 是一种可扩展的计算机视觉自监督学习方法。 本文的MAE方法很简单:mask输入图像的随机patch,并重建丢失的像素 。它基于两个核心设计的。 首先…...
p2p网站如何做测试工具/活动宣传推广方案怎么写
Alice 和 Bob 是一场射箭比赛中的对手。比赛规则如下: Alice 先射 numArrows 支箭,然后 Bob 也射 numArrows 支箭。分数按下述规则计算: 箭靶有若干整数计分区域,范围从 0 到 11 (含 0 和 11)。箭靶上每个…...
二级网站怎么建设/学校网站建设
http://www.yiibai.com/html/testng/2013/0914296.html 本教程介绍了TestNG中执行程序的方法,这意味着该方法被称为第一和一个接着。下面是执行程序的TestNG测试API的方法的例子。 创建一个Java类文件名TestngAnnotation.java在C:\>TestNG_WORKSPACE测试注解。 i…...
做自己的网站logo/重庆网络seo公司
我试图用控制台获得快速时间事件类型的交互,并设法使用conio库获取它。可悲的是,我正在开发的这个项目需要在Windows和Linux上编译代码,我无法找到一种方法来改变它。有没有办法在标准C中替换kbhit()和getch()函数?有什么我可以做…...
怎么做淘宝客导购网站/渠道推广策略
最近的工程需要搞一下并行,打算用一下cuda。开这个系列希望能够把这个过程中学到的有关并行的知识以及一些问题。 这一次主要介绍下如何在cuda并行中使用vector,包括空间分配与使用。 vector其实是可以被看做一个动态数组的,其存储的分配也…...
wordpress怎么做两个语言网站/新闻今日头条最新消息
Velocity是一种Java模版引擎技术,该项目由Apache提出,由另外一种引擎技术Webmacro引深而来。那什么是官方的Velocity定义呢?Apache对它的定义是:一种基于Java的模板引擎,但允许任何人使用简单而强大的模板语言来引用定…...