XX公司-JAVA笔试题

一、单选题

  1. 某单位的会议室有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=3970.18

  2. 某项工程计划 300 天完成,开工 100 天后,由于施工人员减少,工作效率下降 20%,问完成该工程比原计划推迟多少天?()。
    A、40
    B、50
    C、60
    D、70
    采用赋值法。设总工作量为300,则开始的效率为1.后来的效率为0.8.先开工100天,则完成100个工作量,剩下200个工作量,效率为0.8,需要250天,则总共需要100+250=350(天),所以晚了50天。

  3. 软件开发项目中,产品的实现过程不包含()。
    A、需求获取
    B、编码
    C、集成测试
    D、挣值分析
    挣值分析是项目管理中的一种方法,不属于软件产品的实现过程。

  4. 在收集需求时,可以采取的群体创新技术包括:()。
    ① 头脑风暴法;②观察;③原型法;④德尔菲技术;⑤文件分析;⑥名义小组技术;
    A.①②③
    B.①④⑥
    C.②③⑤
    D.④⑤⑥

  5. 关于配置管理的描述,正确的是( )。
    A、某个配置项的版本号为 0.91,该配置项的状态为正式;
    B、配置项版本管理的目的是保留配置项的最新版本,删除所有旧的版本,以避免发生版本混淆;
    C、一个产品只能有一个基线,因此对基线的变更必须遵循正式的变更控制程序;
    D、开发库中的信息可能被频繁修改,因此可以由开发人员自行控制 :

  6. 在项目进行过程中,2个项目成员使用不同版本的设计说明书,这时项目经理首先应该检查()。
    A、信息管理系统
    B、配置管理系统
    C、CPI
    D、SPI
    信息管理系统通常用于存储和跟踪项目文档、设计说明书等信息,项目经理需要首先查看该系统,以确认哪个版本是最新的

  7. 为了更好的管理变更,需要定义项目基线,关于基线的描述,正确的是()。
    A、不可以变化的
    B、可以变化,但是必须通过基线变更控制流程处理
    C、所有的项目必须定义基线
    D、基线发生变更时,必须修改需求
    项目基线可以在项目的不同阶段定义,并且可以随着项目的进展而变化。但是,任何基线的变更都必须通过正式的变更控制流程来管理和批准。

  8. 关于数据库和数据仓库的描述,正确的是()。
    A、与数据库相比,数据仓库的数据相对稳定
    B、与数据仓库相比,数据库的数据相对冗余
    C、与数据库相比,数据仓库的主要任务是实时业务处理
    D、与数据仓库相比,数据库的主要任务是支持管理决策
    数据库通常用于事务性处理和日常操作,数据可能频繁变动;而数据仓库则主要用于分析和报告,数据相对稳定,主要用于历史记录和分析用途。

  9. 对N个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。
    A、从小到大排列好的
    B、从大到小排列好的
    C、元素无序
    D、元素基本有序

  10. 数据结构中,与所使用的计算机无关的是数据的()。
    A、存储结构
    B、物理结构
    C、逻辑结构
    D、物理和存储结构

  11. 下列关于 JDK、JRE 和 JVM 的描述,哪一项正确( )。
    A、JDK 中包含了 JRE,JVM 中包含了 JRE
    B、JRE 中包含了 JDK,JDK 中包含了 JVM
    C、JRE 中包含了 JDK,JVM 中包含了 JRE
    D、JDK 中包含了 JRE,JRE 中包含了 JVM

  12. 在方法的声明中,要求该方法必须抛出异常时使用哪个关键字?
    A、throw
    B、catch
    C、finally
    D、throws

  13. 下列不属于修改数据的查询是( )。
    A、交叉表查询
    B、追加查询
    C、删除查询
    D、更新查询

  14. 假设数据库中创建了一个用户test,状态为锁定状态,需要使用 SQL 来解除锁定,可以使用如下()语句。
    A、ALTER USER teSt ACCOUNT;
    B、ALTER USER test NOLOCK;
    C、ALTER USER teSt ACCOUNT NOLOCK;
    D、ALTER teSt ACCOUNT NOLOCK;

  15. 现有:

    class 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=60
    D、运行时抛出异常

