Java日常练习题,每天进步一点点(61)
作者:牛哄哄的柯南 发布时间:2021-07-17 06:56:13
目录
1、如果类的方法没有返回值,该方法的返回值类型应当是abstract。()
2、代码String str=”123456a”;int i=Integer.parseInt(str);会报异常的是()
3、以下哪个方法用于定义线程的执行体?
4、在Java中,什么是Garbage Collection?()
5、判断对错。List,Set,Map都继承自继承Collection接口。
6、关于下面程序,哪些描述是正确的: ( ) public class While {
7、若有下列定义,下列哪个表达式返回false? String s = “hello”; String t = “hello”; char c = {‘h',‘e',‘l',‘l',‘o'} ;
8、关于Java中参数传递的说法,哪个是错误的?
9、下面有关JAVA异常类的描述,说法错误的是?
10、类之间存在以下几种常见的关系:
答案汇总:
总结
承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案)
1、如果类的方法没有返回值,该方法的返回值类型应当是abstract。()
正确答案:B
A 正确
B 错误
题解:
1、 没有返回值就是不返回任何东西 abstract肯定是错的了 void返回值为空 所以说的是构造函数吧
2、 选B,没有返回值,该方法的返回值类型为void
2、代码String str=”123456a”;int i=Integer.parseInt(str);会报异常的是()
正确答案:B
A java.lang.NullPoninterException
B java.lang.NumberFormatException
C java.lang.RuntimeException
D java.lang.ArrayindexOutOfBoundsException
题解:
1、非纯数字的字符串转化为Integer对象会报数字格式异常。
2、 java.lang.NullPoninterException:变量未被初始化、对象未赋值、对象为空(俗称的空指针异常) java.lang.NumberFormatException:数据格式转换失败(integer的取值范围为:-127-128,超过范围都会访问false) java.lang.RuntimeException:运行时异常 java.lang.ArrayindexOutOfBoundsException:数组下标越界
3、 parseInt 是将字符串参数解析为带符号的十进制整数。 字符串中的字符都必须是十进制数字,除了第一个字符可能是ASCII减号'-' ( ‘\u002D' )以指示负值或ASCII加号'+' ( ‘\u002B' )以指示正值。 返回所得到的整数值,就像参数和小数10被赋予parseInt(java.lang.String
4、 int)方法的参数一样。
3、以下哪个方法用于定义线程的执行体?
正确答案:C
A start()
B init()
C run()
D synchronized()
题解:
1、run()相当于线程的任务处理逻辑的入口方法,它由Java虚拟机在运行相应线程时直接调用,而不是由应用代码进行调用。 而start()的作用是启动相应的线程。启动一个线程实际是请求Java虚拟机运行相应的线程,而这个线程何时能够运行是由线程调度器决定的。start()调用结束并不表示相应线程已经开始运行,这个线程可能稍后运行,也可能永远也不会运行。
2、 run方法线程执行体.start方法开启多线程
3、 WCNBD!
4、在Java中,什么是Garbage Collection?()
正确答案:C
A 自动删除在程序中导入但未使用的任何包
B JVM检查任何Java程序的输出并删除任何没有意义的东西
C 当对象的所有引用都消失后,对象使用的内存将自动回收
D 操作系统定期删除系统上可用的所有java文件
题解:
1、 garbage collection 垃圾回收
5、判断对错。List,Set,Map都继承自继承Collection接口。
正确答案:B
A 对
B 错
题解:
Map是独立的接口,不继承Collection接口
6、关于下面程序,哪些描述是正确的: ( ) public class While {
public void loop() {
int x= 10;
while ( x ) {
System.out.print("x minus one is " + (x - 1));
x -= 1;
}
}
}
正确答案:B
A 行1有语法错误
B 行4有语法错误
C 行5有语法错误
D 行6有语法错误
E 行2有语法错误
Floop是关键字
G 程序能够正常编译和运行
题解:
1、这个题主要考while()中表达式的判断,在C语言中大于0的int值都会被认为是true,而java中没有这个机制,必须是boolean类型的。
2、 while()括号里参数必须是布尔类型,要么true要么false
3、 loop 不是java 的关键字 问题出在 wile( boolean ) x 是一个int 形的变量 不是Boolean 值 所有编译不通过
7、若有下列定义,下列哪个表达式返回false? String s = “hello”; String t = “hello”; char c = {‘h',‘e',‘l',‘l',‘o'} ;
正确答案:B
A s.equals(t);
B t.equals©;
C s==t;
D t.equals(new String(“hello”));
题解:
1、 看了一堆解析,不懂别乱说ok. 看底层源码 此处有判断这个参数是不是String的实例,不是不执行判断最后返回false,char数组是一种对象类型不是String类型的实例,直接跳过比较返回false
2、 选B。 A、D选项是对字符串内容的比较。JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池。代码中出现字面量形式创建字符串对象时,JVM首先会对这个字面量进行检查,如果字符串常量池中存在相同内容的字符串对象的引用,则将这个引用返回,否则新的字符串对象被创建,然后将这个引用放入字符串常量池,并返回该引用。所以返回true。 C选项是引用地址的比较,同上也属于常量池的同一个字符串地址,所以相等返回true。
8、关于Java中参数传递的说法,哪个是错误的?
正确答案:D
A 在方法中,修改一个基础类型的参数不会影响原始参数值
B 在方法中,改变一个对象参数的引用不会影响到原始引用
C 在方法中,修改一个对象的属性会影响原始对象参数
D 在方法中,修改集合和Maps的元素不会影响原始集合参数
题解:
答案: D
解析: 注意!Java中方法的参数传递都是值传递
A. 在方法中,修改一个基础类型的参数不会影响原始参数值
public static void main(String []args){
int i = 5;
func(i);
System.out.println(i);
}
static void func(int j){
j = 10;
}
//输出结果
5
在主方法调用func(int j) 时 , 参数i是实际参数 , 值为5 , 参数j是形式参数 , 值是i给的 , 也是5 , i和j没有任何关系 , 是两个独立的参数 , 所以修改j的值时与i没有关系 , 仍然输出5。
B. 在方法中,改变一个对象参数的引用不会影响到原始引用
public static void main(String []args){
User rabbiter = new User();
rabbiter.setName(“rabbiter”);
func(rabbiter);
System.out.println(rabbiter.getName());
}
static void func(User user){
user = new User();
user.setName(“zhangsan”);
}
//输出结果
rabbiter
在主方法调用func(User user) 时 , 对象rabbiter保存的是一个地址值 , 本质上就是把rabbiter的地址值给了形参user , 所以此时实参rabbiter和形参user指向在堆中的同一个对象 , 他们的地址值相同 , 只是指向的对象一致 , 所以并不违反值传递的理论。
此时 , 如果修改形参user , new一个新的对象并让user指向它 , 修改的只是形参保存的地址 , 与实参rabbiter无关 , rabbiter指向的对象仍然是之前的那个对象。
C. 在方法中,修改一个对象的属性会影响原始对象参数
public static void main(String []args){
User rabbiter = new User();
rabbiter.setName(“rabbiter”);
func(rabbiter);
System.out.println(rabbiter.getName());
}
static void func(User user){
user.setName(“zhangsan”);
}
//输出结果
zhangsan
在主方法调用func(User user) 时 , 对象rabbiter保存的是一个地址值 , 本质上就是把rabbiter的地址值给了形参user , 所以此时实参rabbiter和形参user指向在堆中的同一个对象 , 他们的地址值相同 , 指向的对象一致 , 所以并不违反值传递的理论。
那么user对其指向的对象的属性name进行修改 , rabbiter指向的对象的name属性也就被修改了。
D. 在方法中,修改集合和Maps的元素不会影响原始集合参数
集合和Maps都是对象 , 所以此项跟C选项的解析一致。
9、下面有关JAVA异常类的描述,说法错误的是?
正确答案:D
A 异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception
B 非RuntimeException一般是外部错误(非Error),其一般被 try{}catch语句块所捕获
C Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉
D RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try{}catch语句块所捕获
题解:
1、运行时异常故名思议就是程序在运行的时候出现异常,隐含的一个前提就是程序在编译时是检测不到异常的存在,作者本人也并不知道是否自己的代码中含有运行时异常,所以根本也不可能提前使用try{}catch{}捕获.
2、 异常是指程序运行时(非编译)所发生的非正常情况或错误,当程序违反了语音规则,jvm就会将出现的错误表示一个异常抛出。 异常也是java 的对象,定义了基类 java。lang。throwable作为异常父类。 这些异常类又包括error和exception。两大类 error类异常主要是运行时逻辑错误导致,一个正确程序中是不应该出现error的。当出现error一般jvm会终止。 exception表示可恢复异常,包括检查异常和运行时异常。 检查异常是最常见异常比如 io异常sql异常,都发生在编译阶段。这类通过try、catch捕捉 而运行时异常,编译器没有强制对其进行捕捉和处理。一般都会把异常向上抛出,直到遇到处理代码位置,若没有处理块就会抛到最上层,多线程用thread。run()抛出,单线程用main()抛出。常见的运行异常包括 空指针异常 类型转换异常 数组月结异常 数组存储异常 缓冲区溢出异常 算术异常等
10、类之间存在以下几种常见的关系:
正确答案:ABC
A “USES-A”关系
B “HAS-A”关系
C “IS-A”关系
D “INHERIT-A”关系
题解:
1、 USES-A:依赖关系,A类会用到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。 关联关系:A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码中的表现为:A类的成员变量中含有B类。 HAS-A:聚合关系,拥有关系,是关联关系的一种特例,是整体和部分的关系。比如鸟群和鸟的关系是聚合关系,鸟群中每个部分都是鸟。 IS-A:表示继承。父类与子类,这个就不解释了。 要注意:还有一种关系:组合关系也是关联关系的一种特例,它体现一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分的关系,但这种整体和部分是不可分割的。
2、 use-a 是依赖关系 has-a 一般是组合关系 is-a 一般是继承关系
答案汇总:
1、正确答案:B
2、正确答案:B
3、正确答案:C
4、正确答案:C
5、正确答案:B
6、正确答案:B
7、正确答案:B
8、正确答案:D
9、正确答案:D
10、正确答案:ABC
来源:https://blog.csdn.net/weixin_43883917/article/details/119909574
猜你喜欢
- 这篇会深化View拖拽实例,利用Flutter Animation、插值器以及AnimatedBuilder教大家实现带动画的抽屉效果。先来
- 我们经常会有用到,当A 用户在北京登录 ,然后A用户在天津再登录 ,要踢出北京登录的状态。如果用户在北京重新登录,那么又要踢出天津的用户,这
- 使用@Autowired注解有错误提示使用Spring boot +mybatis框架时,在service实现类中使用Mapper类,给Ma
- iText介绍和说明因为项目需要生成PDF文件,所以去找了一下能够生成PDF的Java工具,看到了iText可以说好评如潮。如果你想通过ja
- Java 利用poi把数据库中数据导入Excel效果:使用时先把poi包导入工程的path,注意只需要导入poi包即可,下载后有三个jar包
- 一、简介SpringBoot 中给普通变量注入值只需在变量上添加 @Value 注解即可。application.properties 配置
- 本文以实例形式讲述了C#泛型的用法,有助于读者深入理解C#泛型的原理,具体分析如下:首先需要明白什么时候使用泛型:当针对不同的数据类型,采用
- 有时,类或方法需要对类型变量加以约束。下面是一个典型的例子,我们要寻找数组中的最小元素:public class ArrayAlg { &n
- 现在就为大家介绍一种基于因子分解的RSA算法,这种加密算法有两种实现形式:1、公钥加密,私钥解密;2、私钥加密,公钥解密。下面就为大家分析一
- 前言Word中可以针对不同文档排版设计要求来设置背景设置颜色。常见的可设置单一颜色、渐变色或加载图片来设置成背景。下面通过Java来设置以上
- 单例模式是23种设计模式之一,是比较简单的一种设计模式,它的目的是无论调用多少次,都返回同一个对象,它的特点是构造器私有化。它分为两种结构,
- 在jdk1.4中提出的技术,非阻塞IO,采用的是基于事件处理方式。传统的io技术为阻塞的,比如读一个文件,惹read方法是阻塞的,直到有数据
- 使用类的全权名: System.Text.StringBuilder sb = new System.Text.StringBuilder(
- 1.什么是mybatis逆向工程在使用mybatis时需要程序员自己编写sql语句,针对单表的sql语句量是很大的,mybatis官方提供了
- 当我们在项目中登录使用验证码的时候,不妨试试Kaptcha生成验证码,非常简单1、首先,我们在pom.xml文件中引入kaptcha的mav
- 前言Spring Boot 中提供一个全局的配置文件:application.properties,这个配置文件的作用就是,允许我们通过这个
- using System;using System.Collections.Generic;public class Example{ &n
- C#接口的学习,在编程中,我们经常会用到接口,那什么是接口呢?接口描述的是可属于任何类或结构的一组相关功能,所以实现接口的类或结构必须实现接
- 一.介绍观察者模式(Observer Pattern)属于行为型模式。定义了对象之间的一对多依赖,让多个观察者同时监听某一个主题对象,类似于
- Authentication使用SpringSecurity可以在任何地方注入Authentication进而获取到当前登录的用户信息,可谓