Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【004期】JavaSE面试题(四):JavaSE语法(3)

【004期】JavaSE面试题(四):JavaSE语法(3)

作者头像
java进阶架构师
发布于 2020-07-03 08:22:00
发布于 2020-07-03 08:22:00
4690
举报
文章被收录于专栏:Java进阶架构师Java进阶架构师

开篇导读

大家好,我是Java面试题库提裤姐,今天这篇是JavaSE系列的第四篇,主要总结了JavaSE语法中会出现的相关面试题,在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。

Q:

重载(overload)和重写(override)的区别?

方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。

重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载; 重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。 重载对返回类型没有特殊的要求。

方法重载的规则:

  • 方法名一致,参数列表中参数的顺序,类型,个数不同。
  • 重载与方法的返回值无关,存在于父类和子类,同类中。
  • 可以抛出不同的异常,可以有不同修饰符。

方法重写的规则:

  • 参数列表必须完全与被重写方法的一致,返回类型必须完全与被重写方法的返回类型一致。
  • 构造方法不能被重写,声明为 final 的方法不能被重写,声明为 static 的方法不能被重写,但是能够被再次声明。
  • 访问权限不能比父类中被重写的方法的访问权限更低。
  • 重写的方法能够抛出任何非强制异常(UncheckedException,也叫非运行时异常),无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。

Q:

构造方法能不能重写?能不能重载?构造方法能不能显式调用?

不可以重写,但可以重载

不能显式调用,不能把构造方法当成普通方法调用,只有在创建对象的时候才会被系统调用

Q:

阐述静态变量和实例变量的区别?

静态变量: 是被 static 修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;

实例变量: 必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。

Q:

什么是隐式转换?什么是显式转换?

显式转换就是强制类型转换,把一个大类型的数据强制赋值给小类型的数据; 隐式转换就是自动类型转换,大范围的变量能够接受小范围的数据;

Q:

什么是拆装箱?

拆箱:把包装类型转化为基本数据类型

装箱:把基本数据类型转化为包装类型

Q:

break 和 continue 的区别?

break 和 continue 都是用来控制循环的语句。

break 用于完全结束一个循环,跳出循环体执行循环后面的语句。

continue 用于跳过本次循环,执行下次循环。

Q:

内部类与静态内部类的区别?

内部类: 1、内部类中的变量和方法不能声明为静态的。 2、内部类实例化:B是A的内部类,实例化B:A.B b = new A().new B()。 3、内部类可以引用外部类的静态或者非静态属性及方法。

静态内部类: 1、静态内部类属性和方法可以声明为静态的或者非静态的。 2、实例化静态内部类:B是A的静态内部类,A.B b = new A.B()。 3、静态内部类只能引用外部类的静态的属性及方法。

二者比较:

  • 静态内部类相对于外部类是独立存在的,在静态内部类中无法直接访问外部类中的变量、方法。如果要访问,必须new一个外部类的对象,使用new出来的对象访问。但是可以直接访问静态的变量,调用静态的方法。
  • 普通内部类作为外部类的一个成员存在,在普通内部类中可以直接访问外部类的属性,调用外部类的方法。
  • 外部类要访问内部类的属性或者方法,需要创建一个内部类的对象,使用该对象去访问属性或者调用方法。
  • 其他类要访问普通内部类的属性或者方法,必须在外部类中创建一个普通内部类的对象作为属性,外部类可以通过该属性调用普通内部类的方法或者访问普通内部类的属性。
  • 其他类要访问静态内部类的属性或者方法,直接创建一个静态内部类对象即可。

“一个专注于分享各类Java面试题的号主,长按二维码关注我吧 ”

祝大家都能拿到心仪的offer!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java进阶架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[ Java面试题 ]基础篇之一
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?         可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。 2、Java有没有
Kevin_Zhang
2018/05/22
6820
[金三银四面试季]Java面向对象高频面试题
  金三银四正是跳槽涨薪的好时节,波哥给大家整理了很多面试高频的问题,助力大家找到更好的工作哦,点点关注,感谢支持。
