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练习题(每天进步一点点系列)

提示:好多小伙伴反映,直接看到答案不太好,那我把答案的颜色设置为透明,答案位置还是在题目后面,需要鼠标选中才能看见(操作如下图),同时为了手机端的小伙伴(手机端也可以长按选中查看),我还会把所有答案放到文章最下面,希望给每天进步一点点的小伙伴更好的体验。
在这里插入图片描述

1、类 ABC 定义如下:
1 . public class ABC{
2 . public int max( int a, int b) { }
3 .
4 . }
将以下哪个方法插入行 3 是不合法的。( )。
正确答案: B 你的答案: B (正确)
public float max(float a, float b, float c){ }
public int max (int c, int d){ }
public float max(float a, float b){ }
private int max(int a, int b, int c){ }

题解:
注意是不合法,这题考察重载
细说一下重写和重载:
这两个都是多态的一种表现形式。
重载:
1、 重载是在编译器通过方法中形参的静态类型确定调用方法版本的过程。
2、 重载是多态在编译期的表现形式
3、 重载的判定只有两个条件(其他的条件都不能作为判定):
1、 方法名一致
2、形参列表不同
重写:
1、重写在方法运行时,通过调用者的实际类型来确定调用的方法版本。(具体细说,就是子父类中的重写方法在对应的class文件常量池的位置相同,一旦子类没有重写,那么子类的实例就会沿着这个位置往上找,直到找到父类的同名方法)
2、重写只发生在可见的实例方法中:
1、静态方法不存在重写,形式上的重写只能说是隐藏。
2、私有方法也不存在重写,父类中private的方法,子类中就算定义了,就是相当于一个新的方法。
3、静态方法和实例方法不存在相互重写。
3、重写满足一个规则:两同两小一大
1、两同:方法名和形参列表一致
2、两小:重写方法的返回值(引用类型)和抛出异常,要和被重写方法的返回值(引用类型)和抛出异常相同或者是其子类。注意,一旦返回值是基本数据类型,那么重写方法和被重写方法必须相同,且不存在自动拆装箱的问题。
3、一大:重写方法的访问修饰符大于等于被重写方法的访问修饰符。
B选项方法名、形参列表和返回值类型与题目完全一样,故既不是重写也不是重载

2、后端获取数据,向前端输出过程中,以下描述正确的是
正确答案: D 你的答案: D (正确)
对于前端过滤过的参数,属于可信数据,可以直接输出到前端页面
对于从数据库获得的数据,属于可信数据,可以直接输出到前端页面
对于从用户上传的Excel等文件解析出的数据,属于可信数据,可以直接输出到前端页面
其它选项都不属于可信数据,输出前应该采用信息安全部发布的XSSFilter做进行相应编码

题解:
后端获取数据,向前端输出的过程中,输出前应该采用信息安全部发布的XSSFilter进行相应编码。

3、在异常处理中,以下描述不正确的有
正确答案: D 你的答案: D (正确)
try块不可以省略
可以使用多重catch块
finally块可以省略
catch块和finally块可以同时省略

题解:
选D 假如try中有异常抛出,则会去执行catch块,再去执行finally块;假如没有catch 块,可以直接执行finally 块,方法就以抛出异常的方式结束,而finally 后的内容也不会被执行,所以catch 和 finally 不能同时省略。

4、如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? ( )
正确答案: C 你的答案: C (正确)
void use() { …}
protected void use() { …}
public void use() { …}
以上语句都可以用在类SmallCup中

题解:
1.题目说了实现,那么接口中的方法是抽象方法
2.接口中的抽象方法是public修饰
3.实现就意味着重写,重写的方法的权限不能小于被重写的方法
4.而最大的权限是public,即public<=重写的方法的权限<=public,即重写的方法的权限只能为public

5、下面的程序将来打印什么?()
public class TestIncr {
public static void main(String args[]) {
int i = 0;
i = i++ + i;
System.out.println(“I =” +i);
}
}
正确答案: A 你的答案: A (正确)
I = 1
I = 2
I = 3
编译出错

题解:
首先,在 i = i++ + i 中,先执行的是 i++ ,此时式子可为 i = 0 + i
然后再进行后一步 +i ,因为前面执行了 i++ ,所以这个 i 的值已经 +1 了
那么最后这个式子就是 i = 0 + 1

6、执行以下程序后的输出结果是()
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 你的答案: D(正确)
A,A
A,B
B,B
AB,B

