牛客java选择题每日打卡Day18
👩💻博客主页:京与旧铺的博客主页
✨欢迎关注🖱点赞🎀收藏⭐留言✒
🔮本文由京与旧铺原创,csdn首发!
😘系列专栏:java学习
👕参考网站:牛客网
💻首发时间:🎞2022年7月2日🎠
🎨你做三四月的事,八九月就会有答案,一起加油吧
🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦
🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲
💬推荐一款模拟面试、刷题神器👉[点击进入网站](
🛒导航小助手🎪
牛客java选择题每日打卡Day18🛒导航小助手🎪🤳选择题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
- 点赞
- 收藏
- 关注作者
评论(0)