Java面试基础试题整理(一)

这篇博客整理了Java面试中常见的基础题目,涵盖了作用域、内部类、运算符、集合类的区别、异常处理、String对象创建、数组与字符串长度获取、方法重载与覆盖的区别、接口与抽象类对比、异常类型、垃圾回收机制等多个知识点,旨在帮助Java开发者更好地准备面试。
摘要由CSDN通过智能技术生成

1.作用域public、private、protected、以及不写时的区别

作用域 当前类 同一package 子孙类 其他package
public
protected x
friendly x x
private x x x

不写的时候默认为friendly

2.Static Nested Class 和 Inner Class 的不同

Nested Class一般是C++的说法,Inner Class一般是Java的说法。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着:

  • 创建一个static内部类的对象,不需要一个外部类对象
  • 不能从一个static内部类的一个对象访问一个外部类对象

3.&和&&的区别

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)

4.Collection和Collections的区别

  • Collection是集合类的上级接口,继承它的接口主要有SetList
  • Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作

5.什么时候会用到assert

assertion(断言)是软件开发中一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true
如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的

6.String s=new String(“abc”)会创建几个String Object

两个,一个是字符串对象abc,另一个是引用对象s

7.求数组的长度或字符串的长度如何做

数组中没有length()这个方法,但有length这个属性。而String类中有length()这个方法。

8.Overload和Override的区别,Overload的方法返回值类型的要求

  • 方法的重写Override和重载Overload均是Java多态性的不同表现。
  • 重写Override是父类与子类之间多态性的一种表现,重载Overload是一个类中多态性的一种表现。
  • 如果在子类中定义的方法与其父类的方法有相同的名称和参数,则程该方法被重写 (Override)。子类的对象使用这个方法时,将调用子类中的定义,对子类而言,父类中的定义被"屏蔽"。若在一个类中定义了多个同名的方法,它们或有不同的参数个数或参数类型甚至是参数顺序,这称为方法的重载(Overload)。Overload的方法的返回值类型不受限制,可以更改。

9.如何区分Set里的元素是否重复呢,是用==还是equals()

Set中的元素是不能重复的,可以用iterator()方法来区分重复与否。equals()是判读两个Set是否相等
equals()==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型匹配的话,返回真值

10常见的异常有哪些

常见的运行时异常如下:

ArithmeticException
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一倾而尽

你的鼓励将是我最大的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值