梦想还是要有的,万一忘了咋办?

0%

Java面试题

初级,语言特点、数据类型、数据结构、字符串对象、异常处理、lang包
中级,内存模型、内存结构、加载机制、语法糖、虚拟机性能监控工具、多线程

面向对象的特点

1
2
3
4
5
(抽象、)封装、继承、多态。  
1.抽象:将同类对象的共同特征提取出来构造类。
2.封装:将数据隐藏起来,对数据的访问只能通过特定接口。
3.继承:基于基类创建新类。
4.多态:不同子类型对象对相同消息做出不同响应。  

重写、重载

1
2
3
重写:父类有个方法A、子类可以重写实现方法A。目的:
重载:方法A名称不变,修改 参数 。目的:提供不同API方便调用者调用。

返回值为何不参与重载?

1
2
3
4
5
6
方法调用不一定有返回值。
例如:调用 method();
而此时如果有两个method方法:
Object method();
void method();
将无法确定调用对象。

构造器可以重写吗?

1
构造器不能被继承所以不能重写;

修饰符介绍

1
2
3
4
5
访问权限逐级递减,public>protected>default(不写)>private
public最高可以被其他包访问
protected最高可以被子类访问
default(默认,不写)最高可以被同包访问
private只能在当前类访问

值传递和引用传递

1
基础数据类型、基础数据类型包装对象、String 是值传递,其余对象是引用传递。

基础数据类型有哪些

1
2
3
4
1字节:boolean、byte
2字节:short、char
4字节:int、float
8字节:double、long

对String理解?

1
2
3
4
String 不是基础类型
final类
值不可变
“+” 存在编译优化

String 类的常用方法都有那些?

1
2
3
4
5
6
7
8
9
10
11
indexOf():返回指定字符的索引。
charAt():返回指定索引处的字符。
replace():字符串替换。
trim():去除字符串两端空白。
split():分割字符串,返回一个分割后的字符串数组。
getBytes():返回字符串的 byte 类型数组。
length():返回字符串长度。
toLowerCase():将字符串转成小写字母。
toUpperCase():将字符串转成大写字符。
substring():截取字符串。
equals():字符串比较。

两个对象的 hashCode() 相同,则 equals() 也一定为 true,对吗?

1
不对,反过来是对的。

final 在 Java 中有什么作用?

1
2
3
final 修饰的类叫最终类,该类不能被继承。
final 修饰的方法不能被重写。
final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。

Math.round(-1.5) 和 Math.round(-1.6)分别是?

1
2
3
round:n+0.5 向下取整,-1,-2
ceil :向上取整
floor:向下取整

构造器Constructor是否可被override?

1
构造器Constructor 不能被继承,因此不能重写Override,但可以被重载Overload

在静态方法和非静态方法上加 Synchronized的区别

1
2
非静态方法:对象锁,不同线程调用同一个对象不同sync非静态方法,互斥;调用不同对象同一个方法不互斥;
静态方法:类锁,不同线程调用同一个类不同sync静态方法,不互斥;调用同一个sync静态方法互斥;