2022年Java常见的一些经典面试题(附答案解析)

前言:

我想每个程序员比较头疼的事情都是:工作拧螺丝,面试造火箭吧。但是又必须经历这个过程,尤其是弄不清面试官问的问题,如果你准备的不是很充分,会导致面试的时候手足无措。今天这篇文章是从已工作5年的程序员面试几十次中挑选的面试概率比较大的一些题目,都是大家被问到过的(就是这么自信),希望这篇文章能够对大家找工作有所帮助。

基础部分

一丶抽象类和接口的区别

1.语法区别
(1)抽象类可以有构造方法,接口不能有构造方法;
(2)抽象类中可以有普通成员变量,接口中没有普通成员变量;
(3)抽象类中可以有非抽象的方法,接口中的方法都必须是抽象的;
(4)抽象类中的方法可以是public,protected类型,接口中的方法只能是public类型的,切 默认为public abstract类型;
(5)抽象类中可以有静态方法,接口中不能有静态方法;
(6)抽象类中的静态变量访问类型可以是任意的,但接口中的静态变量只能是public static final 类型。
(7).一个类可以实现多个接口,但一个类只能继承一个抽象类;

2.应用区别
接口更多是在系统架构方面发挥作用,主要用于定义模块之间的通信契约;而抽象类在代码方法 发挥作用,可以使用代码块的重用;

二丶Java中接口可不可以继承一般类,为什么?

不可以因为接口中只能出现3种成员:

1.公共的静态常量(public static final )
2.公共的抽象方法(public abstract )
3.静态内部类(static class)

而一个类中,就算什么都不写,也必须带一个构造方法,在extends时就会被子类继承,如果是接口也会 继承这个构造方法,很明显构造方法不在上面三项之列
而如果类中有一般的方法和成员变量,也会被子类全部继承,这些更不能出现在接口中了,所以接口是绝 对不可能继承一个类的

三、基本数据类型的默认值?基本数据类型所占的字节

1. 默认值
(1)byte、short、int、long的默认值为0
(2)float、double默认值为0.0
(3)char默认值为空
(4)boolean默认值为false
2.所占字节
(1)byte 1个字节
(2)short 2个字节
(3)char 2个字节
(4)int 4个字节
(5)long 8个字节
(6)float 4个字节
(7)double 8个字节

四丶String属于那个类,以及常用的方法

1.java.lang.string
2.substring(),indexOf(),concat(),endswith(),length(),replace()

五丶熟悉的网络协议

1.TCP/IP协议是一种面向连接的、可靠的协议。

TCP/IP协议中的四层分别是应用层、传输层、网络层和链路层,每层分别负责不同的通信功能,接下来针对这四层进行详细地讲解。

链路层:用于定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如针对光纤、网线提供的驱动。

网络层:网络层是整个TCP/IP协议的核心,它主要用于将传输的数据进行分组,将分组数据发送到目标计算机或者网络。

传输层:主要使网络程序进行通信,在进行网络通信时,可以采用TCP协议,也可以采用UDP协议。

应用层:主要负责应用程序的协议,例如HTTP协议、FTP协议等。

2.FTP 文件传输协议,允许在网络上传输文件。

六、String、StringBuffer、StringBuilder

String的值是不可改变的,这就导致每次对String的操作都会生成新的String对象,不禁效率底下, 而且浪费大量的内存空间;StringBuilder是可变类,任何对他指向的字符串的操作都不会产生新的对 象,但单线程不安全;StringBuffer底层方法使用了synchronized关键字,线程比较安全,但效率 较StringBuilder慢;

七、设计模式

单例模式:某个类只能有一个实例,提供一个全局的访问点;
工厂模式:定义一个创建对象的接口,让子类决定实例化那个类;
代理模式:为其他对象提供一个代理以便控制这个对象的访问;

八、高并发如何处理?

1.从最基础的地方做起,优化我们写的代码,减少必要的资源浪费。
a.避免频繁的new对象,对于整个程序只需要一个实例的类,我们可以使用单例模式;对于String 链接操作,使用StringBuffer或StringBuilder,对于工具类可以通过静态方法来访问;
b.避免使用错误的方式,使用java中高效率的类,比如ArrayList比Vector性能好

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值