一、单选题
-
某单位的会议室有5排共40个座位,每排座位数相同。小张和小李随机入座,则他们坐在同一排的概率()。
A、不高于 15%
B、高于 15%但低于 20%C、正好为 20%
D、高于 20%
先让小张随机入座,有40个座位可选;小李坐在同一排的选择有7种,随机入座的选择有39种,因此他们坐在同一排的概率为P≈0.18(或略大于=0.175)。
总情况数 C 40 2 C_{40}^2 C402,符合要求的情况数即五排中选一排再从该排中选两个座位,为 C 5 1 C_{5}^1 C51× C 8 2 C_{8}^2 C82,则他们坐在同一排的概率为P= C 5 1 × C 8 2 C 40 2 = 7 39 ≈ 0.18 \frac{C_{5}^1 × C_{8}^2}{C_{40}^2}=\frac{7}{39}≈0.18 C402C51×C82=397≈0.18。
-
某项工程计划 300 天完成,开工 100 天后,由于施工人员减少,工作效率下降 20%,问完成该工程比原计划推迟多少天?()。
A、40
B、50C、60
D、70
采用赋值法。设总工作量为300,则开始的效率为1.后来的效率为0.8.先开工100天,则完成100个工作量,剩下200个工作量,效率为0.8,需要250天,则总共需要100+250=350(天),所以晚了50天。
-
软件开发项目中,产品的实现过程不包含()。
A、需求获取
B、编码
C、集成测试
D、挣值分析
挣值分析是项目管理中的一种方法,不属于软件产品的实现过程。
-
在收集需求时,可以采取的群体创新技术包括:()。
① 头脑风暴法;②观察;③原型法;④德尔菲技术;⑤文件分析;⑥名义小组技术;
A.①②③
B.①④⑥C.②③⑤
D.④⑤⑥
-
关于配置管理的描述,正确的是( )。
A、某个配置项的版本号为 0.91,该配置项的状态为正式;
B、配置项版本管理的目的是保留配置项的最新版本,删除所有旧的版本,以避免发生版本混淆;C、一个产品只能有一个基线,因此对基线的变更必须遵循正式的变更控制程序;
D、开发库中的信息可能被频繁修改,因此可以由开发人员自行控制 :
-
在项目进行过程中,2个项目成员使用不同版本的设计说明书,这时项目经理首先应该检查()。
A、信息管理系统B、配置管理系统
C、CPI
D、SPI
信息管理系统通常用于存储和跟踪项目文档、设计说明书等信息,项目经理需要首先查看该系统,以确认哪个版本是最新的
-
为了更好的管理变更,需要定义项目基线,关于基线的描述,正确的是()。
A、不可以变化的
B、可以变化,但是必须通过基线变更控制流程处理C、所有的项目必须定义基线
D、基线发生变更时,必须修改需求
项目基线可以在项目的不同阶段定义,并且可以随着项目的进展而变化。但是,任何基线的变更都必须通过正式的变更控制流程来管理和批准。
-
关于数据库和数据仓库的描述,正确的是()。
A、与数据库相比,数据仓库的数据相对稳定B、与数据仓库相比,数据库的数据相对冗余
C、与数据库相比,数据仓库的主要任务是实时业务处理
D、与数据仓库相比,数据库的主要任务是支持管理决策
数据库通常用于事务性处理和日常操作,数据可能频繁变动;而数据仓库则主要用于分析和报告,数据相对稳定,主要用于历史记录和分析用途。
-
对N个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。
A、从小到大排列好的
B、从大到小排列好的
C、元素无序
D、元素基本有序 -
数据结构中,与所使用的计算机无关的是数据的()。
A、存储结构
B、物理结构
C、逻辑结构D、物理和存储结构
-
下列关于 JDK、JRE 和 JVM 的描述,哪一项正确( )。
A、JDK 中包含了 JRE,JVM 中包含了 JRE
B、JRE 中包含了 JDK,JDK 中包含了 JVM
C、JRE 中包含了 JDK,JVM 中包含了 JRE
D、JDK 中包含了 JRE,JRE 中包含了 JVM -
在方法的声明中,要求该方法必须抛出异常时使用哪个关键字?
A、throw
B、catch
C、finally
D、throws -
下列不属于修改数据的查询是( )。
A、交叉表查询B、追加查询
C、删除查询
D、更新查询
-
假设数据库中创建了一个用户test,状态为锁定状态,需要使用 SQL 来解除锁定,可以使用如下()语句。
A、ALTER USER teSt ACCOUNT;
B、ALTER USER test NOLOCK;
C、ALTER USER teSt ACCOUNT NOLOCK;D、ALTER teSt ACCOUNT NOLOCK;
-
现有:
javaclass TestApp { public static void main(Stringl] args) { int myarray[ ={ 10, 11, 12, 13, 14 }; int sum = 0; for (int x : myarray) sum += x; System.out.printin("sum="+ sum); } }
上述程序运行后的结果是哪项?
A、sum=10
B、sum=70
C、sum=60D、运行时抛出异常
二、多选题
-
下列哪些是合法的标识符( )。
A、$persons
B、TwoUsersC、*point
D、this
E、_endline
字母数字下划线、不能以数字开头、不能是关键字、保留字
-
下面哪种类型的对象可以用"throws"抛出?()。
A、Error
B、Exception
C、ThrowableD、RuntimeException
-
通常情况下,()值可以唯一地标识数据库中的一行。
A、ROENUM
B、PRAMARYKEY
C、UNIQUED、ROWID
-
Oracle 中,表名应该严格遵循下列哪些命名规则()。
A、表名的最大长度为 20 个字符
B、表名首字符可以为字母或下划线C、同一用户模式下的不同表不能具有相同的名称
D、不能使用 Oracle 保留字来为表命名 -
在下面代码中x为何值时输出结果为"out2"?()。
javaswitch(x){ case 1: System.out.println("out1");break; case 2: case 3: System.out.println("out2");break; default: System.out.println("end"); }
A、1
B、2
C、3D、default
三、简答题
-
指出下面程序的运行结果。
javaclass A { stalic ( System.out.print("1"); } public A() { System.out.print("2"); } } class B extends A { static { System.out.print("a"); } public B() { System.out.print("b"); } } public class Hello { public static void main(Stringl args) { A ab = new B(); ab = new B(); } }
答: 1a2b2b
-
如何实现数组和 List 之间的转换?
- List转换为数组
答:①for循环遍历添加;②使用list的toArray()方法;③使用stream的toArray()方法。 - 数组转换为List
答:①for循环遍历添加;②使用Arrays.asList()方法;③使用Arrays.stream(array).mapToObj(Integer::valueOf).collect(Collectors.toList());
- List转换为数组
-
日期和时间
-
如何取得年月日小时分钟秒
javaCalendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; // Calendar.MONTH 从0开始计数 int day = calendar.get(Calendar.DAY_OF_MONTH); int hour = calendar.get(Calendar.HOUR_OF_DAY); // 使用24小时制 int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); System.out.println("年: " + year); System.out.println("月: " + month); System.out.println("日: " + day); System.out.println("时: " + hour); System.out.println("分: " + minute); System.out.println("秒: " + second);
-
如何取得某月的最后一天
javaCalendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); calendar.set(year, month + 1, 1); calendar.add(Calendar.DATE, -1); int lastDay = calendar.get(Calendar.DATE); System.out.println("The last day of the current month is: " + lastDay); --- LocalDate lastDay = YearMonth.of(year, month).atEndOfMonth();
-
-
SQL 题
-
查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列。
sqlSELECT id,name FROM A limit 30, 10;
-
查询表 A 中存在 ID 重复三次以上的记录。
sqlSELECT id FROM A GROUP BY id HAVING COUNT(id) > 3;
-
-
存储过程
-
编写一个名为 SP_STD USER_OPT,对 SYS_USER_STD 表实现新增账号、修改账号、删除账号的功能。
sqlDELIMITER // CREATE PROCEDURE SP_STD_USER_OPT( IN p_Action VARCHAR(10), IN p_UserID INT, IN p_UserName NVARCHAR(100), IN p_Password NVARCHAR(100) ) BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN -- 在这里处理异常,例如输出错误信息等 -- 可以使用 SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'An error occurred.'; ROLLBACK; END; START TRANSACTION; IF p_Action = 'INSERT' THEN -- 假设密码需要进行哈希处理,这里只是示例,并未实际哈希 INSERT INTO SYS_USER_STD (UserID, UserName, Password) -- 注意:通常UserID是自动生成的,这里仅为示例 VALUES (NULL, p_UserName, p_Password); -- 如果UserID是自增的,则使用NULL ELSEIF p_Action = 'UPDATE' THEN -- 更新密码和其他可能的字段(如果需要) UPDATE SYS_USER_STD SET Password = p_Password WHERE UserID = p_UserID; ELSEIF p_Action = 'DELETE' THEN -- 删除账号 DELETE FROM SYS_USER_STD WHERE UserID = p_UserID; ELSE -- 操作无效 SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid action specified.'; END IF; COMMIT; END // DELIMITER ;
-
四、问答题
-
你曾经参与过哪种类型的项目?在项目中担任何角色?简述做了哪些工作?
例如:曾经参与了经营管理类的项目,在项目中担任程序员,开发了用户管理,角色管理等模块。
-
你都使用过哪些工具(设计、开发、测试等)?
设计: Axure RP、PowerDesigner
开发: Linux、MYSQL、Oracle、IDEA、Eclipse、Visual Studio Code、Maven、Gradle、Jenkins、Docker、K8s、Rancher
测试: JMeter
-
关于软件测试,你曾经在哪些环节做过?是否有参与过测试文档的编写?
答:在软件测试方面,我参与过多个环节,包括但不限于单元测试、集成测试、系统测试、验收测试以及性能测试。以下是我在这些环节中的具体经验和参与情况:
单元测试 :我编写并执行过单元测试,确保代码中的最小可测试单元(如函数、方法等)按预期工作;使用JUnit等单元测试框架,为Java代码编写测试用例,验证代码的正确性和健壮性。
集成测试 :在不同的模块或组件集成后,我负责执行集成测试,以确保它们之间的交互和协作没有问题;识别并设置模块之间的接口,模拟或实际使用这些接口进行集成测试。
系统测试 :我参与过系统测试,对整个应用程序进行测试,以验证其是否满足需求规格说明书中的要求;设计并执行测试用例,覆盖所有重要的功能和非功能需求。
验收测试 :在产品发布之前,我参与验收测试,与用户或利益相关者一起验证产品是否满足他们的期望和要求;协助用户执行测试用例,记录并报告发现的问题。
性能测试 :我参与过性能测试,确保应用程序在负载下能够保持稳定的性能;使用性能测试工具(如JMeter)模拟大量用户同时访问的场景,收集和分析性能数据。在测试文档的编写方面,我也有过相应的经验:
我参与过测试计划的编写,包括确定测试范围、测试方法、测试资源、测试进度等。
我编写过测试用例文档,详细描述每个测试用例的输入、预期输出和执行步骤。
我还参与过测试报告的编写,总结测试结果,包括发现的缺陷、修复情况、测试覆盖率等,并给出测试结论和建议。
这些文档对于测试工作的顺利进行和结果的准确记录非常重要,我始终重视并认真对待测试文档的编写工作。
-
你觉得 Java 工程师的价值体现在哪?
答: 我觉得Java工程师的价值主要体现在以下几个方面:
① 技术实力与专业知识 :Java工程师具备深厚的Java编程知识和技术实力,能够熟练运用Java语言进行软件开发,解决复杂的技术问题。他们对于Java的核心技术、框架、库以及相关的开发工具都有深入的了解和实践经验。
系统设计与架构能力:优秀的Java工程师不仅关注代码实现,还具备出色的系统设计和架构能力。他们能够根据业务需求,设计出高效、稳定、可扩展的系统架构,为软件产品的长期发展奠定坚实基础。
② 团队协作与沟通能力 :在软件开发过程中,团队协作至关重要。Java工程师需要与产品经理、设计师、测试工程师等多个角色紧密合作。因此,良好的团队协作精神和沟通能力是Java工程师价值的重要体现。他们能够有效地传达自己的想法,同时也能倾听并吸纳团队的意见和建议。
③ 持续学习与创新能力 :技术领域日新月异,Java工程师需要保持持续学习的态度,不断更新自己的知识体系,跟上技术的发展步伐。同时,他们还需要具备创新精神,不断探索新的技术方向和应用场景,为团队带来更多的可能性和机会。
④ 解决问题的能力 :在软件开发过程中,难免会遇到各种问题和挑战。Java工程师需要具备敏锐的问题洞察力和出色的解决问题能力,能够在关键时刻迅速定位并解决问题,确保项目的顺利进行。
综上所述,Java工程师的价值主要体现在他们的技术实力、系统设计与架构能力、团队协作与沟通能力、持续学习与创新能力以及解决问题的能力等多个方面。这些能力共同构成了Java工程师的核心竞争力,使他们在软件开发领域发挥着不可或缺的作用。