用户4919348
2022/04/13
3590
[金三银四面试季]Java面向对象高频面试题
Java:关于Static静态关键字的那些小事
前言 在Java中,静态 Static关键字使用十分常见 本文全面 & 详细解析静态 Static关键字,希望你们会喜欢 目录 1. 定义 一种 表示静态属性的 关键字 / 修饰符 2. 作用 共用、
Carson.Ho
2019/02/22
4710
JAVA知识点总结篇(二)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
村雨遥
2019/09/09
6540
JAVA知识点总结篇(二)
Java面试集锦(一)之Java基础
前面介绍过了计算机内存模型,这是解决多线程场景下并发问题的一个重要规范。那么具体的实现是如何的呢,不同的编程语言,在实现上可能有所不同。
凯哥Java
2022/12/16
3080
Java面试集锦(一)之Java基础
【2022最新Java面试宝典】—— Java基础知识面试题(91道含答案)
所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。 实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟 机,该系统就可以运行java程序。
全栈程序员站长
2022/11/06
7670
【2022最新Java面试宝典】—— Java基础知识面试题(91道含答案)
Java学习笔记
1、对于构造函数,如果声明为public void structor(),则如果声明该对象时不会调用该构造函数,如果声明为public structor(),则对象会自动调用该构造函数
张哥编程
2024/12/17
1190
JAVA 1-6章测试题
JAVA 1-6章测试题 简答题: 1、JAVA实现跨平台的原理? 答:Java为我们提供了Java虚拟机(JVM),当程序运行时,Java首先将后缀名为.java的源文件转换为.class的字
葆宁
2019/04/19
9050
JAVA面试题全集(上)
答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。 - 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。 - 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1). 方法重写(子类继承父类并重写父类中已有的或抽象的方法);2). 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。
吾爱小白
2020/07/09
5630
JAVA入门2 原
我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就是 static 大显身手的时候了!!
晓歌
2018/08/15
4120
JAVA入门2
                                                                            原
面试必备【含答案】Java面试题系列(一)
答:short s1 = 1; s1 = s1 + 1;s1+1运算结果是int 型,需要强制转换类型;short s1 = 1; s1 += 1;可以正确编译,自动类型提升。
苏先生
2019/05/18
7750
Java面试之基础及语法
答:面向对象的特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3)封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4)多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
全栈程序员站长
2022/08/04
5130
Java知识面试题复习(三)Java面向对象
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
Maynor
2021/12/07
4260
Java知识面试题复习(三)Java面向对象
程序员的56大Java基础面试问题及答案
首先,属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。
鱼找水需要时间
2023/12/23
2420
程序员的56大Java基础面试问题及答案
来了来了它来了,100条必背JAVA知识点(下)
来了来了,100条必背JAVA知识点它来了。 接着昨天的前50条来分享,今天的部分涉及更多的代码,全文都是干货,建议收藏后观看。 51、重写的规则: ①子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同 。 ②子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符 特殊情况:子类不能重写父类中声明为private权限的方法。 ③ 返回值类型:  父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型只能是void。 父类被重写的方法的返回值类型是A类型,则子类重
老九君
2022/06/06
7500
来了来了它来了,100条必背JAVA知识点(下)
(21) 内部类的本质 / 计算机程序的思维逻辑
内部类 之前我们所说的类都对应于一个独立的Java源文件,但一个类还可以放在另一个类的内部,称之为内部类,相对而言,包含它的类称之为外部类。 为什么要放到别的类内部呢?一般而言,内部类与包含它的外部类有比较密切的关系,而与其他类关系不大,定义在类内部,可以实现对外部完全隐藏,可以有更好的封装性,代码实现上也往往更为简洁。 不过,内部类只是Java编译器的概念,对于Java虚拟机而言,它是不知道内部类这回事的, 每个内部类最后都会被编译为一个独立的类,生成一个独立的字节码文件。 也就是说,每个内部类其实都可
swiftma
2018/01/31
8350
Java基础面试题&知识点总结(下篇)
解答:面向对象编程(Object-Oriented Programming,简称 OOP)是一种编程范式,它使用 “对象” 来设计软件和创建可重用的代码。
栗筝i
2023/10/26
3600
【Java SE学习】Day6 JavaSE面向对象(下)看着三篇就够了
        前面我们已经讲述了面向对象三大特性:封装性、继承性、多态性,讲述了面向对象重要组成部分,今天讲的是面向对象(下),关于static,final,interface,abstart等重要关键字。
小小程序员
2023/02/24
4530
【Java SE学习】Day6 JavaSE面向对象(下)看着三篇就够了
Java基础知识面试题(2020最新版)
Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章持续更新中…
Java架构师必看
2020/04/10
1.1K0
[JAVA进阶]一文理解面向对象编程(超详细2w字巨作!)
我们在程序之中要干某种事,需要某种工具来完成,这样更符合人类的思维习惯,编程更简单,更好理解。
钮祜禄.爱因斯晨
2025/07/13
760
[JAVA进阶]一文理解面向对象编程(超详细2w字巨作!)
相关推荐
[ Java面试题 ]基础篇之一
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档