IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【每日进步一点点系列】十道精选Java习题 -> 正文阅读

[Java知识库]【每日进步一点点系列】十道精选Java习题

???引言??

???????????????大家好,我是执梗。Java的学习非一朝一夕可以成功,需要我们水滴穿石般的坚持。每日进步一点点系列,旨在可以每天只花几分钟就能学到Java中我们可能忽略的知识,同时也可以检验自己的Java能力,希望能和大家每天都能进步一点点。

查看答案方法:

对下面块引用中的进行长拉(手机端可在文末)即可查看答案:

正确答案:A<-答案请长拉左侧

如图所示:

?在文章末尾我也会贴上答案。


🍓1.下面代码输出的正确的是()

public class Example {
    String str=new String("good");
    char[] ch={'a','b','c'};

    public static void main(String[] args) {
        Example ex = new Example();
        ex.change(ex.str,ex.ch);
        System.out.println(ex.str+" and ");
        System.out.println(ex.ch);
    }
    public void change(String str,char ch[]){
        str="test ok";
        ch[0]='g';
    }
}

? ? ? ? A.good and abc

? ? ? ? B.good and gbc

? ? ? ? C.tst ok and abc

? ? ? ? D.tst ok and gbc

正确答案为:B答案请长拉左测

Strng是一个类对象,当我们把他传入到change方法时,传入的是它的地址,这时我们change方法的第一条语句是让形参指向了另外一个对象,所以对原对象是没有变动的。数组ch传入的同样是地址,我们在该地址上进行改动,会改变原数组对象上的数据。??

🍓2.下面代码输出的是()

public static void main(String[] args) {
   int num = 2;
   switch (num) {
   case 1:
        ++num;
   case 2:
        ++num;
   case 3:
        ++num;
   default:
        ++num;
   break;
   }
   System.out.println(num);
 }
}

? ? ? ? A.2

? ? ? ? B.3

? ? ? ? C.4

? ? ? ? D.5

正确答案为:D

本题考察的是switch的穿透现象,当switch匹配到2后完成++num,由于没有break导致形成穿透,switch继续执行case 3和default语句,最后走了3次++num。

🍓3.下面关于servlet service描述错误的是?

? ? ? ? A.不管是post还是get方法提交过来的连接,都会在service中处理

? ? ? ? B.doGet/doPost 则是在 javax.servlet.GenericServlet 中实现的

? ? ? ? C.service()是在javax.servlet.Servlet接口中定义的

? ? ? ? D.service判断请求类型,决定是调用doGet还是doPost方法

正确答案:B

A.service方法是在servlet生命周期中的服务期,它根据HTTP请求方法(GET、POST等),将请求分发到doget和dopost等方法实现

B.doGet/doPost是在?javax.servlet.http.HttpServlet中实现的

C.service()是在javax.servlet.Servlet接口中定义的, 在 javax.servlet.GenericServlet 中实现了这个接口。

D.同理与A解释

🍓4.下面有关java object默认的基本方法,说法错误的是?

? ? ? ? A.equals(Object obj) 指示某个其他对象是否与此对象“相等”

? ? ? ? B.copy() 创建并返回此对象的一个副本

? ? ? ? C.wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法

? ? ? ? D.toString() 返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成

正确答案:B

Object当中没有copy()方法,有的是clone()方法????????

🍓5.运行代码,结果正确的是:

Boolean flag = false;
if(flag = true){
System.out.println("true");
}else{
System.out.println("false");
}

? ? ? ? A.第二行代码编译错误

? ? ? ? B.true

? ? ? ? C.false

? ? ? ? D.什么都不输出

正确答案:B????????

if判断中需要的是一个boolean类型的值,我们在空号中如果进行运算,需要返回一个boolean类型的变量。但其实赋值也是一种运算,返回的是赋值以后的值,这里返回的是flag被赋值以后的值true。

🍓6.下列有关Servlet的生命周期,说法不正确的是?

? ? ? ?A.在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例

? ? ? B.在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法

? ? ? C.在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源

? ? ? D.destroy()方法仅执行一次,即在服务器停止且卸载Servlet时执行该方法

正确答案:A

Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。

(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet

(2)创建:通过调用servlet构造函数创建一个servlet对象

(3)初始化:调用init方法初始化

(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求

(5)卸载:调用destroy方法让servlet自己释放其占用的资源

🍓7.对于子类的构造函数说明,下列叙述中错误的是( )

? ? ? ?A.子类不能继承父类的无参构造函数。

? ? ? ?B.子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。

? ? ? ?C.在创建子类的对象时,若不含带参构造函数,将先执行父类的无参构造函数,然后再执行自己的无参构造函数。

? ? ? ?D.子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。

正确答案:D

A:构造函数不能被继承,只能被调用。

B.子类如果要调用父类的有参构造函数,必须在自己的构造函数第一行使用super()显示地来调用

C.没有带参构造函数时jvm会默认提供无参构造,子类构造函数都默认调用父类地无参构造。为什么这时我们第一行看不见super()呢?因为调用父类无参构造可以省略。

D:同理与A

🍓8.关于Java以下描述正确的有(? ? ? )

? ? ? ? A.native关键字表名修饰的方法是由其它非Java语言编写的

? ? ? ? B.能够出现在import语句前的只有注释语句

? ? ? ? C.接口中定义的方法只能是public

? ? ? ? D.构造方法只能被修饰为public或者default

正确答案:A

A:native是调用本地方法库实现的,可以是C,C++

B:import是用于导包地关键字,它前面还可以出现package,用于声明包

C:在jdk8后接口地修饰符还可以为default,但是需要有代码块,可以不被重写

D:构造方法可以为public、protect、default、private

🍓9.java语言的下面几种数组复制方法中,哪个效率最高?

? ? ? ? A.for 循环逐一复制

? ? ? ? B.System.arraycopy

? ? ? ? C.Array.copyOf

? ? ? ? D.使用clone方法

正确答案:B

A:for循环属于这四种方法唯一一种深复制(也就是复制值),而且不是封装好的方法,肯定是最慢的

B:System.arraycopy是一个native方法而且被手写入JVM中,在JVM里已经预写好了,当然是当之无愧的一哥,最快的

C:Array.copyOf本质上是调用了大哥System.arraycopy(),但它本身不是native方法(本地方法),所以效率只能排老三

D:clone()也是一个native方法,所以效率很高,但比不上System.arraycopy,为什么呢?因为它没有被写入到JVM中,所以只能当个二哥了。

速度效率:System.arraycopy()>clone()>Array.copyOf()>for循环

🍓10.String?s?=?new?String("xyz");创建了几个StringObject???

? ? ? ? A.两个或一个都有可能

? ? ? ? B.两个

? ? ? ? C.一个

? ? ? ? D.三个

正确答案:A
通过new实例的方法创建字符串时,我们都知道会在堆上创建对象。我们也知道还有字符串常量池这个东西,但是很多人不知道的是你在new字符串时jvm会去检查常量池是否存在这个对象。如果存在,它只会在堆上创建一个对象。如果不存在,它会在常量池和堆上同时都创建一个对象,也就是两个对象。


答案汇总:
1、正确答案:B
2、正确答案:D
3、正确答案:B
4、正确答案:B
5、正确答案:B
6、正确答案:A
7、正确答案:D
8、正确答案:A
9、正确答案:B
10、正确答案:A
?

学习如同逆水行舟,不进则退!

每日进步一点点,水滴石穿!

可以订阅我的每日进步一点点专栏一起加油!!

看完如果让你进步了一点点,球球感谢给一个三连支持!!!

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-25 10:26:52  更:2022-01-25 10:27:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:39:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码