记第一次电话面试——钉钉Java工程师

首先,大佬让我用两分钟自我介绍。我本以为自己能滔滔不绝,将对方视作相亲对象般全方位介绍自己。结果不到一分钟,我就介绍完了。

20200301215819917.png

Java基础知识

Integer与int

大佬:Java里面的int是几个字节?

我:32个字节

大佬:……

大佬(怀疑面错了人):是吗?你再想想,java

我(卧槽听错了):对不起,是32位,4字节

大佬:Java里面有integer和int,对吧?它们区别是什么?

我:Integer是一个对象,int是基本类型,int是一个不可变类型

后来查一下答案:1. Integer是int的包装类,int是基本类型。2. Integer变量必须实例化后才能使用,而int不需要。3.Integer是对象的引用,而int是直接存储数值。4. Integer默认值是null,而int默认值是0

大佬:OK,integer和int是否可以相互赋值?

我:可以

大佬:相互赋值的原理是什么?

我:原理我没有仔细思考过,但我觉得应该是integer创建的对象是以int类型的一个对象,所以可以相互复制,因为它们属性相同。这是我一个猜测。因为我没有了解过他们之间的原因。

大佬:OK,比方说我现在描述一段代码,你看一下这段代码有什么问题?第1行:Integer a= null,第二行是:int b=a。这段代码编译或者运行时间会有什么问题?

我:第2行应该是会报错的。因为int是不能指向NULL的。所以因int A=B的话,应该是会报错的。

大佬:报错类型是什么?

我:不好意思,我可能不太了解报错类型。

后来运行结果,报错类型是NullPointerException

Java修饰符

大佬:Java里面有一些访问修饰符吗?然后你说一下有哪几个?然后分别有什么作用?它们的区别是什么?

我:public、protected、private,然后balabala

大佬(就知道你会说这三种):OK,刚才你说到了三种,还有一种再想想的。

我:……

大佬(放弃希望了):……

查了一下答案:
类内部 本包 子类 外部包
public protected default private

在这里插入图片描述

继承

大佬(聊不下去换了个话题):Java里面有字符串类型,String这个类型对吧?然后这个类是不是可不可以被继承?
我:可以(错误!!!)

不可以,因为String类有final修饰符,而final修饰的类是不能被继承的

大佬(又快聊不下去了):反过来问一下,如果我想要一个类不能被继承的话,我应该怎么做?
我:……
大佬(缓和话题):如果我想一个内部不能被继承,我可能某些关键字来声明一下或者是什么的。你想一想。
我:……

查一下答案:用final修饰的类不能被继承

异常

大佬:你平时写代码的时候有没有碰到过异常?说几个

我(终于可以回答了):有的,比如:RuntimeException和IOException,然后balabala

大佬:RuntimeException和Exception有什么区别?

我:balabala(重复了一遍原话,楞是没说出区别)

Exception:定义方法时必须声明所有可能会抛出的exception;
Runtime Exception:在定义方法时不需要声明会抛出runtime exception

大佬(不忍心给个台阶下):你刚才提到一个IOException,你代码里面一般处理这种异常的话,你怎么写?

我:try catch

线程安全

大佬:再问一个Java里面有list、map、set对吧?应该平时用的比较多的,你说一下就是三个的特点

我:balabala

大佬:arraylist是线程不安全的,使用arraylist如何使得线程安全?

我:Synchronized关键字或Lock锁机制,balabala

查答案:List list = Collections.synchronizedList(new ArrayList());

JVM

大佬:你的简历上有JVM调优讲一个你JVM调优的经历

我(终于看简历了):balabala(反正我也没搞清楚自己在说啥)

大佬:你提到JVM存储,分为年轻代、老年代和永久代,请说一下对象从创建到回收的过程

我:……

大佬(尴尬地沉默了几秒):你介绍一下Young GC和Old GC以及区别

我(这也不会啊):……

计网

大佬:你讲一下TCP的三次握手?

我:balabala

大佬:OK,你说一下TCP和UDP的区别

我:balabala

大佬:OK,HTTP我问一下它常见的错误有哪些?含义分别是什么?

我(完了,只记得404):404,指网页找不到了,网页被防火墙拦截了

大佬:然后还有哪些错误吗?

我:(求您别问了T T)

400 Bad Request 请求异常
403 Forbidden 服务器拒绝执行

大佬(决定再给最后一次机会):HTTP正确的状态码是多少?

我(后悔计网课玩手机了):对不起,我可能不太记得了,我只记得HTTP的端口是80

HTTP成功响应的状态码:200 OK

大佬:OK没关系,你刚才说HTTP的端口是80,对吧?有没有可能我们访问的一个HTTP服务,它端口不是80,什么情况下会出现一个端口不是80?这个跟什么相关?

我:(还能再问?)可能和IP有关吧

查一下答案:80端口只是一个标准,而并非强制规定,有时为了安全,web服务器就算不监听80端口也是没有问题的

总结

最后大佬让我问了他几个问题,大佬很耐心,在面试过程中也不断给我机会,但我太菜了QwQ。总结一下,没答出或答错较多问题,以后还会有面试,加油吧 !

如果有收获?希望来个三连击,给更多的人看到这篇文章

1、关注我的原创微信公众号「程序猿的进阶」,主要是IT与竞赛

2、创作不易,顺便点个赞呗,可以让更多的人看到这篇文章,激励一下我这个小白

你可能感兴趣的:(记第一次电话面试——钉钉Java工程师)