天天看点

牛客java选择题每日打卡Day18

牛客java选择题每日打卡Day18

👩‍💻博客主页:京与旧铺的博客主页

✨欢迎关注🖱点赞🎀收藏⭐留言✒

🔮本文由京与旧铺原创

😘系列专栏:java学习

👕参考网站:牛客网

💻首发时间:🎞2022年7月2日🎠

🎨你做三四月的事,八九月就会有答案,一起加油吧

🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲

💬推荐一款模拟面试、刷题神器👉​​点击进入网站​​

🛒导航小助手🎪

文章目录

  • ​​牛客java选择题每日打卡Day18​​
  • ​​🛒导航小助手🎪​​
  • ​​@[toc]​​
  • ​​🤳选择题1​​
  • ​​正确答案: A 你的答案: B (错误)​​
  • ​​🤳选择题2​​
  • ​​正确答案: A 你的答案: D (错误)​​
  • ​​🤳选择题3​​
  • ​​正确答案: B 你的答案: A (错误)​​
  • ​​🤳选择题4​​
  • ​​正确答案: B 你的答案: C (错误)​​
  • ​​🤳选择题5​​
  • ​​正确答案: D 你的答案: A (错误)​​
  • ​​🤳选择题6​​
  • ​​正确答案: D 你的答案: C (错误)​​
  • ​​🤳选择题7​​
  • ​​正确答案: D 你的答案: B (错误)​​

🤳选择题1

静态内部类不可以直接访问外围类的非静态数据,而非静态内部类可以直接访问外围类的数据,包括私有数据。( )

正确答案: A 你的答案: B (错误)

正确
错误      

选A

总的来说一下内部类吧:

1. 静态内部类:

1. 静态内部类本身可以访问外部的静态资源,包括静态私有资源。但是不能访问非静态资源,可以不依赖外部类实例而实例化。

2. 成员内部类:

1. 成员内部类本身可以访问外部的所有资源,但是自身不能定义静态资源,因为其实例化本身就还依赖着外部类。

3. 局部内部类:

1. 局部内部类就像一个局部方法,不能被访问修饰符修饰,也不能被static修饰。

2. 局部内部类只能访问所在代码块或者方法中被定义为final的局部变量。

4. 匿名内部类:

1. 没有类名的内部类,不能使用class,extends和implements,没有构造方法。

2. 多用于GUI中的事件处理。

3. 不能定义静态资源

4. 只能创建一个匿名内部类实例。

5. 一个匿名内部类一定是在new后面的,这个匿名类必须继承一个父类或者实现一个接口。

6. 匿名内部类是局部内部类的特殊形式,所以局部内部类的所有限制对匿名内部类也有效。

🤳选择题2

java中将ISO8859-1字符串转成GB2312编码,语句为 ?

正确答案: A 你的答案: D (错误)

new String("字符串".getBytes("ISO8859-1"),"GB2312")
new String(String.getBytes("GB2312"), ISO8859-1)
new String(String.getBytes("ISO8859-1"))
new String(String.getBytes("GB2312"))      

答案:A

注意这里"ISO8859-1"是一个普通字符串,不要被迷惑了

String.getBytes(“ISO8859-1”)表示获取这个字符串的byte数组,

然后new String(String.getBytes(“ISO8859-1”),GB2312)是上面的字符数组按照GB2312编码成新的字符串

🤳选择题3

类方法中可以直接调用对象变量?

正确答案: B 你的答案: A (错误)

正确
错误      

当试图在类方法(也就是静态方法)中调用类的非静态变量时,eclipse 给出了这么一句话 **Cannot make a static reference to the non-static field xxx(xxx代表你所写的非静态域的名字)。**这句话意思很简单,就是不能静态方法中引用非静态的域。

原因也很简单关于类初始化的过程中,静态域是随着类加载就完成了初始化,而非静态域此时都没有完成初始化,你引用它肯定就出错了。

🤳选择题4

以下哪个类包含方法flush()?()

正确答案: B 你的答案: C (错误)

InputStream
OutputStream
A 和B 选项都包含
A  和B 选项都不包含      

flush()函数强制将缓冲区中的字符流、字节流等输出,目的是如果输出流输出到缓冲区完成后,缓冲区并没有填满,那么缓冲区将会一直等待被填满。所以在关闭输出流之前要调用flush()。

🤳选择题5

Java1.8之后,Java接口的修饰符可以为()

正确答案: D 你的答案: A (错误)

private
protected
final
abstract      

接口是一种特殊的抽象类,先说明抽象类中的抽象方法,再说明接口

抽象类中的抽象方法(其前有 abstract1修饰)不能用 private、 static、 synchronized、na

tive访回修饰符修饰。原因如下:

\1. private

抽象方法没有方法体,是用来被继承的,所以不能用 private修饰;

2.static

static修饰的方法可以通过类名来访间该方法(即该方法的方法体),抽象方法用sttic修饰没有意义;

\3. synchronized

该关键字是为该方法加一个锁。而如果该关键字修饰的方法是 static方法。则使用的锁就是class变量的锁。如果是修饰类方法。则用this变量锁。

但是抽象类不能实例化对象,因为该方法不是在该抽象类中实现的。是在其子类实现的。所以,锁应该归其子类所有。所以,抽象方法也就不能用 synchronized关键字修饰了;

\3. native

native这个东西本身就和 abstract冲突,他们都是方法的声明,只是一个把方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢

终于说到了接口!

接口是一种特殊的抽象类,接口中的方法全部是抽象方法(但其前的 abstract可以省略),所以抽象类中的抽象方法不能用的访间修饰符这里也不能用。同时额外说明一下protect关键词

\4. protect

protected访同修饰符也不能使用,因为接口可以让所有的类去实现(非继承),不只是其子类,但是要用public去修饰。接口可以去继承一个已有的接口。

🤳选择题6

某程序要求每次输入只能是正整数,并且每次输入的数值要求必须是100的倍数且小于等于500,则下列哪个是正确的无效等价类( )

正确答案: D 你的答案: C (错误)

(0,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞);
(500,+∞)
(500,+∞)、任意大于0小于500的非100倍数的整数;
(-∞,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞);      

无效等价类和有效等价类相反,即不满足程序输入要求或者无效的输入数据构成的集合。

我觉得是选D,按无效等价类的定义来说,题目要求输入什么,无效等价类就应该是反着的。题目要求正整数,那么无效等价类就应该包含负数

🤳选择题7

假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果不可能是()

boolean isOdd = false;
for(int i=1;i<=2;++i){
    if(i%2==1)isOdd = true;
    else isOdd = false;
    a+=i*(isOdd?1:-1);
}      

正确答案: D 你的答案: B (错误)

-1
-2
0
1      

不管怎样线程对a的操作就是+1后-2

1.线程1执行完再线程2执行,1-2+1-2=-2

2.线程1和2同时+1,再-2不同时,1-2-2=-3

3.线程1和2不同时+1,同时-2,1+1-2=0

4.线程1和2既同时+1又同时-2,1-2=-1

###### 正确答案: D  你的答案: B (错误)      
不管怎样线程对a的操作就是+1后-2

1.线程1执行完再线程2执行,1-2+1-2=-2

2.线程1和2同时+1,再-2不同时,1-2-2=-3

3.线程1和2不同时+1,同时-2,1+1-2=0

4.线程1和2既同时+1又同时-2,1-2=-1

没有结果为1的情况

结束语🏆🏆🏆
🔥推荐一款模拟面试、刷题神器网站
点击跳转进入网站点击进入
1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单
2、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题
3、大厂笔试真题:字节跳动、美团、百度、腾讯…