java面试题(1)

1、jdk和jre的区别

jdk:java development kit的简称,即java开发工具包,提供了java的开发环境和运行环境

jre:java runtime environment的简称,即java运行环境,为java的运行提供了所需环境

具体来说,jdk包含了jre,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具。

简单来说,如果你需要运行java程序,只需要安装jre即可,如果你需要编写java程序,需要安装jdk

2、==和equals的区别

基本类型:比较的是值是否相同

引用类型:比较的是引用是否相同

equals比较的是值是否相等,而==用来判断2个对象的地址是否相同,即是否指相同的一个对象。

3、普通类和抽象类有哪些区别?

普通类不能包含抽象方法,抽象类可以包含抽象方法

抽象类不能直接实例化,普通类可以直接实例化

4、接口和抽象类的区别

1)、实现:接口必须使用implements来实现接口

                     抽象类的子类使用extends来继承

2)、访问修饰符:接口中的方法默认使用public修饰

                               抽象类中的方法可以是任意访问修饰符

3)、实现数量:类可以实现多个接口,但是只能继承一个抽象类

4)、构造函数:抽象类可以有构造函数,接口不能有

5)、main方法:抽象类可以有main方法,并且我们能运行它

                            接口不能有main方法

5、string类常用的方法有哪些?

1)、indexOf():返回指定字符的索引

2)、charAt():返回指定索引处的字符

3)、replace():字符串替换

4)、trim():去除字符串两端空白

5)、split():分割字符串,返回一个分割后的字符串数组

6)、getBytes():返回字符串的byte类型数组

7)、length():返回字符串的byte类型数组

8)、toLowerCase():将字符串转换成小写字母

9)、toUpperCase():将字符串转换成大写字符

10)、substring():截取字符串

11)、equals():字符串比较

6、Files的常用方法有哪些?

1)、Files.exists():检测文件路径是否存在

2)、Files.createFile():创建文件

3)、Files.createDirectory():创建文件夹

4)、Files.delete():删除一个文件或目录

5)、Files.copy():复制文件

6)、Files.move():移动文件

7)、Files.size():查看文件个数

8)、Files.read():读取文件

9)、Files.write():写入文件

7、如何将字符串反转?

使用StringBuilder或者StringBuffer的reverse()方法

8、String str="i"和String str=new String("i")是一样的吗?

不一样,因为内存的分配方式不一样,前者,java虚拟机会将其分配到常量池中,后者则会被分配到堆内存中。

9、String属于基本数据类型吗?

String不属于基本数据类型,基本数据类型有8种:byte、boolean、char、short、int、float、long、double

而String属于引用数据类型,属于对象

10、String、StringBuffer、StringBuilder三者的区别?

他们都是操作字符串的常用类

1)、String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象。

         而StringBuffer、StringBuilder可以在原有对象的基础上进行操作,所有在经常改变字符串内容的情况下最好不使用String

2)、StringBuffer是线程安全的,而StringBuilder是非线程安全的。但是StringBuilder的性能却比StringBuffer高,所以在单线程环境下推荐使用StringBuilder,多线程环境下使用StringBuffer.

11、final在java中有什么作用

1)、修饰的类为最终类,不能被继承

2)、修饰的方法不能被重写

3)、修饰的变量为常量,常量必须初始化,初始化之后值就不能被修改

12、抽象类中必须有抽象方法吗?

不需要,抽象类不一定非要有抽象方法

13、抽象类能用final修饰吗?

不能,定义抽象类就是让其他类继承的,如果定义为final该类就不能被继承,这样很容易产生矛盾,所以final不能修饰抽象类。

14、java中IO流分为几种?

1)、按照功能分为:输入流和输出流

2)、按照类型分为:字节流和字符流

字节流和字符流的区别在于:字节流是按照8为传输以字节为单位输入输出数据

                                               字符流是按16位传输以字符为单位输入输出数据

15、BIO、NIO、AIO的区别

BIO:block IO同步阻塞,就是我们平常使用的传统IO,它的特点是模式简单使用方便,并发处理能力低

NIO:new IO同步非阻塞IO,是传统IO的升级,客户端和服务器端通过channel通道通讯,实现多路复用

AIO:asynchronous IO,是NIO的升级,也叫NIO2,实现了异步非阻塞IO,异步IO的操作基于事件和回调函数。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值