1.一个jvm的天职就是运行一个java程序,当这个java程序关闭退出,这个jvm也随之消亡。一个jvm从一个java的main方法开始,其内部分两种线程,守护线程和非守护线程,守护线程一般来讲是jvm的后台线程,比如gc线程就是一个守护线程,程序的入口main方法就是java程序的第一个飞守护线程,当所有的非守护线程都结束,jvm的生命周期也就结束了。
2.每个对象都还有一个对象锁,用于协调多个线程访问同一对象(资源)的同步。
2.每个对象都有一个等待集合(wait set),等待集合是为多个线程完成某一目标而协调工作的,当一个线程调用了某个对象的wait方法,该线程就被阻塞,并把它放到该对象的等待集合中,知道另一线程在同一对象中调用notify或者notifuAll进行唤醒。
3:数组,在java中,数组是真正的对象,它的直径超类是Object,每一个具有相同维度和类型的数组都是同一个类的实例,数组类的组成有两部分,每一维用一个“[”表示,用字符或者字符串表示元素类型,如int类型一维数组的类名为:"[i";String的二维数组为“[[java/lang/String”.
4.栈帧,包括:
(1)局部变量区,参数、局部变量的基本类型和引用
(2)操作数栈,执行引擎操作过程的中间变量
(3)帧数据区,存储常量池解析,正常返回或者异常派发等。
5.<clinit>方法是java编译器变量初时化语句静态初始话语句的代码都放到class的<clinit>方法中,jvm在加载初始化时调用该方法,如果有父类,就先调用父class的<clinit>,接口直径调用本身的<linit>.
6.实例化一个对象有四种方法1.new 2.Class或者Constructor的newInstance()反射实例化,3.clone (),4.ObjectInputStream.getObject()反序列化。
相关推荐
再来说说JVM运行状态查看工具。这类工具可以帮助我们实时监控JVM的运行情况,例如内存使用、线程状态、CPU消耗等。常见的如VisualVM、JConsole、JProfiler等,它们能直观地展示JVM的各项指标,便于定位性能瓶颈,...
1说说JVM原理?内存泄露与溢出区别,何时产生内存泄露? 编译源代码为本地机器码执行。 内存泄露是一部分内存无法回收。溢出是说内存不够用了。泄露可能在将来会导致溢出 当对象在程序中不会被使用,但却有其他...
8. **说说类加载的双亲委派模型?** 类加载时,会先由父类加载器检查是否已加载,如果没有则向下传递。这样可以避免类的重复加载,并保证核心类库的安全。 9. **解释一下JNI(Java Native Interface)?** JNI是...
8.说说你知道的几种主要的JVM参数 9.怎么打出线程栈信息 10.强引用、软引用、弱引用、虚引用的区别? 1)强引用 软引用 弱引用 虚引用 11.堆栈的区别是什么? 12 对象的GC年龄最大多少?存储在哪 13 为什么GC分代年
说说 Redis 哈希槽的概念? Redis 集群通过哈希槽来分配数据,共有16384个槽位,每个键值对都会根据哈希值映射到某个槽位上,从而实现数据的分布存储。 ### JVM #### JVM 基础知识 - **JVM 的内存区域划分**:...
看你简历写得熟悉JVM,那你说说类的加载过程吧? 我们可以自定义一个String类来使用吗? 什么是类加载器,类加载器有哪些? 多线程的情况下,类的加载为什么不会出现重复加载的情况? 什么是双亲委派机制?它有啥...
13. JVM 中一次完整的 GC 流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的 JVM 参数。 JVM 中的一次完整的 GC 流程是 Mark-Sweep-Compaction。对象晋升到老年代的方式是通过 Serial GC、Parallel GC、...
1. 说说 List、Set、Map 三者的区别? 2. Arraylist 与 LinkedList 区别? 3. RandomAccess接⼝ 4. 双向链表和双向循环链表 5. Collections ⼯具类和 Arrays ⼯具类常⻅⽅法总结 三、Java 多线程 1. 简述线程、...
- **平台无关性**:通过JVM实现了跨平台的能力,编写一次,到处运行(Write Once, Run Anywhere)。 - **健壮性**:异常处理机制和垃圾回收机制提高了程序的健壮性和可靠性。 - **安全性**:沙箱安全模型和内存管理...
【*JVM】查看jvm虚拟机里面堆、线程的信息,你用过什么命令? 59 【JVM】垃圾回收算法有哪些? 59 引用计数法(Reference Counting Collector) 59 tracing算法(Tracing Collector) 61 compacting算法(Compacting ...
Java面试高级篇—说说TCP,UDP和socket,Http之间联系和区别.doc MySQL千万级的大表要怎么优化(读写分离、水平拆分、垂直拆分).doc redis缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级.doc RPC (Remote ...
标题《JAVA教程 pdf》和描述“觉得不错,我学习Java时候用的,不知道你们认为怎么样,说说你们看法,小弟刚来,多多指教”指向了一本关于Java编程语言的教程,该教程用于帮助学习者掌握Java编程的基础知识和高级应用...
本资源摘要信息主要总结了阿里巴巴面试中的问题和答案,涵盖了 Java 编程语言、设计模式、JVM 内存模型、ClassLoader 结构、UML 模型图、OSGi 框架、Spring 框架、iBatis 框架、Java 序列化、NIO 编程、HTTP 协议、...
5. 描述JVM堆、栈、方法区的用处及区别 6. 举例说明Java8与Java7的区别 7. 对您使用的GC进行原理性描述 8. 举例说明某个JDK函数或者类的源代码分析 9. 说说您过去的项目经历 10. 画出您最了解的项目的总体设计图 11....
我们的java是运行在jvm虚拟机下的程序,我们每多启动一个jvm就是多了启动了一个进程。至于线程,就是每个进程下多开一个和现有的的任务同时执行的任务。 我们一个程序至少包含一个进程,一个进程至少包含一个线程 ...
3.高级篇-单点登录,Groovy视频,性能优化,Maven,Mongodb,Redis,Spring Security,Spring 源码,JVM,微信,银行接口等 4.架构篇-Linux视频,Nginx视频,京东海量订单处理视频,大型电商分布式实践,架构实战等 ...
专注于共享技术干货,包括Java基础,Java并发,JVM,Nginx,Zookeeper,微服务,消息代码,源码解析,数据库,设计模式,面经等,助您编程之路少走弯路。 有人说说得很好,一个人学习可以走得很快,但一群人学习可以...
说说&和&&的区别。** - `&`:位运算符,也用于逻辑与操作,但不具有短路效果。 - `&&`:逻辑与操作符,具有短路效果,即左侧表达式为`false`时右侧表达式将不再计算。 **2. 用最有效率的方法算出2乘以8等于几?** ...