java面试基础--持续更新

2024年 java基础相关面试和基础 持续更新 持续更新 阅读详情

java面试基础

1、解释什么事面向对象编程(oop)
java是一个支持并发、基于类和面向对象的计算机编程语言。具体优点如下:
-代码开发模块化,易于维护和修改
-代码服用
-增加代码的可理解性

特性
封装:即给对象提供了隐藏内部特性和行为的能力。
多态:多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面。
继承:继承给对象提供了从积累获取字段和方法的能力。继承提供了代码的重用性,也可以在不修改类的情况下给现存的类添加新特性。
抽象:把想法从具体的试题中分离出来的步骤。

2、什么是java虚拟机?为什么java被称作是“平台无关的编程语言”?
java虚拟机是一个可以执行java字节码的虚拟机进程。java源文件被编译成j能被ava虚拟机执行字节码文件。

3、static关键字是什么意思?
static关键字表明一个成员变量或者成员方法在没有所属类的实力变量的情况下被访问。static可以修饰变量,方法,代码块和静态内部内。

4、什么事值传递和引用传递
对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响元对象的值.
对象被引用传递,意味着传递的并不是实际的对象而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。

java面试线程

1、进程和线程的区别
进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。

2、创建线程有几种不同的方式?你喜欢哪一种?为什么?
有三种实现方式:
继承Thread类
实现Runnable接口
应用程序可以使用Excutor来创建线程池
实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。

3、概括的解释下线程的几种可用状态
线程在执行过程中,可以处于下面几种状态:
1、就绪(Runnable):线程准备运行,不一定立马就开始执行。
2、运行中(Running):进程正在执行线程的代码。
3、等待中(Waiting):线程处于阻塞的状态,等待外部的处理结果。不占cup阻塞
4、睡眠中(sleeping):线程被强制睡眠。占cpu阻塞
5、I/O阻塞:等待I/O操作完成。
6、同步阻塞:等待获取锁。
7、死亡(Dead):线程完成了执行。

4、什么是死锁?
两个进程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁。结果就是两个进程都陷入了无限的等待中。
饥饿锁:优先级搞得不断获取资源,优先级低的一直获取不到资源,就会造成死锁。
谦让锁:都等其他线程先执行,就发生了死锁。

5、如何确保N个线程可以访问N个资源同时又不导致死锁?
使用多线程的时候,一种非常简单的避免思索的方式就是:制定获取所的顺序,并且强制线程按照制定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁了。

6、HashMap在多线程环境下使用需要注意什么?为什么?
在多线程环境下,需要使用ConcurrentHashMap,因为HashMap是线程不安全的,如果多线程操作,会造成不可预期的结果。
ConcurrentHashMap对大数组的每个值进行分离加锁,实现了锁分离。

java集合类

java集合提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有:
Collection:代表一组对象,每一个对象都是它的子元素。
Set:不包含重复元素的Collection。
List:有顺序的Collection,并且可以保护重复元素。
Map:可以把键(key)映射到值(value)的对象,键不能重复。

1、Java中的HashMap的工作原理是什么?
Java中的HashMap是以键值对(key-value)的形式存储元素的。HashMap需要一个hash函数,它使用hashCode()和equals()方法来向集合/从集合添加和检索元素。当调用put()方法的时候,HashMap会计算key的hash值,然后把键值对存储在集合中合适的索引上。如果key已经存在了,value会被更新成新值。HashMap的一些重要的特性是它的容量(capacity),负载因子(load factor)和扩容极限(threshold resizing)。

2、HashMap和HashTable有什么区别?
HashMap允许键和值是null,而Hashtable不允许键或者值是null。
Hashtable是同步的,而HashMap不是。因此,HashMap更适合于单线程环境,而Hashtable适合于多线程环境。

3、HashSet和TreeSet有什么区别?
HashSet是由一个hash表来实现的,因此,它的元素是无序的。add(),remove(),contains()方法的时间复杂度是O(1)。
另一方面,TreeSet是由一个树形的结构来实现的,它里面的元素是有序的。因此,add(),remove(),contains()方法的时间复杂度是O(logn)。

