论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
SQL-Server
›
java八股文口试题
java八股文口试题
盛世宏图
论坛元老
|
2024-7-12 05:47:31
|
显示全部楼层
|
阅读模式
楼主
主题
1753
|
帖子
1753
|
积分
5259
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
Java八股文口试题通常涵盖了Java语言的底子知识、高级特性、框架应用、数据库操纵等多个方面。以下是一些常见的Java口试题及其详细回答,按照不同的主题举行分类:
一、Java底子
面向对象的特征有哪些?
抽象:忽略与当前目标无关的细节,只关注与当前目标干系的方面。
继承:允许新类继承现有类的属性和方法,实当代码的重用。
封装:将对象的状态信息隐藏在对象内部,不允许外部直接访问,而是通过该对象提供的方法来实现对内部状态的访问和操纵。
多态性:允许不同类的对象对同一消息作出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
重载(Overload)与重写(Override)的区别?
重载:发生在同一个类中,方法名相同但参数列表不同(参数范例、个数、顺序至少有一个不同),返回范例可以不同,但不能通过返回范例来区分重载。
重写:发生在有继承关系的子类与父类之间,方法名、参数列表必须完全相同,返回范例可以相同或更小的范围(协变返回范例),访问权限不能比父类中被重写的方法的访问权限更低。
接口(Interface)与抽象类(Abstract Class)的区别?
接口:一种引用范例,是一种抽象的范例,它是一种特殊的类,它是完全抽象的,没有具体实现的方法,不能被实例化。接口中的方法默认是public abstract的,接口中界说的变量默认是public static final的。
抽象类:是一种特殊的类,不能被实例化,只能被继承。抽象类中可以包含抽象方法(没有具体实现的方法)和具体方法(有具体实现的方法)。
深拷贝(Deep Copy)与浅拷贝(Shallow Copy)的区别?
浅拷贝:仅仅复制对象本身(包括对象中的基本数据范例变量和对象的引用变量),但不复制对象引用的其他对象。
深拷贝:不但复制对象本身,还复制对象引用的其他对象,使得新对象和原对象完全独立。
sleep()和wait()的区别?
sleep()是Thread类的方法,导致当火线程暂停执行指定时间,不会释放锁。
wait()是Object类的方法,用于线程间的通讯,导致当火线程等待直到另一个线程调用此对象的notify()方法或notifyAll()方法,会释放锁。
二、Java高级
JVM内存结构及其作用?
方法区(Method Area):存储每个类的结构信息,如运行时常量池、字段和方法数据、构造函数和普通方法的字节码内容等。
堆(Heap):所有对象实例以及数组都要在堆上分配,是垃圾网络器管理的重要区域。
栈(Stack):每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个栈帧(Stack Frame),对应着一次次方法的调用。
步调计数器(Program Counter Register):是一块较小的内存空间,可以看作是当火线程所执行的字节码的行号指示器。
当地方法栈(Native Method Stacks):与虚拟机栈所发挥的作用非常相似,其区别不外是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而当地方法栈则为虚拟机利用到的Native方法服务。
Java中的垃圾网络算法有哪些?
标记-扫除(Mark-Sweep):起首标记出所有必要回收的对象,然后统一回收被标记的对象。
复制(Copying):将内存分为大小相等的两块,每次只利用其中一块,当这一块内存用完时,就将还存活的对象复制到另一块上面,然后再把已利用的内存空间一次清理掉。
标记-整理(Mark-Compact):标记过程仍然与“标记-扫除”算法一样,但后续步调不是直接对可回收对象举行清理,而是让所有存活的对象都向一端移动,然后直接清理掉端界限以外的内存。
分代网络(Generational Collection):根据对象的存活周期的不同,将内存划分为几块。一般是把Java堆分为新生代和老年代,这样就可以根据各个年代的特点采用最适当的网络算法。
synchronized和volatile的区别?
synchronized:是Java中的一个关键字,用于控制多个线程对共享资源的访问,包管同一时刻只有一个线程能够访问该资源。synchronized既可以修饰方法,也可以修饰代码块。
volatile:是Java中的一个修饰符,用于包管变量的可见性和有序性,但不包管原子性。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,每次利用都会直接从主存中读取。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
盛世宏图
论坛元老
这个人很懒什么都没写!
楼主热帖
绝了,这20款可视化大屏模板太酷炫了( ...
零基础学Java(1)初识Java程序 ...
【十年网络安全工程师整理】—100渗透 ...
聊聊DevOps制品管理-不止是存储制品这 ...
记一次 .NET 某RFID标签管理系统 CPU ...
Python程序运行内存的查看
【Linux进程概念——下】验证进程地址 ...
15年了,我们到底怎样才能用好 Serverl ...
Frida主动调用java函数来爆破解题思路 ...
数据库扩容也可以如此丝滑,MySQL千亿 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
物联网
Oracle
快速回复
返回顶部
返回列表