CVTE笔试——2024秋季校园招聘

前言

base广州,投递 CVTE校招Web后台开发工程师 岗位,我整理了网上搜得到的笔试题目,虽然没过,但需要的可以参考哈哈

在网上搜索往届题目进行整合,部分只有题目没有答案(即网上的笔试题帖子大都只有一个笼统知识点的标题,具体不知道考察什么,就没有展示该题具体知识点)。大家可以参考题目,大概了解笔试会涉及的知识点

以下两个分享帖包含了题目的图片,因此以链接形式给出,没有进行整合。
2019秋招提前批后台笔试2022届实习生 Web后台开发笔试

1. 不定项选择题(20道)

(1)Java8 Optional类

参考Java8 Optional类学习

函数名用法
of()创建Optional对象,传入参数不为null
ofNullable()创建Optional对象,传入参数允许为null
isPresent()值存在返回true,否则返回false
get()有值则将其返回,否则抛出NoSuchElementException
ifPresent()接受接口段或lambda表达式
orElse()有值则将其返回,否则返回将传入的字符串(默认值)
orElseGet()接受Supplier接口的实现用来生成默认值
orElseThrow()有值则将其返回,否则传入一个lambda表达式或方法抛出异常
map()对Optional实例的值执行一系列操作,否则返回空Optional
flatMap()mapper返回值必须是Optional
filter()传入限定条件(lambda表达式)对Optional实例的值进行过滤
    //创建Optional实例,of()方法不可以传入null
    Optional<String> name = Optional.of("Sanaulla");
    //创建没有值的Optional实例,ofNullable()可以传入null(与of的区别)
    Optional empty = Optional.ofNullable(null);
    
    //isPresent方法用来检查Optional实例是否有值。
    if (name.isPresent()) {
      //调用get()返回Optional值。
      System.out.println(name.get()); //  Sanaulla
    }

    try {
      //在Optional实例上调用get()抛出NoSuchElementException。
      System.out.println(empty.get());
    } catch (NoSuchElementException ex) {
      System.out.println(ex.getMessage()); // No value present
    }

    //ifPresent方法接受lambda表达式参数。
    //如果Optional值不为空,lambda表达式会处理并在其上执行操作。
    name.ifPresent((value) -> {
      System.out.println("The length of the value is: " + value.length()); // The length of the value is: 8
    });

    //如果有值orElse方法会返回Optional实例,否则返回传入的错误信息。
    System.out.println(empty.orElse("There is no value present!")); // There is no value present!
    System.out.println(name.orElse("There is some value!")); // Sanaulla

    //orElseGet与orElse类似,区别在于传入的默认值。
    //orElseGet接受lambda表达式生成默认值。
    System.out.println(empty.orElseGet(() -> "Default Value")); // Default Value
    System.out.println(name.orElseGet(() -> "Default Value")); // Sanaulla

    try {
      //orElseThrow与orElse方法类似,区别在于返回值。
      //orElseThrow抛出由传入的lambda表达式/方法生成异常。
      empty.orElseThrow(ValueAbsentException::new);
    } catch (Throwable ex) {
      System.out.println(ex.getMessage()); // No value present in the Optional instance
    }

    //map方法通过传入的lambda表达式修改Optonal实例默认值。 
    //lambda表达式返回值会包装为Optional实例。
    Optional<String> upperName = name.map((value) -> value.toUpperCase());
    System.out.println(upperName.orElse("No value found")); // SANAULLA

    //flatMap与map(Funtion)非常相似,区别在于lambda表达式的返回值。
    //map方法的lambda表达式返回值可以是任何类型,但是返回值会包装成Optional实例。
    //但是flatMap方法的lambda返回值总是Optional类型。
    upperName = name.flatMap((value) -> Optional.of(value.toUpperCase()));
    System.out.println(upperName.orElse("No value found"));  // SANAULLA

    //filter方法检查Optiona值是否满足给定条件。
    //如果满足返回Optional实例值,否则返回空Optional。
    Optional<String> longName = name.filter((value) -> value.length() > 6);
    System.out.println(longName.orElse("The name is less than 6 characters"));  // SANAULLA

    //另一个示例,Optional值不满足给定条件。
    Optional<String> anotherName = Optional.of("Sana");
    Optional<String> shortName = anotherName.filter((value) -> value.length() > 6);
    System.out.println(shortName.orElse("The name is less than 6 characters")); // The name is less than 6 characters

(2)https 安全问题

(3)hash表拉链法平均访问次数

(4)给出一张图,求图的深度或广度遍历有多少种可能

