欢聚测开一、二面面经

一面:
常规自我介绍环节
问实习多久,测开能接受吗
测开的话主要是想走一个什么方向(回答想走一个平台开发的方向)
给你一个邮箱登录会怎么设计(功能点,比如用户名限制、邮箱限制,重复点击去重,非功能点,比如并发量激增确保平台稳定,弱网、无网前端提示)

技术栈是什么
主要是java,副语言为python(之后问java相关的问题,非常基础)
java基本数据类型、继承如何实现父类复用(this、super这些关键字)、拆箱装箱原理

问了一点实习里面的数据库
数据库连接比较多用的是什么,各种join有什么区别,#和$什么区别

二面(已挂)
公司岗位介绍、为什么想来测开
自我介绍环节

之前测试用例是如何设计的(不设计,纯执行)
做后端的时候数据是如何确保一个确实写入数据库的(问一个数据一致性验证)
自动化是怎么做的,有什么用处
自动拆、装箱,JVM虚拟机各模块
redis为什么快,为什么会用redis

反问,文档齐全吗、上下班时间、有导师吗、有非常多的kpi吗#牛客AI配图神器#
全部评论
第1步:先看代码 // 煮泡面的类 class 煮泡面 { String 口味; // 无参构造:默认煮"老坛酸菜" 煮泡面() { this("老坛酸菜"); // 重点:无参构造调用有参构造,传默认值 } // 有参构造:按指定口味煮 煮泡面(String 口味) { this.口味 = 口味; System.out.println("正在煮" + 口味 + "泡面:"); System.out.println("1. 烧开水"); System.out.println("2. 放面饼+调料"); System.out.println("3. 泡3分钟"); } }   第2步:拆解调用流程(关键!) 当你执行  new 煮泡面()  时: 1. 先进入无参构造  煮泡面()  2. 第一行遇到  this("老坛酸菜") ,立刻跳转到有参构造  煮泡面("老坛酸菜")  3. 在有参构造中,执行煮面步骤(烧开水、放调料等) 4. 有参构造执行完,回到无参构造(此时无参构造没有其他代码,直接结束) 重点: - 无参构造自己不写煮面步骤,而是让有参构造去做(传默认口味“老坛酸菜”) - 不管调无参还是有参构造,煮面步骤只在有参构造里写一次,避免重复 第3步:生活场景还原(彻底懂!) - 你(无参构造):想煮泡面,但懒得说口味 → 对兄弟(有参构造)说:“帮我煮包默认的老坛酸菜” - 兄弟(有参构造):收到指令,按“老坛酸菜”煮面(执行具体步骤) - 核心: 你(无参)不关心怎么煮,只负责传默认口味; 兄弟(有参)负责具体干活,步骤只写一次。 这样不管谁煮面,步骤都不重复,你还能偷懒不用多说废话~ 终极灵魂拷问:为什么无参构造能传参数? - 因为 this(参数) 的本质是:让当前构造方法去调用本类的其他构造方法,参数是传给被调用的构造方法的。 - 无参构造自己没有参数,但它可以调用有参构造,并给有参构造传参数(比如默认值)。 就像你没带钱(无参),但可以让兄弟(有参构造)用他的钱(参数)请你吃面~
点赞 回复 分享
发布于 今天 16:51 广东
在Java中,8种基本数据类型的首字母可串成记忆口诀:b s i l f d c b(对应byte、short、int、long、float、double、char、boolean)。为方便记忆,可联想为“不(b)少(s)一(i)辆(l)浮(f)动(d)车(c)吧(b)”,通过谐音将字母串联成生活化场景,帮助快速记住所有类型的首字母顺序哦~
点赞 回复 分享
发布于 今天 16:28 广东
在MyBatis等框架的SQL映射文件里, # 和 $ 的核心区别在于参数处理逻辑: # 会把参数当作预编译的占位符(类似 ? ),由数据库驱动完成SQL编译,能自动转义参数防止SQL注入,而且数据库可缓存预编译语句提升性能,适合处理用户输入的查询条件等参数;而 $ 是直接将参数拼接到SQL字符串中,类似字符串格式化,若参数包含恶意内容会导致SQL注入风险,且无法缓存语句,仅适用于表名、列名等非用户可控的静态标识符(且需确保参数来源安全)。简单来说, # 更安全且性能更好,开发中应优先使用,只有在确定参数绝对安全时才考虑用 $ 。
点赞 回复 分享
发布于 今天 16:24 广东
包装类本质上是将Java中的基本数据类型“包裹”成对象,让基本类型也能具备对象的特性(比如存储到容器、使用面向对象功能等)。具体作用可以简单理解为以下几点: 1. 让基本类型能当“对象”用 - Java中基本类型(如 int 、 double )不是对象,但很多场景必须用对象,比如: ✦ 容器类( ArrayList 、 HashMap )只能存对象,不能直接存 int ,必须用 Integer 包装类。 ✦ 多态、反射等面向对象特性需要对象类型,基本类型无法直接参与。 2. 表示“空值”状态 - 基本类型有默认值(如 int 是0, boolean 是false),无法表示“未赋值”或“不存在”; - 包装类(如 Integer 、 Boolean )可以赋值为 null ,更适合处理数据库查询、接口返回等可能为空的场景。 3. 提供工具方法和常量 - 包装类封装了很多实用功能,比如: ✦ 类型转换: Integer.parseInt("123") 把字符串转成整数; ✦ 常量定义: Integer.MAX_VALUE 表示int的最大值; ✦ 格式化处理: Double.toString(3.14) 把数字转成字符串。 4. 自动拆装箱的“隐藏福利” 虽然需要包装类,但Java有“自动拆装箱”机制(JDK 1.5后),让代码写起来像直接用基本类型一样方便: // 自动装箱:基本类型→包装类 Integer a = 10; // 等价于 Integer a = Integer.valueOf(10); // 自动拆箱:包装类→基本类型 int b = a; // 等价于 int b = a.intValue();   举个生活例子类比: 基本类型像“裸装的鸡蛋”(性能高但不好携带),包装类像“鸡蛋盒”(把鸡蛋装盒里,方便放进冰箱、运输)。Java既要性能(裸装鸡蛋省空间),又要面向对象的灵活性(鸡蛋盒方便操作),所以搞了包装类~ 😊
点赞 回复 分享
发布于 今天 16:21 广东

相关推荐

评论
2
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务