求职者可看这篇文章,招了一年每个月都在招,题从来没变过,咱就是说,快2024年了,不知道会不会还是这些面试题。反正通过知情人士了解下来,相信这家公司好与不好懂得都懂!小编个人不推荐这家公司哈!!!
公司:深圳市笃实科技有限公司
地点:深圳龙华区龙华区数字创新中心B栋23楼
流程:先做笔试,通过笔试后进行当场面试
一共有8道题。
1、请写出 java 的8种基本数据类型与包装类型,简述两者主要区别(这题这么简单,就不用我写答案了吧,算了,我还是把参考答案写上,仅供参考,写的时候不要和我一样!!!没错,ChatGPT搜的!!!)
答:基本数据类型:byte、short、int、long、float、double、boolean、char;
包装类型:Byte、Short、Integer、Long、Float、Double、Boolean、Character;
主要区别:
-
存储方式:
- 基本数据类型直接存储数据值,占用固定的内存空间。
- 包装类型是对象,因此需要额外的内存空间来存储对象的信息。
-
判等方式:
- 基本数据类型可以使用
==
来比较值是否相等。 - 包装类型应该使用
.equals()
方法来比较值是否相等。虽然在自动装箱和拆箱的情况下,Java会自动处理基本数据类型和对应包装类型之间的转换,但是在比较时最好使用.equals()
。
- 基本数据类型可以使用
-
空值处理:
- 基本数据类型不能为
null
,因为它们不是对象。 - 包装类型可以为
null
,因为它们是对象,可以赋予null
值。
- 基本数据类型不能为
-
性能:
- 基本数据类型的操作通常比包装类型更高效,因为它们不涉及对象的创建和销毁。
- 包装类型适用于需要对象的场景,例如集合类和泛型等。但是在需要高性能的场景下,应该尽量使用基本数据类型。
2、写出下面代码的运行结果
public static void main(String[] args) {
String str = "scsod-ot-emoclew-olleh";
String[] stringArr = new StringBuilder().append(str).reverse().toString().split("-");
for (int i = 0; i < stringArr.length; i++) {
stringArr[i] = stringArr[i].substring(0,1).toUpperCase() + stringArr[i].substring(1);
}
System.out.println(String.join("-",stringArr));
}
答:Hello-Welcome-To-Doscs
3、写出下面代码的运行结果
class Annoyance extends Exception{}
class Sneeze extends Annoyance{}
public class Human {
public static void main(String[] args) throws Exception {
try {
try {
throw new Sneeze();
}catch (Annoyance a){
System.out.println("exception annoyance");
throw a;
}
}catch (Sneeze s){
System.out.println("exception sneeze");
return;
}finally {
System.out.println("hello world!");
}
}
}
答:exception annoyance
exception sneeze
hello world!
4、写出下面代码的运行结果
public class ASD {
public static void main(String[] args) {
List<A> list = new ArrayList<>();
A obj = new A();
for (int i = 0; i < 5; i++) {
obj.setA(i);
list.add(obj);
}
for (int i = 0; i < 5; i++) {
A prObj = list.get(i);
System.out.println(prObj.getA());
}
}
static class A {
int a;
public int getA(){
return a;
}
public void setA(int a){
this.a = a;
}
}
}
答:4
4
4
4
4
5、表达式:double d = 1 - 2/5*5 + 2*5; d的值是哪项?
A. 10.92
B. 9.96
C. 9.0
D. 11.0
答:D
6、A、B、C、D、E站一排照相,其中A、B不能站正中间,有多少种站法
答:72
7、写出下面代码的运行结果
public static void main(String[] args) {
int[] array = {-4,-3,-2,-1,0,0,1,2,3,4};
test(array,0,array.length - 1);
System.out.println(Arrays.toString(array));
}
public static void test(int[] array,int i,int j){
for (; i < j; i++ , j--){
array[i] += array[j];
array[j] = array[i] - array[j];
array[i] = array[i] - array[j];
}
}
答:[4, 3, 2, 1, 0, 0, -1, -2, -3, -4]
8. 一列数的规则如下:1、1、2、3、5、8、13、21、34 ...... 求第30位数是多少,可用递归算法实现。(小编强调一下,这题考的是斐波那契数列,这题是手写的!!!我从CharGPT拷贝的,不要完全一样!!!)
答:
public class Fibonacci {
public static void main(String[] args) {
int n = 30; // 要求解的项数
long result = fibonacci(n);
System.out.println("第" + n + "位是:" + result);
}
public static long fibonacci(int n) {
if (n <= 0) {
return 0;
} else if (n == 1 || n == 2) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
}
面试问题:
- 简单自我介绍;
- 周围的人对你的印象;
- 为什么从上一家公司离职;
- 说说你的项目经理给你的印象;
- 评价你自己;
- 平时写代码出现bug怎么解决,怎么测试的,先给测试还是先给前端;
- 平时工作的一个流程,比如说项目开始之前;
- 期望薪资,最低薪资,上一家公司给多少;
- 上一家公司给你的薪资的组成结构;
- 接不接受加班;
- 简单介绍一下你的项目;
- 你负责模块的功能如何实现;
- 你觉得程序员对于公司什么是比较有价值的;
- 如果能入职,说说你未来5年的职业规划;
- 你觉得你的学习能力如何,具体怎么体现;
- 你都用过哪些技术栈,掌握得如何;