题解:
a和x是同个地址,b和y是同个地址,然后执行x.append(y)就把y的值放在x的地址里面此时a地址和x是同一个所以a就是AB了,接着执行y=x是把x的地址给y,这时候axy属于同一个地址。所以y=x 只是改变了y的地址没改变b的地址,所以b还是B

7、java语言的下面几种数组复制方法中,哪个效率最高?
正确答案: B 你的答案: B (正确)
for 循环逐一复制
System.arraycopy
Array.copyOf
使用clone方法

题解:
从速度上看:System.arraycopy > clone > Arrays.copyOf > for
System.arraycopy():native方法+JVM手写函数,在JVM里预写好速度最快
clone():native方法,但并未手写,需要JNI转换,速度其次
Arrays.copyof():本质是调用1的方法
for():全是深复制,并且不是封装方法,最慢情有可原

8、有关会话跟踪技术描述正确的是()
正确答案: A B C 你的答案: A B C (正确)
Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端
关闭浏览器意味着临时会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期
在禁用Cookie时可以使用URL重写技术跟踪会话
隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示

题解:
D:隐藏域在页面中对于用户(浏览器)是不可见的,在表单中插入隐藏域的目的在于收集或发送信息,以利于被处理表单的程序所使用。浏览者单击发送按钮发送表单的时候,隐藏域的信息也被一起发送到服务器。

9、关于Java内存区域下列说法不正确的有哪些
正确答案: B C 你的答案: B C (正确)
程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器,每个线程都需要一个独立的程序计数器.
Java虚拟机栈描述的是java方法执行的内存模型,每个方法被执行的时候都会创建一个栈帧,用于存储局部变量表、类信息、动态链接等信息
Java堆是java虚拟机所管理的内存中最大的一块,每个线程都拥有一块内存区域,所有的对象实例以及数组都在这里分配内存。
方法区是各个线程共享的内存区域,它用于存储已经被虚拟机加载的常量、即时编译器编译后的代码、静态变量等数据。

题解:
B.类信息不是存储在java虚拟机栈中,而是存储在方法区中;
C.java堆是被所有线程共享的一块内存区域,而不是每个线程都拥有一块内存区域。
?
A.程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器(偏移地址),Java编译过程中产生的字节码有点类似编译原理的指令,程序计数器的内存空间存储的是当前执行的字节码的偏移地址,每一个线程都有一个独立的程序计数器(程序计数器的内存空间是线程私有的),因为当执行语句时,改变的是程序计数器的内存空间,因此它不会发生内存溢出 ,并且程序计数器是jvm虚拟机规范中唯一一个没有规定 OutOfMemoryError 异常 的区域;
B.java虚拟机栈:线程私有,生命周期和线程一致。描述的是 Java 方法执行的内存模型:每个方法在执行时都会床创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行结束,就对应着一个栈帧从虚拟机栈中入栈到出栈的过程。 没有类信息,类信息是在方法区中
C.java堆:对于绝大多数应用来说,这块区域是 JVM 所管理的内存中最大的一块。线程共享,主要是存放对象实例和数组
D.方法区:属于共享内存区域,存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

10、下面的Java赋值语句哪些是有错误的 ()
正确答案: B C F 你的答案: B C F(正确)
A:int i =1000;
B:float f = 45.0;
C:char s = ‘\u0639’
D:Object o = ‘f’;
E:String s = “hello,world\0”;
F:Double d = 100;

题解:
A:没毛病
B:小数默认双精度(double)的,赋值给浮点型(float)属下转型,会造成精度损失,需要强制类型转换float f =(float)45.0; 或者写成float f =45.0F;。
C:没分号啊
D:可以把任何一种数据类型的变量赋给Object类型的变量,因为java所有类默认继承Object,基本数据类型赋值给Object会先装箱,装箱之后就是Object的子类了;
E:没毛病,字符串中的\0被编译为\u0000,表示一个空字符。
F:注意:double d=100,这样没毛病,但是题中是Double啊,会自动装箱, 装箱过程中调用的是Double类的valueOf( double d )方法, 而这里是100为int型, 所以编译会“cannot convert from int to Double”

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

以上部分题解来自牛客评论区,感谢评论区大佬的解释。

每天进步一点点!
不进则退!

版权声明:
原创博主:牛哄哄的柯南
博主原文链接:https://keafmd.blog.csdn.net/

看完如果对你有帮助,感谢点赞支持!
如果你是电脑端,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

在这里插入图片描述
加油!

共同努力!

Keafmd

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 19:22:40  更:2021-07-04 19:22:49 
 
开发: 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年5日历 -2024/5/5 9:39:39-

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