牛客java选择题每日打卡Day5

举报
京与旧铺 发表于 2022/05/27 20:06:44 2022/05/27
【摘要】 牛客java选择题每日打卡Day5👩‍💻博客主页:京与旧铺的博客主页✨欢迎关注🖱点赞🎀收藏⭐留言✒🔮本文由京与旧铺原创,csdn首发!😘系列专栏:java学习👕参考网站:牛客网💻首发时间:🎞2022年5月21日🎠🎨你做三四月的事,八九月就会有答案,一起加油吧🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬...

牛客java选择题每日打卡Day5

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

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

🔮本文由京与旧铺原创,csdn首发!

😘系列专栏:java学习

👕参考网站:牛客网

💻首发时间:🎞2022年5月21日🎠

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

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

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


图片


🛒导航小助手🎪


🥩选择题1

 public class Square {  
     long width;  
     public Square(long l) {   
         width = l;  
     }  
     public static void main(String arg[]) {   
         Square a, b, c;   
         a = new Square(42L);   
         b = new Square(42L);   
         c = b;   
         long s = 42L;  
     } 
 }

a = new` `Square(42L); b =newSquare(42L);

这里new了两个对象,所以a,b不是同一个引用a!=b

s的类型跟a,b不同类型,所以s!=a,s!=b

``c = b;

这里b,c是同一个对象的引用,所以b==c是true

👩‍🦰选择题2

image-20220521214759459

 String test="javaandpython"; 
 String str1="java"; 
 String str2="and"; 
 String str3="python"; 
 System. out. println(test=="java"+"and"+"python"): 
 System. out. println(test ==str1 + str2 + str3);

对于上面这段代码,结果是true false

这是因为字符串字面量拼接操作是在Java编译器编译期间就执行了,也就是说编译器编译时,直接把"java"、"and"和"python"这三个字面量进行"+"操作得到一个"javaandpython" 常量,并且直接将这个常量放入字符串池中,这样做实际上是一种优化,将3个字面量合成一个,避免了创建多余的字符串对象(只有一个对象"javaandpython",在字符串常量池中)。而字符串引用的"+"运算是在Java运行期间执行的,即str1 + str2 + str3在程序执行期间才会进行计算,它会在堆内存中重新创建一个拼接后的字符串对象。且在字符串常量池中也会有str1,str2与str3,这里创建多少个新的对象与原来字符串常量池中有没有str1\str2\str3有关,如果之前存在就不会创建新的对象。

总结来说就是:字面量"+"拼接是在编译期间进行的,拼接后的字符串存放在字符串池中;而字符串引用的"+"拼接运算实在运行时进行的,新创建的字符串存放在堆中。

那么再来看这题,很明显只在编译期间在字符串常量池中创建了"welcometo360"一个字符串

🧀选择题3

image-20220521215548347

weblogic中开发消息Bean时的persistent与non-persisten的差别:

  • persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来。

  • non-persistent方式的消息将被丢弃

🥮选择题4

image-20220521215805895

java.util.*,只能读取其目录下的类,不能读取其子目录下的类。

因为其根目录和子目录下可能有同名类,若都能读取,则会混淆。

🍞选择题5

image-20220521220124826

全选,Object 类中方法及说明如下:

registerNatives() //私有方法

getClass() //返回此 Object 的运行类。 hashCode() //用于获取对象的哈希值。 equals(Object obj) //用于确认两个对象是否“相同”。 clone() //创建并返回此对象的一个副本。 toString() //返回该对象的字符串表示。 notify() //唤醒在此对象监视器上等待的单个线程。 notifyAll() //唤醒在此对象监视器上等待的所有线程。 wait(long timeout) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或 者超过指定的时间量前,导致当前线程等待。 wait(long timeout, int nanos) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。 wait() //用于让当前线程失去操作权限,当前线程进入等待序列 finalize() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

🥖选择题6

image-20220521220238958

Java语言提供了很多修饰符,主要分为以下两类:

1、访问修饰符

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

2、非访问修饰符,包括但不限于:

static 修饰符,用来修饰类方法和类变量。

final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

abstract 修饰符,用来创建抽象类和抽象方法。

synchronizedvolatile 修饰符,主要用于线程的编程。

本题应该是想考标识符:

Java标识符由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。

🥪选择题7

image-20220521220700575

A B选项,免程序在多线程竞争情况下读到不正确的值需要保证内存可见性,即当一个线程修改了volatile修饰的变量的值,volatile会保证新值立即同步到主内存,以及每次使用前立即从主内存读取。

C选项,synchronized可以修饰方法、代码块或对象,并不修饰变量。

D选项,static修饰的变量属于类,线程在使用这个属性的时候是从类中复制拷贝一份到线程工作内存中的,如果修改线程内存中的值之后再写回到原先的位置,就会有线程安全问题。用static修饰的变量可见性是无法确保的。

🤴总结

好啦,今天的错题总结就到这里啦,以后的每一天我都会尽量去打卡做java的基础选择题,然后总结出错题,相信练习之后会有更好的学习效果,既然看到这里啦,可以给我三连一下吗,爱你们啊

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。