• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

史上最全的Android面试题集锦八

android 搞代码 3年前 (2022-03-02) 18次浏览 已收录 0个评论
文章目录[隐藏]

原文链接:https://www.gaodaima.com/xiangzhihong8/java/article/details/96280254

Java根本知识点

1、Java的类加载过程

jvm将.class类文件信息加载到内存并解析成对应的class对象的过程,留神:jvm并不是一开始就把所有的类加载进内存中,只是在第一次遇到某个须要运行的类才会加载,并且只加载一次

次要分为三局部:1、加载,2、链接(1.验证,2.筹备,3.解析),3、初始化

1:加载

类加载器包含 BootClassLoader、ExtClassLoader、APPClassLoader

2:链接

验证:(验证class文件的字节流是否合乎jvm标准)

筹备:为类变量分配内存,并且进行赋初值

解析:将常量池外面的符号援用(变量名)替换成间接援用(内存地址)过程,在解析阶段,jvm会把所有的类名、办法名、字段名、这些符号援用替换成具体的内存地址或者偏移量。

3:初始化

次要对类变量进行初始化,执行类结构器的过程,换句话说,只对static修试的变量或者语句进行初始化。

范例:Person person = new Person();为例进行阐明。

Java编程思维中的类的初始化过程次要有以下几点:

  1. 找到class文件,将它加载到内存
  2. 在堆内存中调配内存地址
  3. 初始化
  4. 将堆内存地址指给栈内存中的p变量

2、String、StringBuilder、StringBuffer

StringBuffer外面的很多办法增加了synchronized关键字,是能够表征线程平安的,所以多线程状况下应用它。

执行速度:

StringBuilder > StringBuffer > String

StringBuilder就义了性能来换取速度的,这两个是能够间接在原对象下面进行批改,省去了创立新对象和回收老对象的过程,而String是字符串常量(final)修试,另外两个是字符串变量,常量对象一旦创立就不能够批改,变量是能够进行批改的,所以对于String字符串的操作蕴含上面三个步骤:

创立一个新对象,名字和原来的一样

在新对象下面进行批改

原对象被垃圾回收掉

3、JVM内存构造

Java对象实例化过程中,次要应用到虚拟机栈、Java堆和办法区。Java文件通过编译之后首先会被加载到jvm办法区中,jvm办法区中很重的一个局部是运行时常量池,用以存储class文件类的版本、字段、办法、接口等形容信息和编译期间的常量和动态常量。

3.1、JVM根本构造

类加载器classLoader,在JVM启动时或者类运行时将须要的.class文件加载到内存中。

执行引擎,负责执行class文件中蕴含的字节码指令。

本地办法接口,次要是调用C/C++实现的本地办法及返回后果。

内存区域(运行时数据区),是在JVM运行的时候操作所调配的内存区,

次要分为以下五个局部,如下图:

  • 办法区:用于存储类构造信息的中央,包含常量池、动态变量、构造函数等。
  • Java堆(heap):存储Java实例或者对象的中央。这块是gc的次要区域。
  • Java栈(stack):Java栈总是和线程关联的,每当创立一个线程时,JVM就会为这个线程创立一个对应的Java栈。在这个java栈中又会蕴含多个栈帧,每运行一个办法就创立一个栈帧,用于存储局部变量表、操作栈、办法返回值等。每一个办法从调用直至执行实现的过程,就对应一个栈帧在java栈中入栈到出栈的过程。所以java栈是线程公有的。
  • 程序计数器:用于保留以后线程执行的内存地址,因为JVM是多线程执行的,所以为了保障线程切换回来后还能复原到原先状态,就须要一个独立的计数器,记录之前中断的中央,可见程序计数器也是线程公有的。
  • 本地办法栈:和Java栈的作用差不多,只不过是为JVM应用到的native办法服务的。

3.2、JVM源码剖析


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:史上最全的Android面试题集锦八

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址