天天看点

牛客java选择题每日打卡Day20

牛客java选择题每日打卡Day20

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

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

🔮本文由京与旧铺原创

😘系列专栏:java学习

👕参考网站:牛客网

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

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

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

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

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

🛒导航小助手🎪

文章目录

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

🙌选择题1

Java语言中,下面哪个语句是创建数组的正确语句?( )

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

float f[][] = new float[6][6];
float []f[] = new float[6][6];
float f[][] = new float[][6];
float [][]f = new float[6][6];
float [][]f = new float[6][];      

C语言中的二维数组,第二个控制列,必须要有值,行可以不要!别记混了

Java中二维数组定义,一维的长度前面那个框值必须给

🙌选择题2

What is Static Method in Java()

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

It is a method which belongs to the class and not to the object(instance)
A static method can access only static data. It can not access non-static data (instance variables)
A static method can call only other static methods and can not call a non-static method from it.
A static method can not be accessed directly by the class name and doesn’t need any object      

A:静态方法是一个属于类而不属于对象(实例)的方法。(√)

B:静态方法只能访问静态数据。无法访问非静态数据(实例变量)。(√)

C:静态方法只能调用其他静态方法,不能从中调用非静态方法。(√)

D:静态方法不能通过类名直接访问,也不需要任何对象。(×) 静态方法可以直接用类名访问。

🙌选择题3

下面选项中,哪些是interface中合法方法定义?()

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

public void main(String [] args);
private int getSum();
boolean setFlag(Boolean [] test);
public float get(int x);      

java程序的入口必须是static类型的,接口中不允许有static类型的方法。A项没有static修饰符,可以作为普通的方法。而且接口中的方法必须是public的。想想借口就是为了让别人实现的,相当于标准,标准不允许别人使用是不合理的,所以接口中的方法必须是public。C项中,接口中的方法默认是public的。D项属于正常的方法。所以答案是:ACD

🙌选择题4

假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]。 执行下面的方法numQuest(),数组num会变成?

private List<Integer> nums;

//precondition: nums.size() > 0
//nums contains Integer objects
public void numQuest() {
    int k = 0;
    Integer zero = new Integer(0);
    while (k < nums.size()) {
        if (nums.get(k).equals(zero))
            nums.remove(k);
        k++;
    }
}      

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

[3, 5, 2, 4, 0, 0, 0, 0]
[0, 0, 0, 0, 4, 2, 5, 3]
[0, 0, 4, 2, 5, 0, 3, 0]
[0, 4, 2, 5, 3]      

做这种题还是要一步一步来,不然一不小心就掉坑里:

List中的 get ( i )指的是获取下标(索引)为 i 的元素,也就是第 i+1 个元素

本题:

zero==0,如果get(k)==0,执行remove(k); ;

size8 ; k0 , 因此第一次remove(0) ,删除索引为0的元素也就是第一个元素0,然后k++, size()–;

此时集合元素为 :**[**0,4,2,5,0,3,0]

size7; k1,因此get(1)==4 !=0 , 不执行remove(); k++,因没有删除元素,size()不变,

此时集合元素为:**[**0,4,2,5,0,3,0]

size7;k2,k++;

size7;k3,k++;

size7;k4,get(4)==0,remove(4) ; k++, size()–;

此时集合元素为: **[**0,4,2,5,3,0]

size6;k5,get(5)==0,remove(5);k++, size()–;

此时集合元素为: **[**0,4,2,5,3]

size5; k6 ;退出循环;最终输出此时集合元素为 **[**0,4,2,5,3] ;

一般更改删除集合元素,使用iterator()迭代器,不推荐使用这种;

🙌选择题5

执行以下程序后的输出结果是()

public class Test {
    public static void main(String[] args) {
        StringBuffer a = new StringBuffer("A"); 
        StringBuffer b = new StringBuffer("B"); 
        operator(a, b); 
        System.out.println(a + "," + b); 
    } 
    public static void operator(StringBuffer x, StringBuffer y) { 
        x.append(y); y = x; 
    }
}      

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

