❤️❤️个人主页:摸鱼王胖嘟嘟
🌟🌟作品专栏:小嘟陪你刷题系列
📑给大家推荐一款非常火的面试、刷题、学习神器
👉牛客网
👉点击注册一起刷题、学习、讨论收获大厂offer吧!
前言
本篇是对JavaSE基础知识的一些练习!希望能够很快的掌握JavaSE的知识!
第一题:
解析:C
不存在x[25] 索引从0开始到length-1
x[24] 存的是默认值0(java中没有’\0’这一说)
x[25]属于数组越界了!超出了内存!
x[0]才是访问此数组的第一个元素
第二题:
解析
答案:C
在类方法中不能有this关键字
直接调用类方法即可,A错误,B正确,在类方法中可以通过创建实例对象调用类的实例方法,C\D错误
第三题:
解析
答案:A
Java程序初始化顺序:
- 父类的静态代码块
- 子类的静态代码块
- 父类的普通代码块
- 父类的构造方法
- 子类的普通代码块
- 子类的构造方法
第四题:
解析
答案:C
子类调用父类的构造器使用super(),放在子类构造函数的首行
第五题:
解析
答案:B
🍁1.for循环外面count=0,循环里面的count=count++;(count的值都等于count值,而后面count自加不影响count结果,因此这个式子无意义);循环count都为0(因count++是先返回count的本身值再自加1的)!
🍁2.若是改为count=++count;(先自加,再返回自加后的值),结果就是5050101=510050了!
🍁3.改为count++;结果就是5050101=510050了!
第六题:
解析
答案:AC
🍁被final关键字修饰的类不能被继承,但抽象类存在的意义在于被其它类继承然后实现其内部方法的,这样final和抽象类之间就产生了矛盾。因此,final并不能修饰抽象类,选项A错误,选项B正确。
🍁C选项,重载的实现是编译器根据函数的不同的参数表,对同名函数的名称做修饰,那么对于编译器而言,这些同名函数就成了不同的函数。但重写则是子类方法对父类的方法的延申,即子类不仅继承了父类的方法,还向父类的方法中添加了属于自己的内容,改变了父类方法原本的内容,而final代表了一种不可变,这明显与重写形成了冲突。因此被final修饰的类可以被重载但不能被重写,选项C错误。
🍁当final用来修饰变量时,代表该变量不可被改变,一旦获得了初始值,该final变量就不能被重新赋值,选项D正确。故答案为AC。
第七题:
解析
答案:A
\d 说明是digit数字
\w说明是word单词
\D匹配的是非数字。
第八题:
解析
答案:D
🍁本题需要注意一点:a、b、c三个变量是定义在方法中的局部变量,使用前必须初始化,否则就会出现错误。
🍁当我们新建一个对象时,Java会在Heap中申请一块内存区域用以存放类的数据。而成员变量就是类的数据,也是放在这块内存区域中的。初始化时只需要JVM在申请内存的时候顺便把整块区域都置为零即可完成。所以JVM会自动帮我们完成全局变量的初始化。
🍁对于方法的局部变量,是在线程的Stack中,虽然Stack可以帮我们完成初始化,但这样是存在问题的,比如有些局部变量,在方法的一开始是没有的,有些在循环中的局部变量是要反复的声明多次的。有些局部变量作用域结束后,另一个局部变量又会占用这个局部变量的位置。
🍁局部变量不自动初始化是一种约束,它会尽最大程度减少使用者犯错的可能。假使局部变量可以使用默认值,可能总会无意间忘记赋值,进而导致不可预期的情况出现。