(5)Runtime.gc()调用之后是否立即清理等等gc问题

调用Runtime的gc()方法并不会立即清理垃圾对象,而是发送一个请求给垃圾回收器,告知它进行垃圾回收操作。具体的回收操作时间是由垃圾回收器决定的,可能会在之后的某个时间点进行垃圾回收操作。

(6)类加载什么时候 final static的成员变量什么时候赋值了

final static成员变量在类加载的过程中进行赋值,即在类第一次被加载时就会进行初始化

(7)Integer常量池 -128到127

Integer类中维护了一个IntegerCache常量池,默认范围为-128到127。在这个范围内的整数值被频繁使用时,会直接从常量池中取值,而不会创建新的Integer对象

(8)存储过程 预编译sql

(9)arrays.aslist 是否是适配器模式

Arrays.asList()方法返回的是一个固定大小的List,它基于数组提供了List接口的实现,可以进行遍历和修改操作。但需要注意的是,该方法返回的List不支持添加或删除元素的操作,因此不完全符合适配器模式。

(10)线程池的构造方法参数(核心线程数、最大线程数、阻塞队列、拒绝策略)

核心线程数指的是线程池中保持活跃的线程数量,最大线程数指的是线程池中能够容纳的最大线程数量,阻塞队列用于存放等待执行的任务,拒绝策略是指当任务提交到线程池被拒绝时采取的处理方式。

(11)sql语句,找出非空字段

使用WHERE子句中的IS NOT NULL条件来找出非空字段的SQL语句

(12)前中后序遍历

(13)synchronized和lock的区别

synchronized是Java中的关键字,用于实现线程的互斥访问。lock是一个接口,Java中提供了多种实现,如ReentrantLock,也可以通过synchronized关键字实现锁的功能。synchronized是在JVM层面实现的,不需要手动释放锁,而lock需要手动加锁和释放锁。

(14)Number和Integer的类型转换

Number类是一个抽象类,定义了各种数字类型的通用方法,如intValue、doubleValue等。而Integer是Number的子类之一。类型转换可使用Number的intValue、doubleValue等方法进行转换,例如将Number类型的对象转换为Integer,可以使用intValue方法获取整数值。

(15)Threadlocal

(16)对象数组的初始化(初始化对象数组时候不会调用构造方法)

(17)父类对象及其子类的调用

(18)CMS的详细过程(初始标记、并发标记、重新标记、并发清除),哪个耗时长

CMS(Concurrent Mark Sweep)是一种垃圾回收算法,用于进行并发的垃圾回收操作。它包括初始标记、并发标记、重新标记和并发清除四个阶段。其中,初始标记和重新标记是需要进行暂停的阶段,而并发标记和并发清除是并发进行的阶段。在这四个阶段中,重新标记阶段通常耗时比较长。

2. 算法题(2道)

  • 求数组最小的前n个数输出(优先队列)
  • DFS
  • 解码方式,1—A 2—B…26—Z,给定字符串,问有多少种解码的方式(如:12——2种【1,2】或【12】,56——1种【5,6】)
  • 给一个整型数组,求其中出现频率大于总个数的1/3的元素列表【剑指offer是求总数个数大于1/2的元素,变形题
  • 力扣的原题135、分发糖果问题,
  • 力扣上的55、跳跃游戏
  • 字符串翻转,
  • 给一个正整数n,n是奇数时可以替换n-1或n+1,偶数时n可以替换n/2,求n==1时最少操作次数

3. 架构设计题(1道)

  • 关于云笔记的,就是用户使用离线设备和多设备之间进行笔记增删查改的,让你从数据合并、数据同步等方面提出自己的方案。
  • 公司有很多部门,每个部门负责不同的业务,如短信推送业务、验证码业务、人脸识别业务等等。现在要求设计一个公共管理平台,将这些业务整合到一起,这样外界可以通过这个平台调用公司的各项业务,要求考虑安全方面等。

本人做笔试题的记录

  • 选择题形式:单选多选不像网上说的难以辨别,还是可以看得出的
  • 考察知识点:印象很深的是,锁这部分考的挺多。因为之前做了TCL的笔试题,以为CVTE也都是主考Java基础,所以是自己准备不充分了
  • 算法题:类似电脑的文本编辑模式,会提供词法分析检错,但是不能调试。题目难度感觉还行
  • 注意做完笔试需要做测评(网上很多人忘了)
  • 虽然距离笔试很久了,很多笔试细节没记住。最后也没过哈哈,自己太菜了,希望能给小伙伴们一个参考吧
    在这里插入图片描述
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值