java面试题基础知识,java面试基础笔试题

  java面试题基础知识,java面试基础笔试题

  如何解决写爬虫IP受阻的问题?立即使用。

  JDK 和 JRE 有什么区别?

  JDK:java Development Kit的缩写,java Development Kit,提供Java的开发环境和运行环境。

  JRE:java Runtime Environment的缩写,java Runtime Environment,为Java的运行提供所需的环境。(推荐学习:java常见问题)

  具体来说,JDK实际上包括JRE,以及编译java源代码的编译器javaC,还有很多调试和分析Java程序的工具。简单来说:如果需要运行java程序,安装JRE即可。如果你需要编写java程序,你需要安装JDK。

  == 和 equals 的区别是什么?

  基本类型和引用类型==的效果是不同的,如下:

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

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

  Qual本质上是==,只是String和Integer重写了equals方法,把它变成了值比较。

  ==对于基本类型,是值比较;对于引用类型,是比较或引用;Equals默认是引用比较,但是很多类重写了equals方法,比如String,Integer等。这就变成了值比较,所以一般来说,equals比较的是值是否相等。

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

  不会,两个对象的hashCode()是一样的,equals()不一定是真的。

  STR1= call

  STR2= Chongdi

  system . out . println(string . format( str 1:% d str 2:% d ,str1.hashCode()),str 2 . hashcode());

  system . out . println(str 1 . equals(str 2));执行的结果:

  str1:1179395 str2:1179395

  真代码解读:显然“Call”和“Chongdi”的hashCode()是相同的,但是equals()是假的,因为在哈希表中,hashCode()是相等的,也就是两个键值对的hash值相等,但是hash值相等,并不一定得出键值对相等的结论。

  final 在 java 中有什么作用?

  最后修饰的类称为final类,不能继承。

  最终修饰的方法不能被重写。

  被final修改的变量称为常量,常量必须初始化,之后不能修改值。

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

  等于-1。

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

  字符串不属于基本类型。有八种基本类型:byte、boolean、char、short、int、float、long和double,而String属于对象。

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

  字符串的类有:string、StringBuffer、StringBuilder。

  stringBuffer和StringBuilder的区别在于String声明了一个不可变的对象,每次操作都会生成一个新的String对象,然后将指针指向新的String对象,而StringBuffer和StringBuilder可以在原对象的基础上进行操作,所以在String内容经常变化的情况下最好不要使用String。

  stringbuilder和stringbuilder最大的区别是,stringbuilder是线程安全的,而stringbuilder是非线程安全的,但是StringBuilder的性能比StringBuilder高,所以单线程环境推荐StringBuilder,多线程环境推荐StringBuilder。

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

  不会,因为内存分配不同。String= i ,java虚拟机将其分配给常量池;而string str=new string ("I ")将被分配给堆内存。

  如何将字符串反转?

  使用StringBuilder或stringBuffer的reverse()方法。

  示例代码:

  //字符串缓冲反转

  string buffer string buffer=new string buffer();

  string buffer . append( abcdefg );

  system . out . println(string buffer . reverse());//gfedcba

  //StringBuilder反向

  StringBuilder StringBuilder=new StringBuilder();

  stringbuilder . append( abcdefg );

  system . out . println(stringbuilder . reverse());//gfedcbaString 类的常用方法都有那些?

  Index():返回指定字符的索引。

  CharAt():返回指定索引处的字符。

  Replace():字符串替换。

  Trim():删除字符串两端的空格。

  Split():拆分一个字符串并返回拆分后的字符串数组。

  GetBytes():返回字符串的字节类型数组。

  Length():返回字符串长度。

  ToLowerCase():将字符串转换成小写字母。

  ToUpperCase():将字符串转换为大写字符。

  Substring():截取字符串。

  Equals():字符串比较。抽象类必须要有抽象方法吗?

  不,抽象类不一定要有抽象方法。

  示例代码:

  抽象类别Cat {

  public static void sayHi() {

  system . out . println( hi ~ );

  }

  }在上面的代码中,抽象类没有抽象方法但是可以正常运行。

  普通类和抽象类有什么区别?

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

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

  抽象类能使用 final 修饰吗?

  不,定义一个抽象类是为了让其他类继承它。如果定义为final,这个类就不能继承,会造成相互冲突。因此,final不能修饰抽象类。如下图所示,编辑器还会提示错误信息:

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

  实现:抽象类的子类使用扩展来继承;接口必须使用实现来实现。

  构造函数:抽象类可以有构造函数;接口不能有。

  Main方法:抽象类可以有main方法,我们可以运行它;接口不能有main方法。

  实现数量:一个类可以实现很多接口;但是只能继承一个抽象类。

  访问修饰符:接口中的方法默认用public修饰;抽象类中的方法可以是任意的访问修饰符。

  java 中 IO 流分为几种?

  按功能分:输入流(input)和输出流(output)。

  按类型分:字节流和字符流。

  字节流和字符流的区别在于,字节流以字节为单位传输8位的输入输出数据,而字符流以字符为单位传输16位的输入输出数据。

  BIO、NIO、AIO 有什么区别?

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

  NIO:新IO同步无阻塞IO,是传统IO的升级。客户端和服务器通过信道通信,实现多路复用。

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

  Files的常用方法都有哪些?

  Files.exists():检查文件路径是否存在。

  Files.createFile():创建文件。

  Files.createDirectory():创建文件夹。

  Files.delete():删除文件或目录。

  Files.copy():复制文件。

  Files.move():移动文件。

  Files.size():检查文件的数量。

  Files.read():读取文件。

  Files.write():编写一个文件。以上是Java常见基础面试题的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: