java基础巩固刷题

也许是之前java只学了一个月后面就直接写聊天室,没怎么看过基础知识了。

感觉做题目的正确率太低了!

总而言之,发现自己基础好像还是不太牢固诶!

多刷刷!在刷题中复习!!

除了错题,值得复盘的正确题也记录下来了!😁

7.18记录:

 很多时候,因为idea的强大补全+修正功能,我们会忽视很多细节,在离开idea时,会突然忘记。当然这也是基础不好的表现。

老实说,这道题一开始我忘记了,不知道选啥,我就打开了编译器试,然后选择不报错的,嚯嚯。

A选项:接口中方法默认被public abstract修饰,抽象方法不可以有方法体。A错误。

B选项:JDK8中,接口中的方法可以被default和static修饰,但被修饰的方法必须有方法体。B错误。

C选项:接口的确是可以继承的,但C选项错误的原因和继承没关系。它错在抽象方法不可以有方法体。

D选项正确。


 jvm中没有进程的概念 ,但是jvm中的线程映射为操作系统中的进程,对应关系为1:1。这道题的问的就是jvm中线程如何异步执行 。  在jvm中是使用监视器来实现不同线程的异步执行,  在语法的表现就是synchronized  。


 这道题,我只分析AB

列表(List)的元素是序、可重复 的;

集合(Set)的元素是无序、不可重复的。

List底层是数组存储数据的,所以有序,可重复的

Set底层是HashMap,添加元素其实就是调用map的put()方法,添加的元素作为map的key,value是一个Object对象。


又是一个之前没有注意细节的小知识点。!!

虽然说count是私有变量。但是!题中是在本类中调用count。

重要的是:私有变量,只能用于当前类中。

题目中就是在当前类中运用,所以没问题。


 这道题考的也是细节+基础。

case只是个入口,没有break,发生case穿透现象,程序会继续向下执行,直到遇到break或者结束switch语句的大括号为止。


 

一直搞不太清楚这类题型。 

1.程序入口main方法要执行首先要加载类B

2.静态域:分为静态变量,静态方法,静态块。这里面涉及到的是静态变量和静态块,当执行到静态域时,按照静态域的顺序加载。并且静态域只在类的第一次加载时执行

3.每次new对象时,会执行一次构造块和构造方法,构造块总是在构造方法前执行(当然,第一次new时,会先执行静态域,静态域〉构造块〉构造方法)注意:加载类时并不会调用构造块和构造方法,只有静态域会执行

4.根据前三点,首先加载类B,执行静态域的第一个静态变量,static b1=newB,输出构造块和构造方法(空)。ps:这里为什么不加载静态方法呢?因为执行了静态变量的初始化,意味着已经加载了B的静态域的一部分,这时候不能再加载另一个静态域了,否则属于重复加载了(静态域必须当成一个整体来看待。否则加载会错乱)于是依次static b2 =new B,输出构造块,再执行静态块,完成对整个静态域的加载,再执行main方法,new b,输出构造块。


 

😅哎..... 

考基础,String和StringBuffer的原理不同。

String对象是不可变的。

String str = "aa"; str = "aa"+"bb"; 此时str的值为"aabb",但是"aabb"不是在开始的字符串"aa"后面直接连接的"bb",而是又新生成了字符串"aabb",字符串"aa"一旦被初始化,那么它的值不可能再改变了。

StringBuffer对象是可变的。

StringBuffer strb = StringBuffer("aa"); strb.append("bb"); 此时的strb的值也为"aabb",但是"aabb"是直接在开始的字符串"aa"后面连接的“bb”,并没有生成新的字符串。 

 区别在于是否生成新的字符串。


 重点是 final int i;前面的这个final。

final作为对象成员存在时,必须初始化;

但是,如果不初始化,也可以在类的构造函数中初始。

反正必须要给初始化了。

因为java允许将数据成员声明为final,却不赋初值。但是,blank finals必须在使用之前初始化,且必须在构造函数中初始化  。

而题中显然,既没有在定义时初始化,也没有再构造函数中初始化就直接使用了,所以编译错误。


 局部内部类是放在代码块或方法中的,不能有访问控制修饰符。且不能被static修饰。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值