java面试(一)

一、java基础

1、JDK和JRE的区别?

      JDK是java的开发环境,JRE是java的运行环境,即编写java程序就一定需要JDK,只是运行java程序只要JRE就足够了。

 

2、java中==和equals区别

      ==在值类型和引用类型不一样,值类型==比较两个值是否相同,引用类型==比较两个引用是否相同;equals比较的都是两个值是否相同。

       equals最初的本质是==,引用类型比较的是两个引用,而如String引用是将equals方法进行了重新,而导致比较的是两个值。

 

3、hashcode和equals

      如果两个对象的hashcode相同,equals不一定相同;

       如果两个对象的equals相同,hashcode一定相同。

 

4、final java中的作用

      final修改的类不可以被继承;

      final修饰的方法不可以被重写;

      final修饰的变量是常量,不可以被修改。

 

5、java中round()方法

      Math.round()是向上舍入,3.5舍入为4,-3.5舍入为-3;

 

6、String数据类型

       String不是基本数据类型,基本数据类型包括:byte、int、short、long、float、double、char、boolean

 

7、java中的字符串操作

      String、StringBuilder、StringBuffer,String修饰不变字符串对象,StringBuilder和StringStringBuffer修饰可变字符串;

      StringBuffer多线程安全,StringBuider非线程安全,多线程使用StringBuffer,单线程使用StringBuilder。

 

8、String str="abc"和String str1=new String("abc")的区别

       str变量存放在变量池中,str2存放在堆中,引用类型

 

9、java实现字符串的反转

      使用StringBuilder和StringBuffer的的reverse()函数

 

10、抽象类和抽象方法以及普通类

        抽象类中可以没有抽象方法

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

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

 

11、抽象类能否使用final修饰符

        抽象类不能使用final修饰,因为抽象类就是为了其他类继承的,而final修饰的类不可以被继承

 

12、接口和抽象类的区别

        抽象类使用extends进行继承,而接口使用implements实现接口;

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

         抽象类可以有构造函数,但接口不能有构造函数,并且抽象类可以有main函数,而接口不能有。

 

13、java中IO流

        分为字节流和字符流,字节流按8位传输以字节为单位输入输出数据,字符流按16位传输以字符为单位输入输出数据。

 

14、BIO、NIO、AIO的区别

        BIO同步阻塞式IO,简单方便,并发能力低;

        NIO同步非阻塞式IO,客户端和服务端通过通道通信,实现了多路复用;

        AIO异步非阻塞IO,基于事件和回调机制。

 

posted @ 2019-09-03 07:47  彩色的梦  阅读(156)  评论(0编辑  收藏  举报