首先,大佬让我用两分钟自我介绍。我本以为自己能滔滔不绝,将对方视作相亲对象般全方位介绍自己。结果不到一分钟,我就介绍完了。
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。总结一下,没答出或答错较多问题,以后还会有面试,加油吧 !