java基础 面试题,Java面试基础知识
java最新基础知识面试题
1、static关键字什么意思?java中是否可以覆盖一个private或者是static的方法?
“static”表示可以在没有其类的实例变量的情况下访问成员变量或成员方法。
Java静态方法不能被重写,因为方法重写是基于运行时动态绑定的,而静态方法是在编译时静态绑定的。静态方法与该类的任何实例都不相关。
私有方法不能在java中被覆盖。因为私有修改的变量和方法只能在当前类中使用,如果其他类继承了当前类,那么在继承的类中就不能访问私有变量和方法。
2、能否在static环境中访问访问非static变量?
不能。静态变量属于该类。当类被虚拟机加载时,静态变量被初始化。非静态变量属于实例。此时,编译器会在创建实例之前报告一个错误。
3、java基本类型,什么是自动拆装箱?
基本类型:字节型、短整型、整型、浮点型、长整型、双精度型、布尔型、字符型
自动装箱:java编译器在基本类型和相应的对象包装类型之间进行转换。比如把int转换成Integer等等。否则就是自动拆包。
4、java的方法覆盖overriding和方法重载overloading是什么意思?
当同一个类中的两个或多个方法具有相同的名称但参数不同时,就会发生java中的方法重载。方法覆盖是子类重新定义其父类的方法。方法重写必须具有相同的方法名、参数列表和返回类型。
5、java中,什么是构造方法?什么是构造方法重载?什么是复制构造方法?
创建新对象时,调用构造函数。每个类都有一个构造函数,当没有为类提供构造函数时,编译器会自动创建一个默认的构造函数。
在java中构造方法重载与方法重载非常相似。可以为一个类创建多个构造函数,每个构造函数必须有自己唯一的参数列表。
6、java支持多继承吗?
不支持。只支持单一继承,即一个类只有一个父类。您可以使用实现来实现多个接口扩展。
7、接口与抽象类的区别
1.接口中的所有方法含义都是抽象的。抽象类可以包含抽象和非抽象方法。
2.默认情况下,接口中声明的变量是final,而抽象类可以包含非final变量。
3.默认情况下,接口中的成员函数都是公共的。类的抽象成员函数可以是私有的、受保护的或公共的。
4.一个类可能不会实现抽象类和接口声明中的所有方法,在这种情况下,该类也必须声明为抽象的。
8、jdk与jre区别是什么?
java运行时环境(jre)是要执行的java程序的Java虚拟机,它还包含执行applet所需的浏览器插件。java开发工具包(jdk)是一个完整的java软件开发包,它包括jre、编译器和其他工具(如javadoc、java调试器),允许开发人员开发、编译和执行Java应用程序。
9、什么是值传递和引用传递
值传递是基本类型变量的副本,改变副本不会影响原变量。
一般来说,reference指的是对象类型的变量,传递的是对象地址的副本。更改副本会影响原始变量。
10、进程和线程的区别?
进程是正在执行的应用程序,线程是进程中的执行序列。一个进程可以有多个线程。
差异:
1.地址空间和其他资源:进程是相互独立的。在同一进程的线程间共享。一个进程中的线程对其他进程是不可见的。
2。通信:ipc是进程间的通信,线程可以直接读写进程数据段(比如全局变量)进行通信——它需要进程同步和互斥的辅助来保证数据的一致性。
3.调度和切换:线程之间的上下文切换比进程上下文切换快得多。
4.在多线程操作系统中,进程不是一个可执行的实体。
11、同步方法和同步代码块的区别
同步方法默认使用这个或当前类对象作为锁。
同步代码块可以选择锁定什么,这比同步方法更精细。我们可以选择只同步会导致同步问题的部分代码,而不是同步整个方法。
12、死锁
死锁是由多个线程之间的资源竞争引起的死锁。没有外力,这些线就不能前进。死锁的四个必要条件
1.互斥条件
2.不剥夺条件
3.请求和维护条件
第四步:循环等待。
13、如何确保N个线程可以访问N个资源同时又不导致死锁?
避免死锁的一个非常简单的方法:指定获取锁的顺序,并强制线程按照指定的顺序获取锁。因此,如果所有线程都以相同的顺序锁定和释放锁,就不会出现死锁。
14、java集合类框架的基本接口有哪些?
集合、集合、列表、地图
15、HashMap工作原理
HashMap存储为一个键值对。Hashmap需要一个hash函数,它使用hashCode和equals方法在集合中添加和检索元素。当调用put时,HashMap将计算键的哈希值,然后将键-值对存储在集合中适当的索引处。如果该项已经存在,该值将被更新为新值。hashMap的一些重要特性是它的容量、负载系数和容量扩展限制。
16、hashcode和equals重要性体现在什么地方
Hashmap通过hashcode和equals确定键值对索引。
17、hashmap和hashtable区别?
Hashmap允许键和值为空,而hashtable不允许键或值为空。
Hashtable是同步的,但是hashmap不是。
我们,大量免费的Java入门教程,欢迎在线学习!以上是java基础知识最新面试题的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。