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

多选题

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

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

B.String a5;

C.String5 a;

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

E.String \[\]a=new String5; for(int i=0;i<5; ai++=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;
    }
}
相关推荐
ZC跨境爬虫5 小时前
跟着 MDN 学CSS day_29:(掌握文本与字体样式的核心艺术)
前端·css·ui·html·tensorflow
Jasonakeke5 小时前
SpringBoot自动配置原理揭秘
java·spring boot·后端
2301_803538955 小时前
Java读取Word图片的两种实用方法
java·开发语言·word
EntyIU5 小时前
mineru从安装部署到测试使用完整指南
python·ocr
李子琪。6 小时前
网络空间安全深度实战:CSRF 漏洞原理剖析与基于 Token 的纵深防御体系构建(全栈实验报告)
前端·安全·csrf
C+-C资深大佬6 小时前
SSM 框架(Spring + SpringMVC + MyBatis)
java·spring·mybatis
冰暮流星6 小时前
javascript之history对象介绍
前端·笔记
帅次6 小时前
Android 17 开发者实战:核心更新与应用场景落地指南
android·java·ios·android studio·iphone·android jetpack·webview
IT_陈寒6 小时前
Vite热更新失灵?你可能漏了这个配置
前端·人工智能·后端
丷丩6 小时前
MapLibre GL JS第19课:实时更新要素
前端·javascript·gis·map·mapbox·maplibre gl js