常见的面试题 java基础01

一、Java 基础

1.JDK 和 JRE 有什么区别?

JDK = JRE + java工具集
JRE = JVm 和 JVm所需要的核心类库

2.== 和 equals 的区别是什么?

==比较的是地址,equals比较的是对象的值。

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

HashCode相同 equals 不一定相同,因为HAShCOde获取当前类对象在内存空间首地址的十进制展示方式,equals 是比较首地址。

4.final 在 java 中有什么作用?

final变量不能修改,类不能继承,方法不能重写

5.java 中的 Math.round(-1.5) 等于多少?

-1 。这个问题有些同学会粗心算错, 算成-2,Math.round 的方法是将该数向上舍入,也就是-1.5向上舍入是-1。

6.String 属于基础的数据类型吗?

不属于,java中String 是一个对象,是引用数据。基础类型只表示简单的字符或数字,引用类型可以是任何复杂的数据结构 。对于基本类型,java虚拟机会为其分配数据类型实际占用的内存空间,而对于引用类型变量,他仅仅是一个指向堆区中某个实例的指针。

7.java 中操作字符串都有哪些类?它们之间有什么区别?

String、StringBuffer、StringBuilder String是不可变的对象,对每次对String类型的改变时都会生成一个新的对象,
StringBuffer和StringBuilder是可以改变对象的。
  对于操作效率:StringBuilder > StringBuffer > String
  对于线程安全:StringBuffer 是线程安全,可用于多线程;
StringBuilder 是非线程安全,用于单线程

8.String str="i"与 String str=new String(“i”)一样吗?

不一样,前者应该在数据区常量池,后者应该在堆区。

9.如何将字符串反转?

String s=“abcdefg”;
String s2="";
char[] cs=s.toCharArray();
for(int i=cs.length-1;i>=0;i–)
{
s2=s2+cs[i];
}
System.out.println(“对字符串进行反转操作后为:”+s2);
StringBuffer sb=new StringBuffer(“abcdefg”);
StringBuffer sb2=sb.reverse();
System.out.println(“对StringBuffer进行反转操作后为:”+sb2)

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

int length();字符串长度
char charAt(int index);特定字符的位置
int indexOf(String str);特定字符串的位置
int lastIndexOf(int ch);特定字符串的倒数位置

boolean endswith(String str);是否以指定字符结束
boolean isEmpty();是否为空
boolean contains(String str);是否包含特定字符串
boolean equals(Object anObject) 字符串是否相等
boolean equalsIgnorCase(String anotherString);忽略大小写是否相等

String(char[] value)将字符数组转成字符串
String (char[] value,int offset,int count)
Static String valueOf(Char[] date,int offset,in count)
String replace(char old,char new)替换字符串
String trim()去除字符串前后的空格
String toupper();转大写
String toLower()转小写

11.抽象类必须要有抽象方法吗?

抽象类可以没有抽象方法,但是如果你的一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象.
如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编译通不过

12.普通类和抽象类有哪些区别?

抽象类里抽象方法没有方法体。抽象方法只能放在抽象类里面,
抽象类的子类必须实现父类的所有抽象方法。并且抽象类不能被final,static,private修饰。
普通类可以实例化,但抽象类不能

13.抽象类能使用 final 修饰吗?

不能,因为抽象类需要继承。被final修饰过的类就无法被任何类继承了。

14.接口和抽象类有什么区别?

1、都不能被实例化。
2、接口的实现类和抽象类的子类只有全部实现了接口或者抽象类中的方法后才可以被实例化。
不同点:
1、接口只能定义抽象方法不能实现方法,抽象类既可以定义抽象方法,也可以实现方法。
2、单继承,多实现。接口可以实现多个,只能继承一个抽象类。
3、接口强调的是功能,抽象类强调的是所属关系。
4、接口中的所有成员变量 为public static final, 静态不可修改,当然必须初始化。接口中的所有方法都是public abstract 公开抽象的。而且不能有构造方法。抽象类就比较自由了,和普通的类差不多,可以有抽象方法也可以没有,可以有正常的方法,也可以没有。

15.java 中 IO 流分为几种?

Io输入流
缓冲输入流
Io输出流
缓冲输出流

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值