目录

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 :自问自答相关推荐

  1. [python]自问自答:python -m参数? (转)

    python -m xxx.py 作用是:把xxx.py文件当做模块启动 但是我一直不明白当做模块启动到底有什么用.python xxx.py和python -m xxx.py有什么区别! 自问自答: ...

  2. JAVA容器-自问自答学HashMap

    前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...

  3. 分享蔡澜老师的自问自答

    蔡澜老师的个人网站上有个「访问自己」的板块,里面记录了很多蔡澜老师的「自问自答」,问题和回答都很有趣,从中挑选了一部分.喜欢这种洒脱率真的生活态度. 附上网址 http://blog.sina.com ...

  4. Golang 数组的一些自问自答

    基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题 image-20211227100817481 所有代码基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题. 问题: ...

  5. Maven 自问自答

    Maven 自问自答 Maven 自问自答 maven有什么用 POM 是一个什么东西 解读pom Build Lifecycle maven 三条指令运行web项目 maven常用指令 maven结 ...

  6. 干货!JAVA容器-自问自答学HashMap

    前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...

  7. vue 源码自问自答-响应式原理

    vue 源码自问自答-响应式原理 最近看了 Vue 源码和源码分析类的文章,感觉明白了很多,但是仔细想想却说不出个所以然. 所以打算把自己掌握的知识,试着组织成自己的语言表达出来 不打算平铺直叙的写清 ...

  8. RT_Thread自问自答

    在看韦东山老师"RT-Thread内部机制"的视频,挺有意思的,有些概念的理解还是要深究一下,不然可能就是"我知道,这不就是那个....那个....那个",哪个 ...

  9. 自问自答:在VB中如何实现像C++一样printf的功能

    问: 每个整型都转换成5位的字符串,不足的在前面补0.比如:1转换成"00001",10转换成"00010".怎么实现? 答: format(1,"0 ...

最新文章

  1. ps作业素材和成品_看完俄罗斯这位PS大神的P图!分分钟感觉自己被秒杀!
  2. TM1810-3, TM1810-2 LED恒流驱动IC
  3. .html天气预报上蔡,上蔡天气预报15天
  4. 推荐一个不到300k的Gif处理神器 - Gifsicle(免费下载)
  5. 远程控制木马软件_Jump Desktop for mac (远程控制软件)
  6. python类型转换、数值操作
  7. 电大java语言与面向对象程序设计基础_6406Java语言与面向对象程序设计基础A卷...
  8. pt-show-grants的用法
  9. 认证授权介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记109
  10. idea粘贴代码为什么都在一行_【学园】今天程序员的每一行代码都是未来高达身上的一颗螺丝...
  11. 蔚蓝网上书店项目js/jQuery部分
  12. smtp邮件服务器的作用,smtp服务器是什么意思(smtp服务器作用及使用指南)
  13. 刚办的电信卡显示无服务器,刚刚买的电信卡怎么不能用说什么只限紧急呼叫
  14. 证件照换底色+改变大小
  15. html上自动显示汉字拼音,原来html上用这个标签显示拼音
  16. 开源社区ECE:Elastic认证考试复盘总结134贴
  17. 点云IO篇之stl文件读写
  18. android将两张图片合并为一张图片
  19. Modern Family Season 1#01
  20. nginx设置代理后端服务器增加前缀

热门文章

  1. 怎么用超级文档免费制作调查问卷
  2. python自带库zlib_python中的zlib解压
  3. 树及树的算法(4) —— 红黑树
  4. Python学习打卡【Task3】异常处理
  5. 代理IP如何解决爬虫IP被封
  6. 今日话题:微信再次更新搜索框,公众号会更加火爆?
  7. 【Python】5行代码缩小图片尺寸
  8. 电脑重置后需要清除tpm吗
  9. 长颈鹿的脖子变长其实不是因为吃高处的树叶?科学家在1700万年前的化石中找到答案...
  10. 山经·南山经:招摇山