二、多选题

  1. 下列哪些是合法的标识符( )。
    A、$persons
    B、TwoUsers
    C、*point
    D、this
    E、_endline
    字母数字下划线、不能以数字开头、不能是关键字、保留字

  2. 下面哪种类型的对象可以用“throws”抛出?()。
    A、Error
    B、Exception
    C、Throwable
    D、RuntimeException

  3. 通常情况下,()值可以唯一地标识数据库中的一行。
    A、ROENUM
    B、PRAMARYKEY
    C、UNIQUE
    D、ROWID

  4. Oracle 中,表名应该严格遵循下列哪些命名规则()。
    A、表名的最大长度为 20 个字符
    B、表名首字符可以为字母或下划线
    C、同一用户模式下的不同表不能具有相同的名称
    D、不能使用 Oracle 保留字来为表命名

  5. 在下面代码中x为何值时输出结果为“out2”?()。

    	switch(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、3

    D、default

三、简答题

  1. 指出下面程序的运行结果。

    class 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

  2. 如何实现数组和 List 之间的转换?

    • List转换为数组
      答:①for循环遍历添加;②使用list的toArray()方法;③使用stream的toArray()方法。
    • 数组转换为List
      答:①for循环遍历添加;②使用Arrays.asList()方法;③使用Arrays.stream(array).mapToObj(Integer::valueOf).collect(Collectors.toList());
  3. 日期和时间

    • 如何取得年月日小时分钟秒
      Calendar 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);
      
    • 如何取得某月的最后一天
      Calendar 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();
      
  4. SQL 题

    • 查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列。
      SELECT id,name FROM A limit 30, 10;
      
    • 查询表 A 中存在 ID 重复三次以上的记录。
      SELECT id FROM A GROUP BY id HAVING COUNT(id) > 3;
      
  5. 存储过程

    • 编写一个名为 SP_STD USER_OPT,对 SYS_USER_STD 表实现新增账号、修改账号、删除账号的功能。
      DELIMITER //  
        
      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 ;
      

四、问答题

  1. 你曾经参与过哪种类型的项目?在项目中担任何角色?简述做了哪些工作?
    例如:曾经参与了经营管理类的项目,在项目中担任程序员,开发了用户管理,角色管理等模块。

  2. 你都使用过哪些工具(设计、开发、测试等)?
    设计: Axure RP、PowerDesigner
    开发: Linux、MYSQL、Oracle、IDEA、Eclipse、Visual Studio Code、Maven、Gradle、Jenkins、Docker、K8s、Rancher
    测试: JMeter

  3. 关于软件测试,你曾经在哪些环节做过?是否有参与过测试文档的编写?
    答:在软件测试方面,我参与过多个环节,包括但不限于单元测试、集成测试、系统测试、验收测试以及性能测试。以下是我在这些环节中的具体经验和参与情况:
    单元测试:我编写并执行过单元测试,确保代码中的最小可测试单元(如函数、方法等)按预期工作;使用JUnit等单元测试框架,为Java代码编写测试用例,验证代码的正确性和健壮性。
    集成测试:在不同的模块或组件集成后,我负责执行集成测试,以确保它们之间的交互和协作没有问题;识别并设置模块之间的接口,模拟或实际使用这些接口进行集成测试。
    系统测试:我参与过系统测试,对整个应用程序进行测试,以验证其是否满足需求规格说明书中的要求;设计并执行测试用例,覆盖所有重要的功能和非功能需求。
    验收测试:在产品发布之前,我参与验收测试,与用户或利益相关者一起验证产品是否满足他们的期望和要求;协助用户执行测试用例,记录并报告发现的问题。
    性能测试:我参与过性能测试,确保应用程序在负载下能够保持稳定的性能;使用性能测试工具(如JMeter)模拟大量用户同时访问的场景,收集和分析性能数据。
    在测试文档的编写方面,我也有过相应的经验:
    我参与过测试计划的编写,包括确定测试范围、测试方法、测试资源、测试进度等。
    我编写过测试用例文档,详细描述每个测试用例的输入、预期输出和执行步骤。
    我还参与过测试报告的编写,总结测试结果,包括发现的缺陷、修复情况、测试覆盖率等,并给出测试结论和建议。
    这些文档对于测试工作的顺利进行和结果的准确记录非常重要,我始终重视并认真对待测试文档的编写工作。

  4. 你觉得 Java 工程师的价值体现在哪?
    答: 我觉得Java工程师的价值主要体现在以下几个方面:
    技术实力与专业知识:Java工程师具备深厚的Java编程知识和技术实力,能够熟练运用Java语言进行软件开发,解决复杂的技术问题。他们对于Java的核心技术、框架、库以及相关的开发工具都有深入的了解和实践经验。
    系统设计与架构能力:优秀的Java工程师不仅关注代码实现,还具备出色的系统设计和架构能力。他们能够根据业务需求,设计出高效、稳定、可扩展的系统架构,为软件产品的长期发展奠定坚实基础。
    团队协作与沟通能力:在软件开发过程中,团队协作至关重要。Java工程师需要与产品经理、设计师、测试工程师等多个角色紧密合作。因此,良好的团队协作精神和沟通能力是Java工程师价值的重要体现。他们能够有效地传达自己的想法,同时也能倾听并吸纳团队的意见和建议。
    持续学习与创新能力:技术领域日新月异,Java工程师需要保持持续学习的态度,不断更新自己的知识体系,跟上技术的发展步伐。同时,他们还需要具备创新精神,不断探索新的技术方向和应用场景,为团队带来更多的可能性和机会。
    解决问题的能力:在软件开发过程中,难免会遇到各种问题和挑战。Java工程师需要具备敏锐的问题洞察力和出色的解决问题能力,能够在关键时刻迅速定位并解决问题,确保项目的顺利进行。
    综上所述,Java工程师的价值主要体现在他们的技术实力、系统设计与架构能力、团队协作与沟通能力、持续学习与创新能力以及解决问题的能力等多个方面。这些能力共同构成了Java工程师的核心竞争力,使他们在软件开发领域发挥着不可或缺的作用。

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值