Java基础易错面试题,初级程序员面试必看!

  • 8、String 、StringBuilder 、StringBuffer 的区别

  • 9、ArrayList 和Linkedlist 区别

  • 10、Comparable 和 Comparator 的区别

  • 11、equals 和 hashcode 的区别

1、& 和 && 的区别

&:按位与,不管左边是true或false,右边都进行运算,不会短路;

&&:逻辑与,如果左边为true,右边参与运算,如果左边为false,那么右边不参与运算,具有短路的功能 。

2、重载和重写的区别

重载:同一个类中的方法名相同而参数列表不同,与方法的修饰符、返回值类型没有关系

重写:需要遵循“两同两小一大”的原则。

  • 两同:子类重写的方法 必须 和父类被重写的方法 方法名相同、参数列表相同

  • 两小:子类的返回值类型小于等于父类的返回值类型,子类抛出的异常小于等于父类抛出的异常。

  • 一大:子类重写的方法使用的访问权限大于父类被重写的方法的访问权限。

注意:子类不能重写父类中声明为 private 权限的方法

3、== 和 equals 的区别

== 既可以比较基本类型也可以比较引用类型。对于基本类型比较的是值,对于引用类型比较的是内存地址。

equals ,它是属于 java.lang.Object 类里面的方法,如果该方法没有被重写过默认也是==;通常情况下,重写 equals 方法,会比较类中的相应属性是否都相等。

更详细的解释请参考下面的博文

深入理解 equals() 方法以及与 == 的区别

4、final、finally、finalize 的区别
  • final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。

  • finally:异常处理语句结构的一部分,表示总是执行。

  • finalize:Object 类的一个方法,在垃圾回收器执行的时候会调用被回收对象的此方法,可以覆盖此方法

5、接口和抽象类

相同点

  • 接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承

  • 可以将抽象类和接口类型作为引用类型

  • 接口和抽象类都包含抽象方法

  • 一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类

不同点

  • 一个类可以实现多个接口,一个类只能继承一个抽象类;

  • .接口中不能定义构造器,抽象类中可以定义构造器;抽象类的构造器不是用来创建对象,而是让其子类调用完成抽象类的初始化操作;

  • 接口中的方法全部都是抽象方法,抽象类中可以有抽象方法和具体方法;

  • 接口中的成员全都是public 的,抽象类中的成员可以是 private、默认、protected、public;

  • 接口中定义的成员变量实际上都是常量,抽象类中可以定义成员变量;

  • 接口中不能有静态方法,抽象类中可以包含静态方法;(注意:JDK1.8之后接口中可以有静态方法)

6、error 和exception 的区别

相同点

Error 类和Exception 类的父类都是Throwable 类

不同点

Error 类一般是指Java 虚拟机无法解决的严重问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等。

Exception 类表示其它因编程错误或偶然的外在因素导致的一般性问题,程序可以处理的异常,可以捕获且可能恢复。

关于异常的问题请参考下面的博文

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题

注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

互联网工程师必备的面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
题目最优解》,里面近200道真实出现过的经典代码面试题**。

[外链图片转存中…(img-diWPUUqD-1712023596455)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一名初级Java程序员,你可能会在面试中遇到以下问题: 1. 什么是Java虚拟机(JVM)? Java虚拟机是Java程序的运行环境,它负责将Java源代码编译成字节码,并且在不同的操作系统上执行这些字节码。JVM允许Java程序在不同的平台上运行,因此Java被称为是“平台无关的编程语言”[2]。 2. 请解释一下反射机制是什么? 反射机制是指在程序运行时动态地获取和操作类的信息。通过反射,我们可以在运行时获取类的构造函数、方法、成员变量等信息,并且可以在运行时调用这些方法和访问这些变量。反射机制为程序提供了更大的灵活性和动态性。 3. 什么是线程?如何创建线程? 线程是程序中的执行单元,一个进程可以包含多个线程。线程可以同时执行不同的任务,使得程序可以并行执行多个操作。在Java中,可以通过继承Thread类或者实现Runnable接口来创建线程。继承Thread类需要重写run()方法,而实现Runnable接口需要实现run()方法,然后将实现了Runnable接口的对象传递给Thread类的构造函数来创建线程。 4. 什么是多线程?为什么要使用多线程? 多线程是指在一个程序中同时执行多个线程。使用多线程可以提高程序的效率和响应性,特别是在处理需要同时执行多个任务的场景下。通过多线程,可以将任务并行执行,从而减少等待时间和提高处理能力。 5. 请解释一下Java中的同步和异步? 同步是指多个线程按照一定的顺序执行,一个线程需要等待前一个线程执行完毕后才能执行。异步是指多个线程可以同时执行,不需要等待前一个线程执行完毕。在Java中,可以使用synchronized关键字或者Lock来实现同步,而使用线程池、Future等机制来实现异步。 6. 什么是死锁?如何避免死锁? 死锁是指多个线程因为互相等待对方释放资源而无法继续执行的状态。避免死锁的方法包括:避免使用嵌套锁、按照相同的顺序获取锁、避免长时间持有锁、使用超时机制等。此外,良好的设计和合理的资源分配也可以减少死锁的发生。 7. 什么是异常?Java中如何处理异常? 异常是指程序在执行过程中发生的错误或异常情况。在Java中,可以使用try-catch语句块来捕获和处理异常。通过捕获异常,可以防止程序因为异常而终止,并且可以根据具体的异常类型进行相应的处理操作。 8. 什么是面向对象编程(OOP)?Java是一种面向对象的编程语言吗? 面向对象编程是一种编程范式,它将程序中的数据和操作封装成对象,并且通过对象之间的交互来实现程序功能。Java是一种面向对象的编程语言,它支持面向对象的特性,如封装、继承、多态等。 9. 什么是类和对象?它们之间有什么关系? 类是对一类具有相同属性和行为的对象的抽象。对象是类的一个实例,它可以根据类的定义来创建。类是对象的模板,而对象是类的实例化结果。通过创建对象,我们可以使用类中定义的属性和方法。 10. 什么是构造函数?如何创建对象并调用构造函数? 构造函数是一种特殊的方法,它用来初始化对象的状态。在创建对象时,会调用该对象的构造函数来完成对象的初始化。在Java中,可以通过使用new关键字和构造函数来创建对象,例如:ClassName obj = new ClassName()。 以上是一些常见的Java初级程序员面试题,希望能帮到你!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值