JAVA基础面试题总结(二)持续更新。。。 JAVA基础面试题总结(二)持续更新。。。包括== 和 equals 的区别; 面向对象概述,以及面向对象和面向过程的区别;面向对象的三大特征;封装的目的以及为什么要封装;单继承or多继承;重写与重载的区别;构造方法能否重写、重载;&和&&的区别;JDK 中常用的包有哪些。 阅读详情

相关推荐

JAVA基础面试题总结(一)持续更新。。。

JAVA基础面试题总结(一)持续更新。。。,理解什么是Java;JVM、JRE和JDK的关系;什么是跨平台性?原理是什么;访问权限;数据类型包含基本数据类型和引用数据类型;一个Java文件里可以有多个类;注释;包装类;自动装箱、自动拆箱等,持续等新。。。

weixin_43888994的博客 848

JAVA基础(面试篇)

一、JAVA基础 1、什么是面向对象? 封装、继承、多态 2、对异常有什么看法?一般会如何做处理?(finally会用来做什么,关闭流的时候会放在哪个地方?) 异常是程序在编译或者运行的时候出现问题的显相; Throwable是所有Error(非程序问题,首要解决目标以及性能调优)和Exception(程序问题,且可处理可调式)的父类; 手动处理异常,可提升程序的健壮性; 3、JAVA中堆和栈的区别,说下java的内存机制。(引用类型能打印出来么?当打印一个String申明的变量时,打印出来的是什么?.

勿在浮沙柱筑高台 4601

Java基础面试题(持续更新)

Java基础面试题

Striving 372

2024年最全Java面试题,及答案汇总!

123.在 hibernate 中 getCurrentSession 和 openSession 的区别是什么?118.在 hibernate 中使用 Integer 和 int 做映射有什么区别?29.在 Queue 中 poll()和 remove()有什么区别?46.线程池中 submit()和 execute()方法有什么区别?53.synchronized 和 volatile 的区别是什么?25.ArrayList 和 LinkedList 的区别是什么?

m0_67393827的博客 6634

深度探索:机器学习中的Label Propagation算法(基于图论的半监督学习方法)原理及其应用

Label Propagation算法作为一种基于图论的半监督学习方法,有效地利用了数据的内在结构和未标注样本信息,降低了对标注数据的依赖。尽管存在对初始标签敏感、易陷入局部最优等局限性,但在图像分类、社交网络分析、生物信息学等领域展现了良好的应用前景。未来的研究方向可能包括:探索更稳健的标签初始化策略、设计抗噪声和异常值的相似度计算方法、结合深度学习模型提升模型表示能力等。随着半监督学习理论和技术的不断发展,Label Propagation及其变种算法将在更大范围内推动机器学习在标注数据有限情况下的应用

qq_51320133的博客 2283

【漆学军】MT4进阶到MT5速成之路(2)获取持仓

MT5在持仓获取上,要比MT4复杂些,分两部分,获取持仓和挂单采用了不同的方法。 一、获取持仓中的buy和sell单 int b=0;//获取buy单个数 int s=0;//获取sell单个数 double lot_total_buy=0;//获取持仓中buy单的总手数 double lot_total_sell=0;//获取持仓中sell单的总手数 for(int i=0; i<PositionsTotal(); i++) { ulong ticket=Positi

漆学军的编程笔记 1626

Java基础知识面试题

一、JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。 二、== 和 equals 的区别是什么? 1、对于基本类型,==比较的是值; 2、对于引用类型,==比较的是地址; 3、equals不能用于基本类型的比较; 4、如果

学Java,找哪吒 6万+

树莓派4B玩转ROS2 Humble:Ubuntu Desktop一键安装与配置教程

本文详细介绍了在树莓派4B上安装和配置ROS2 Humble的完整教程,包括硬件准备、Ubuntu Desktop系统安装、一键部署ROS2、网络配置优化以及常见问题解决方案。通过简化安装流程和性能调优技巧,帮助开发者快速搭建机器人开发环境,充分发挥树莓派4B在ROS2应用中的潜力。

w8x9y0z1的博客 969

Java基础面试题50题

序列化机制(包括序列化和反序列化)的本质是用流将对象读到内存和写入外存。序列化机制的意义就是将对象脱离程序运行独立存在应用场景是在RMI(远程方法调用)中应用,即通过网路或跨平台传输对象,而RMI是javaEE开发基础,所以javaEE要求传递的参数与返回值都实现序列化机制序列化是用流将java对象转成二进制写入硬盘或网络反序列化是用流将二进制数据转为java对象写入内存单例模式是指一个类只创建一个实例。单例模式是经常用到的一种设计模式,它分为饿汉式、懒汉式、静态内部类、枚举饿汉式。...

drhrht的博客 506

GR00TN1.7国内本地下载+模型下在+hugingface无法连接,本地模型下载

GR00TN1.7

alsj123456的博客 99

一键转换B站M4S缓存为MP4:无需FFMPEG命令的简易工具

本文介绍了一款专为B站用户设计的绿色工具,可将缓存的M4S视频和音频文件一键转换为通用MP4格式。该工具完全图形化操作,无需学习复杂的FFmpeg命令,解决了普通用户处理B站缓存视频的痛点。文章详细讲解了从下载、配置到转换的完整流程,并提供了常见问题排查与安全使用建议,帮助用户高效、安全地管理离线视频内容。

joy55的博客 480

2019 java面试题基础

如有需要获取最新资料,以及更全面的PDF版面试题,请关注微信公众号“西柚向西”,回复“面试题”获取面试资料。回复“视频”获取最新最全的java技术栈开发视频。 公众号会持续同步最新技术视频、面试题精选,以及职场经验、技能分享等,欢迎关注。 最新最全的面试集合,请参考《最全最新java面试题系列全家桶(带答案)》 更多精彩,持续更新中。。。。 4、&a...

青春季风暴 6万+

OpenClaw 聪明设置指南(真实可用方案)

本文介绍了OpenClaw AI系统的配置与优化指南,主要内容包括:1)基础配置,涵盖初始化流程、安全设置和配置文件位置;2)模型分层策略,推荐主力模型与降级方案;3)性能优化,包括推理加速和内存管理;4)智能提升方法,如人格定义和技能安装;5)高级功能如多Agent协同和Token优化。文章提供了详细的配置命令和参数说明,帮助用户根据需求平衡性能与成本,实现高效AI助手部署。

