JavaSE :自问自答
目录
1. "==" 和 ".equals"之间的区别。
2.为什么重写".equals"方法一定要重写hashcode方法?
3.什么时候"finalize"方法会被调用?
4.什么是动态绑定机制?
5.类变量(静态变量)储存在哪里? 类变量的特点是什么?
6.为什么我们需要类方法(静态方法)?
7.为什么Main方法是公开public且静态static的?
8.什么时候我们会选择使用代码块 ? 为什么 ?
9.静态代码块和代码块的区别是什么? 加载类时的顺序是什么?
1. "==" 和 ".equals"之间的区别。
"=="可以用于基础类型和引用类型的比较,".equals"只能用于引用类型。
"=="用于基本类型:判断两个基本类型的值是否相等。(“==”两边只要出现了基本数据类型比较的就是值是否相等。例如基本类型和包装类的比较)
"=="用于引用类型:判断两个引用类型的引用对象的地址是否相同。
".equals"在object类中就是调用了"=="的判断。(源码如下)
public boolean equals(Object obj) {return (this == obj);}
但在其他Object子类中".equals"方法通常被重写成为判断两者所指向的内存空间的值是不是相同。
2.为什么重写".equals"方法一定要重写hashcode方法?
在我们创建一个类时,也可以通过重写".equals"方法来实现自己想要的判断方式,同时也要重写hashcode方法(hashCode方法是本地方法,用于计算出对象的一个散列值,用于判断在集合中对象是否重复的关键。),否则会出现".equals"方法为True,hashcode却不等的情况,导致集合无法正确判断对象是否重复。
3.什么时候"finalize"方法会被调用?
当该对象被jvm垃圾回收机制回收时调用。
4.什么是动态绑定机制?
当调用对象的时候,该方法会和该对象的内存地址/运行类型绑定。
当调用对象的属性时,没有动态绑定机制,哪里声明就使用哪里。
5.类变量(静态变量)储存在哪里? 类变量的特点是什么?
特点:在类加载的时候就被加载,无需创建实例即可调用
存储位置:在jdk7以下的版本储存在静态域中,
从jdk7开始储存在堆中java.lang.Class 对象的末尾。
6.为什么我们需要类方法(静态方法)?
类方法无需创建实例即可调用,可用作开发工具。例如Math.pow()方法。
7.为什么Main方法是公开public且静态static的?
因为Main方法要能被JVM虚拟机调用,必须得是公开的,且静态的JVM调用这个方法就不需要创建任何包含Main方法的实例。
8.什么时候我们会选择使用代码块 ? 为什么 ?
使用代码块有利于提高代码的复用性和扩展性:当类的不同构造器中的重复代码过多时,我们就可以选择把重复的部分写入代码块。
9.静态代码块和代码块的区别是什么? 加载类时的顺序是什么?
静态代码块只能调用静态方法和静态变量,且在虚拟机加载类的时候就会加载执行,只执行一次;非静态代码块,在创建对象的时候执行,每次创建对象都会执行一次。
顺序:(1)父类静态代码块,父类静态成员变量初始化(这两个谁先声明谁在前面)->
(2)子类静态代码块,子类静态成员变量初始化(这两个谁先声明谁在前面)->
(3)父类代码块,父类成员变量初始化(这两个谁先声明谁在前面)->
(4)父类构造函数->
(5)子类代码块,子类成员变量初始化(这两个谁先声明谁在前面)->
(6)子类构造函数.
JavaSE :自问自答相关推荐
- [python]自问自答:python -m参数? (转)
python -m xxx.py 作用是:把xxx.py文件当做模块启动 但是我一直不明白当做模块启动到底有什么用.python xxx.py和python -m xxx.py有什么区别! 自问自答: ...
- JAVA容器-自问自答学HashMap
前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...
- 分享蔡澜老师的自问自答
蔡澜老师的个人网站上有个「访问自己」的板块,里面记录了很多蔡澜老师的「自问自答」,问题和回答都很有趣,从中挑选了一部分.喜欢这种洒脱率真的生活态度. 附上网址 http://blog.sina.com ...
- Golang 数组的一些自问自答
基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题 image-20211227100817481 所有代码基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题. 问题: ...
- Maven 自问自答
Maven 自问自答 Maven 自问自答 maven有什么用 POM 是一个什么东西 解读pom Build Lifecycle maven 三条指令运行web项目 maven常用指令 maven结 ...
- 干货!JAVA容器-自问自答学HashMap
前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...
- vue 源码自问自答-响应式原理
vue 源码自问自答-响应式原理 最近看了 Vue 源码和源码分析类的文章,感觉明白了很多,但是仔细想想却说不出个所以然. 所以打算把自己掌握的知识,试着组织成自己的语言表达出来 不打算平铺直叙的写清 ...
- RT_Thread自问自答
在看韦东山老师"RT-Thread内部机制"的视频,挺有意思的,有些概念的理解还是要深究一下,不然可能就是"我知道,这不就是那个....那个....那个",哪个 ...
- 自问自答:在VB中如何实现像C++一样printf的功能
问: 每个整型都转换成5位的字符串,不足的在前面补0.比如:1转换成"00001",10转换成"00010".怎么实现? 答: format(1,"0 ...
最新文章
- ps作业素材和成品_看完俄罗斯这位PS大神的P图!分分钟感觉自己被秒杀!
- TM1810-3, TM1810-2 LED恒流驱动IC
- .html天气预报上蔡,上蔡天气预报15天
- 推荐一个不到300k的Gif处理神器 - Gifsicle(免费下载)
- 远程控制木马软件_Jump Desktop for mac (远程控制软件)
- python类型转换、数值操作
- 电大java语言与面向对象程序设计基础_6406Java语言与面向对象程序设计基础A卷...
- pt-show-grants的用法
- 认证授权介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记109
- idea粘贴代码为什么都在一行_【学园】今天程序员的每一行代码都是未来高达身上的一颗螺丝...
- 蔚蓝网上书店项目js/jQuery部分
- smtp邮件服务器的作用,smtp服务器是什么意思(smtp服务器作用及使用指南)
- 刚办的电信卡显示无服务器,刚刚买的电信卡怎么不能用说什么只限紧急呼叫
- 证件照换底色+改变大小
- html上自动显示汉字拼音,原来html上用这个标签显示拼音
- 开源社区ECE:Elastic认证考试复盘总结134贴
- 点云IO篇之stl文件读写
- android将两张图片合并为一张图片
- Modern Family Season 1#01
- nginx设置代理后端服务器增加前缀