【2】兴业数金 Java 部分笔试题解析

多选题

1.下面哪些语句能够正确地生成5个空字符串?(AD)

A.String a[]={"","","","",""};

B.String a[5];

C.String[5] a;

D.String a[]=new String[5]; for(int i=0;i<5; a[i++]="");

E.String []a=new String[5]; for(int i=0;i<5; a[i++]=null);

解析

BC语法错误,E创建了5个null对象。

2.在Java中,关于JVM(Java虚拟机)的描述,以下哪些是正确的(ACD)

A JVM负责将Java字节码转换为机器码

B.JVM平台是独立的,与操作系统无关

C.JVM是Java跨平台特性的关键

D.JVM是Java程序的运行环境

解析

虽然 Java 代码可以在不同的 JVM 上运行,但 JVM 本身是依赖于操作系统的。

3.关于递归法的说法不正确的是( C )

A.占用CPU的处理时间更多

B.要消耗大量的内存空间,程序执行慢,甚至无法执行

C.递归法比递推法的执行效率更高

D.程序结构更简洁

4.以下哪些属于JVM判定对象是否需要回收的方法(BD)

A.进程死亡

B.对象引用遍历

C.对象长时间没有使用

D.引用计数

5.

java 复制代码
String s=new String("hello");
String t =new String("hello");
char c[]={'h','e','l','l','o'};

下列哪些表达式返回true?( CD )

A.t.equals( c )

B.s==t

C.t.equals (new String("hello"))

D.s.equals(t)

6.在Java应用中实现安全的会话管理时,以下哪些做法是有益的( BC )

A.将会话令牌存储在客户端的本地存储中

B.使用HTTPS保护会话令牌的传输

C.定期更换会话令牌

D.使用长期有效的会话令牌(session token)

解析

将会话令牌存储在客户端的本地存储中容易被跨站脚本(XSS)攻击获取。使用长期有效的会话令牌增加了会话被劫持和滥用的风险。

7.关系数据模型的三个组成部分包括( BCD )

A.恢复

B.数据结构

C.完整性约束

D.数据操作

E.值域定义

8.在编写单元测试时,以下哪些做法是值得推荐的(ABD)

A.尽量避免使用硬编码的数据和预期结果

B.使用Mock对象来模拟依赖项的行为

C.连接真实的数据库进行测试,提升数据有效性

D.每个测试方法应该只测试一个功能点

解析

单元测试应该尽可能地避免外部依赖,以提高测试速度和可靠性。连接真实数据库会引入外部依赖增加测试的复杂性,降低测试速度,并且可能会对数据库产生副作用。

9.以下哪些try语句块是合法的( BC )

A.try { // do something } catch (Exception e) { //handle exception } finally { // do something } finally { // do something }

B.try { // do something } catch (Error e){ //handle error }

C.try { // do something } finally { // do something }

D.try { // do something } finally { // do something } catch (Exception e) { //handle exception }

解析

合法的 try 语句块必须包含 try 块,并且至少包含一个 catch 块或一个 finally 块。 catch 块必须在 finally 块之前,且 finally 块只能有一个。

10.常见的几种约束有(ABCDE)

A.检查约束

B.唯一约束

C.非空约束

D.外键约束

E.主键约束

F.完整性约束

11.以下哪些Java设计模式属于创建型模式( ABD )

A.工厂模式

B.原型模式

C.观察者模式

D.单例模式

解析

观察者模式属于行为型模式。

12.MVC模式适用于以下哪些情况( BC )

A.几个页面拥有大量公共的处理过程

B.要为同样的数据提供多个视图的应用程序

C.实现了数据层与表示层的分离,特别适用于开发与用户图形界面有关的应用程序

D.单次提交会产生多个基本外观

13.在软件设计过程中,以下哪些活动或工具通常用于需求分析阶段( CD )

A.E-R图

B.类图(Class Diagram)

C.用例图(Use Case Diagram)

D.用户访谈与调查

解析

E-R 图和类图则属于后续的设计阶段,用于对数据和系统结构进行更详细的描述。

14.下列哪些情况可以终止当前线程的运行?( D )

A.当该线程调用sleep()方法时

B.当创建一个新线程时

C.当一个优先级高的线程进入就绪状态时

D.抛出一个异常

解析

调用 sleep() 方法、创建新线程、高优先级线程进入就绪状态只会暂停或抢占线程的执行,而不会终止线程的运行。

15.JDK1.8中,下面有关java抽象类和接口的区别,说法错误的是?( C )

A.抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法

B.一个类可以实现多个接口,但只能继承一个抽象类

C.接口中可以有普通成员变量,抽象类中没有普通成员变量

D.抽象类可以有构造方法,接口中不能有构造方法

解析

接口中的成员变量必须是常量(static final),而抽象类可以有普通成员变量。

16.下面哪些是对称加密算法( AD )

A.AES

B.DSA

C.RSA

D.DES

17.下面关键字中,哪几项是用于异常处理语句( BCD )

A.break

B.catch

C.finally

D.try

编程题

给定一个长度为n的数组,数组中的每个元素,表示一根水管的长度,水管可以在任意位置锯开。如果要从这些水管中切割出至少k个长度都为m的水管,请问m最大是多少?

示例1

输入

1,2,3,4,5\],3 **输出** 3 ###### 示例2 **输入** \[1,2,3,4,5\],5 **输出** 2 ###### 示例3 **输入** \[1,2,3,4,5\],7 **输出** 1 #### 题解 ```java class Solution { public int maxLength(int[] nums, int k) { // 1. 边界条件检查 if (nums == null || nums.length == 0 || k <= 0) { return 0; } // 2. 初始化二分查找的左右边界 int left = 1; int right = 0; // 3. 确定右边界 for (int num : nums) { right = Math.max(right, num); } // 4. 二分查找循环 while (left <= right) { // 5. 计算中间值 int mid = left + (right - left) / 2; // 6. 统计切割数量 int count = 0; for (int num : nums) { count += num / mid; } // 7. 判断切割数量是否满足要求 if (count >= k) { left = mid + 1; } else { right = mid - 1; } } // 8. right 存储的是满足条件的最大长度 return right; } } ```

相关推荐
卖报的小行家_几秒前
Vue2源码,响应式原理,数组
前端
蓉妹妹几秒前
AntDesign下,Select内嵌Menu标签,做一个多选下拉框,既可以搜索,还可以选择下拉项
前端·react.js
牛马喜喜1 分钟前
如何从零实现一个todo list(3)
前端
雷渊3 分钟前
深入分析spring中Bean的初始化过程
java·后端·面试
hepherd4 分钟前
Vue学习笔记 - 安装与环境搭建
前端·vue.js
Plus-ultra4 分钟前
Java面试34-Kafka的零拷贝原理
java·分布式·面试·kafka
前端飞天猪4 分钟前
学习笔记:从输入URL到页面呈现的全流程深度解析
前端·浏览器
想想拼搏5 分钟前
高德地图配合three.js加载3d模型
前端
牛马喜喜6 分钟前
如何从零实现一个todo list(4)
前端
Mintopia6 分钟前
Node.js 中 child_process 模块:子进程的创建与运用
前端·javascript·node.js