qq_43344878的博客 711

Java面试基础(会持续更新)

Java基础面试题

weixin_43082579的博客 225

把 ABAP Smart Form 输出变成可直接下载的 PDF 二进制:OTF 到 XSTRING 的一条龙实践

SAP Smart Forms 生成 PDF 的实用方案:通过 OTF 格式转换实现高效输出。Smart Forms 本身不直接生成 PDF,而是输出 OTF 格式数据,需通过 CONVERT_OTF 函数转换。本文提供两种实现路径:传统的 Spool 方式和更优的直接获取 OTF 方式,后者避免了 Spool 的维护负担。核心代码演示了如何通过设置 GETOTF 参数获取 OTF 数据,并转换为 PDF 二进制流,适用于前端下载、接口传输等场景。同时介绍了 SSF_OPEN/SSF_CLOSE 方法用于批

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 676

【头歌】链栈的基本操作及应用

另外,在算法的开始和结束时,栈都应该是空的,所以匹配到最后还要判断栈是否为空,若空,则说明匹配成功,返回1。其中表达式只包含三种括号,花括号{}、中括号[]、圆括号(),即它仅由 (、)、[、]、{、}六个字符组成。预期输出: 栈中元素依次为:12 47 5 8 6 92 45 63 75 38 4 29 弹出的栈顶元素 e=29 栈空否:0(1:空 0:否) 栈顶元素 e=4 栈的长度为11 清空栈后,栈空否:1(1:空 0:否)// 若栈不空,则用e返回S的栈顶元素,并返回OK;

qq_39977056的博客 4384

Java基础面试(持续更新中)

Java基础面试 1.面向对象的三个基本特征? 面向对象的三个基本特征是:封装、继承和多态。 继承:让某个类型的对象获得另一个类型的对象的属性的方法。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 封装:隐藏部分对象的属性和实现细节,对数据的访问只能通过外公开的接口。通过这种方式,对象对内部数据提供了不同级别的保护...