A,A
A,B
B,B
AB,B      

Java参数,不管是原始类型还是引用类型,传递的都是副本(有另外一种说法是传值,但是说传副本更好理解吧,传值通常是相对传址而言)。 如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的传值是一样的。如果在函数中改变了副本的 值不会改变原始的值. 如果参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址。如果在函数中没有改变这个副本的地址,而是改变了地址中的 值,那么在函数内的改变会影响到传入的参数。如果在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传入的参数还是指向原来的 地址,所以不会改变参数的值。

🙌选择题6

下面有关servlet和cgi的描述,说法错误的是?

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

servlet处于服务器进程中,它通过多线程方式运行其service方法
CGI对每个请求都产生新的进程,服务完成后就销毁
servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等
cgi在移植性上高于servlet,几乎所有的主流服务器都直接或通过插件支持cgi      

Servlet 与 CGI 的比较

和CGI程序一样,Servlet可以响应用户的指令(提交一个FORM等等),也可以象CGI程序一样,收集用户表单的信息并给予动态反馈(简单的注册信息录入和检查错误)。

然而,Servlet的机制并不仅仅是这样简单的与用户表单进行交互。传统技术中,动态的网页建立和显示都是通过CGI来实现的,但是,有了Servlet,您可以大胆的放弃所有CGI(perl?php?甚至asp!),利用Servlet代替CGI,进行程序编写。

对比一:当用户浏览器发出一个Http/CGI的请求,或者说 *调用一个CGI程序的时候,服务器端就要新启用一个进程* (而且是每次都要调用),调用CGI程序越多(特别是访问量高的时候),就要消耗系统越多的处理时间,只剩下越来越少的系统资源,对于用户来说,只能是漫长的等待服务器端的返回页面了,这对于电子商务激烈发展的今天来说,不能不说是一种技术上的遗憾。

*而Servlet充分发挥了服务器端的资源并高效的利用。每次调用Servlet时并不是新启用一个进程* ,而是在一个Web服务器的进程敏感词享和分离线程,而线程最大的好处在于可以共享一个数据源,使系统资源被有效利用。

对比二:传统的CGI程序,不具备平台无关性特征,系统环境发生变化,CGI程序就要瘫痪,而Servlet具备Java的平台无关性,在系统开发过程中保持了系统的可扩展性、高效性。

对比三:传统技术中,一般大都为二层的系统架构,即Web服务器+数据库服务器,导致网站访问量大的时候,无法克服CGI程序与数据库建立连接时速度慢的瓶颈,从而死机、数据库死锁现象频繁发生。而我们的Servlet有连接池的概念,它可以利用多线程的优点,在系统缓存中事先建立好若干与数据库的连接,到时候若想和数据库打交道可以随时跟系统"要"一个连接即可,反应速度可想而知。

🙌选择题7

下面哪些语法结构是正确的?

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

public class A extends B implements C
public class A implements A B
public class A implements B,C,D
public implements B      

A选项- 标准写法,正确

public` `class` `A ``extends` `B ``implements` `C      

B选项- implements接的是接口类 而A此处的定义又是class

循环矛盾,必然错误

public` `class` `A ``implements` `A B      

C选项- 正确,一个类可以实现多个接口(但是题目拼写有误- -)

public` `class` `A ``implements` `B,C,D      

D选项- 错误。

public` `implements` `B      

lements接的是接口类 而A此处的定义又是class

循环矛盾,必然错误

public` `class` `A ``implements` `A B      

C选项- 正确,一个类可以实现多个接口(但是题目拼写有误- -)

public` `class` `A ``implements` `B,C,D      
public` `implements` `B      
结束语🏆🏆🏆
🔥推荐一款模拟面试、刷题神器网站
点击跳转进入网站[点击进入](https://www.nowcoder.com/exam/oj?page=1&tab=%E8%AF%AD%E6%B3%95%E7%AF%87&topicId=220&fromPut=pc_csdncpt_jyjp_java)
1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单
2、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题
3、大厂笔试真题:字节跳动、美团、百度、腾讯…