Java 系列小问题 |学习笔记

简介: 快速学习Java 系列小问题

开发者学堂课程【Java面试疑难点串讲1:面试技巧及语言基础Java 系列小问题】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/24/detail/486


Java系列小问题


内容介绍

一、小问题

 

一、小问题

1、String str=hello”,这个字符串对象在栈内存中明明有一个引用(str[ox0010])为什么还说这个字符串是匿名对象呢?

所谓的字符串是匿名对象,实际上是因为只要使用了““”声明,那么就表示将在堆内存空间里面开辟一个新的字符串对象( String 对象),但是这个对象是可以直接使用的,例如”Hello.length()”。

这个时候的字符串由于没有引用,所以称为匿名对象,而对于此时的代码“String str=hello””,已经明确的为 str 对象进行了实列化,所以“Hello”它对应的堆内存的地址已经有了明确的栈内存指向就不是匿名对象了。


1当使用直接赋值的方式实例化一个字符串对象的时候,他的引用是保存在哪里的?

只要是引用对象就保存在堆内存里面,而我们所有能够进行的内存控制,也只有堆内存。

2、 对象池(常量池)和栈是什么关系?

课程参考:http://www.mldn.cn/course/127

不管是对象池还是常量池,实际上都是保存在堆内存里面的,而堆内存需要进行一些合理的划分。

图片4.jpg

3、不同的操作系统会由软件和硬件模拟出不同的虚拟机,但是不同的 JVM JAVA 程序都支持,能实现这个功能的原理是不是:虚拟机中定义了类似于接口这样的操作,然后接口中定义了类似于 native 抽象方法,然后具体方法的实现交给操作系统去完成?

完整的介绍:http://www.mldn.cn/course/127

对于 JVM 有三种实现标准,这三种实现标准我们使用的是 HotSpot 虚拟机标准,这个标准的实现不是简单的说只是调用了一些底层函数。他里面是需要与一些设备进行交互的,而整个系统设计之中,为了可以让 Java 调用函数功能,所以专门提供有一个 native 交由 JVM 负责实现一些具体功能。

相关文章
|
2月前
|
监控 负载均衡 Dubbo
|
3月前
|
前端开发 Java 数据安全/隐私保护
Java学习—GUI编程学习笔记
Java学习—GUI编程学习笔记
|
6月前
|
设计模式 存储 Java
【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)
53 0
|
6月前
|
Java 编译器
【Java学习笔记】 对象和类
【Java学习笔记】 对象和类
|
6月前
|
设计模式 存储 Java
【设计模式——学习笔记】23种设计模式——迭代器模式Iterator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——迭代器模式Iterator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
28 0
|
4月前
|
存储 缓存 安全
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
56 0
|
1月前
|
存储 前端开发 Java
java学习笔记
java学习笔记
61 0
|
3月前
|
XML Java 数据格式
Spring5学习笔记——狂神说Java
Spring5学习笔记——狂神说Java
|
4月前
|
数据采集 缓存 分布式计算
java并发编程实践——王宝令(极客时间)学习笔记
java并发编程实践——王宝令(极客时间)学习笔记
37 0
|
4月前
|
Java 数据库连接 数据库
Java大数据开发工程师__Spring学习笔记(待更新)
Java大数据开发工程师__Spring学习笔记(待更新)
28 1