- 175

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

全网最全Java面试基础知识,持续更新

本文是一份Java面试核心知识点整理,涵盖Java基础、多线程、JVM、MySQL、Spring框架、Redis和计算机网络等内容。在Java基础部分,详细介绍了接口与抽象类区别、重载与重写、HashMap原理、ArrayList线程安全方案等核心概念。多线程篇深入讲解了进程线程区别、死锁条件、AQS锁机制、线程池参数等并发编程要点。JVM部分解析了内存结构、垃圾回收算法、类加载机制等底层原理。MySQL章节包含索引优化、事务特性、锁机制等数据库知识。Spring框架部分重点分析了IOC、AOP、循环依赖解

A1234543211232的博客 1187

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java基础经典面试大全总结,持续更新

java基础知识体系总结 文章目录java基础知识体系总结基础知识持续更新谈对面向对象的理解Java的基本数据类型JDK JRE JVM的区别重载和重写的区别Java中==和equals的区别String、StringBuffer、StringBuilder三者之间的区别接口跟抽象类的区别String常用的方法手写冒泡排序什么是单例模式?有几种?什么是反射获取 Class 字节码对象的3 种方法jdk1.8的新特性 **Java的异常Threadlocal 的原理同步锁、死锁、乐观锁、悲观锁 的理解**

m0_51013553的博客 401

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JAVA 基础核心面试问题分析(持续更新)

面向对象 如何理解面向对象编程? 面向对象编程强调的是一种编程的思想,它是将客观存在的一切事物都理解为计算机中的对象,当我们通过编写程序的方式去解决一些业务问题时,应该首先想到的是用什么对象去解决这个问题,其次是才是解决这个问题的步骤。例如将大象放冰箱,不能先想到的是打开门,放大象,关门这个步骤,这只是一种面向过程编程而已。而面向对象编程,强调的是你要放的是一个什么样的大象,你是否有可以放下这个大象的冰箱,然后由谁将大象放到冰箱。也就是说面向对象的重点是对象。再比如说我要去上海,首先想到的应该是交通工具,然

雨田说码 6146

JAVA基础面试题(持续更新)

JAVA基础面试题

weixin_45553053的博客 1585

Java面试/笔试题目之Java基础(持续更新中)

GitHub:https://github.com/JDawnF 声明:题目大部分来源于Java后端公众号,有些个人整理,但答案皆为个人整理,仅供参考。 目录 Java中有几种基本数据类型,各占几个字节? 面向对象的特征:继承、封装和多态 final, finally, finalize 的区别 Exception、Error、运行时异常与一般异常有何异同​ 请写出5种常见到的run...

striveb的博客 1740

java-基础面试总结(持续更新)

java-基础面试总结 1:面向对象的特征有哪些方面? 封装 最常见的是把属性私有化封装在一个类里面,只能通过方法去访问 继承 子类继承父类,从而继承了父类的方法和属性 抽象 ...

Ma_Sir的博客 244

JAVA基础面试题汇总 ~~持续更新中

JAVA基础面试题收集

qq_41269519的博客 828

Java 基础面试题整理~持续更新

1、JAVA中的几种基本数据类型是什么,各自占用多少字节。 java中8种基本数据类型:byte , short , int , long , float , double , char , boolean 2、String类能被继承吗,为什么? String被关键字final修饰,所以不能被继承。 1、修饰类当用final去修饰一个类的时候,表示这个类不能被继承。在JDK中,被设计为final类的有String、System等。 2、修饰方法:被final修饰的方法不能被重写。 3、修饰成员变量:必须初

Dream 2431

java 基础面试题及答案。持续更新

JDK 和 JRE 有什么区别? jdk是Java开发包,jre是Java运行环境 == 和 equals 的区别是什么? == 比较的是地址,equals比较的是内容 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? hashCode() 和 equals() 都是可以重写的。返回完全自己定义。但是开规范上来讲,最好一致。 (规范上)重写equ...

lzq199528的博客 540
上一篇: Linux 之最常用的20条命令
下一篇: Java网络编程(客户端/服务器,信息共享,文件上传)
GraceJava
博客等级 码龄10年 131粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值