java基础

1.String能被继承吗?为什么?

不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。

2.java基础类型有哪些?和引用类型有什么区别?

整型:byte,short,int,long。浮点型(小数型):float(单精度),double(双精度)。字符型(可以存放一个字符):char。布尔型:boolean(只用两个值true,false)引用数据类型。类(class),String,接口(interface),数组(array)

区别:基本数据类类型存的是数值本身,而引用类型变量在内存放的是数据的引用,并不是数据的本身,引用类型变量是以间接方式去获取数据。引用类型指向一个对象,不是数值,指向对象的变量是引用类型变量。引用类型变量里面存放的是数据的地址。

3.String, Stringbuffer, StringBuilder 的区别?

String 字符串常量(final修饰,不可被继承),String是常量,当创建之后即不能更改。(可以通过StringBuffer和StringBuilder创建String对象(常用的两个字符串操作类)。
StringBuffer 字符串变量(线程安全),也是final类别的,不允许被继承,其中的绝大多数方法都进行了同步处理,包括常用的Append方法也做了同步处理(synchronized修饰)。StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。与StringBuffer一样都继承和实现了同样的接口和类,方法除了没使用synch修饰以外基本一致,不同之处在于最后toString的时候,会直接返回一个新对象。

4. 抽象类和接口的区别。

java面试题(持续更新)

5.List、Set、Map 之间的区别是什么?

List:有序集合,元素可重复。Set:不重复集合,LinkedHashSet按照插入排序,SortedSet可排序,HashSet无序。Map:键值对集合,存储键、值和之间的映射;Key无序,唯一;value 不要求有序,允许重复。

6.ArrayList 和 LinkedList 有什么区别?

ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向链表的数据结构实现。相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。

7.Collection 和 Collections 有什么区别?

Collection 是集合的接口,其继承类又List Set

Collections 是集合的工具类,定义了许多操作集合的静态方法。是工具类。

8.HashMap 和 Hashtable 有什么区别?

hashmap和hashtable都实现了map接口,前者是线程不安全,操作速度较快,后者线程安全,操作速度较慢。前者允许键值为空,后者不允许。

9.Java创建线程常用方法?

(1)继承Thread; (2)实现Runnable接口; (3)实现Callable接口;

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

==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同。

11.error 和 exception 的区别

Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。

Exception(异常)表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。

12.JDK 和 JRE 有什么区别?

如果你需要运行java程序,只需安装JRE就可以了(jre是java运行环境)。如果你需要编写java程序,需要安装JDK(jdk是java开发环境)

13.迭代器 Iterator 是什么?怎么使用?

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,公共基类Collection提供iterator()方法。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。
 

----------------------------------------先写这么些吧,有空时候再加-------------------------------

 

相关文章:

  • 2022-12-23
  • 2021-07-02
  • 2021-07-07
  • 2021-11-03
  • 2022-12-23
  • 2021-12-19
  • 2021-08-02
猜你喜欢
  • 2021-12-03
  • 2022-02-09
  • 2022-01-19
  • 2022-01-26
  • 2022-12-23
  • 2021-11-14
  • 2022-03-04
相关资源
相似解决方案