java面试_基础

后端面试八股文骚套路之Java基础 一年一度的秋招大戏又快拉开序幕了,近年来后端岗位越来越卷,毕业生的压力也越来越大。个人感觉目前各个大中厂校招面试不好的地方是,都在朝着背面试八股文的方向发展(曾经面试某二线厂,对着面试官纯背了 40 分钟概念),但不得不承认这也是企业在短时间内筛选面试者的一个重要手段。 为了帮助大家了解后端面试八股文应该怎么背,特此推出面试八股文画重点系列(包含的内容有 Java 基础、JVM、MySQL、Redis、操作系统、计算机网络、设计模式)。希望能帮助到 Java 基础不是很好的同学能快速的准备好面试八股文。. 阅读详情

String类为什么是final的

  1. 为了实现字符串池
  2. 为了线程安全
  3. 为了实现String可以创建HashCode不可变性

Java 中方法的参数传递,是值传递 还是 引用传递?

Java语言的方法调用只支持参数的值传递

  1. 基本类型的数据作为参数传递的是值
  2. 数组和集合类型数据传递的是地址值
  3. 对象类型的数据传递的是对象的地址值

解释单例模式,写一个单例模式

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例

请你说说int和Integer的区别

int属于基本数据类型,
Integer属于引用数据类型,
int的初始值是0,integer的初始值是null,
integer是int的包装类,属于面向对象思维编程,创建Integer需要使用new的方式为其进行内存分配

String/StringBuffer/StringBuilder 他们的区别

String是不可改变的对象。
每次改变其实都是创建了一个新的对象,然后将指针指向新的String对象,所以经常改变内容的字符串尽量不要用String,
因为每次都会生成新的对象,对系统性能有影响
StringBuffer是(线程安全的)可以改变的对象,一般来讲速度稍快于String对象。
StringBuilder是(线程不安全的)可改变的对象,提供与StringBuffer兼容的API,单线程推荐使用,速度比StringBuffer快

线程创建启动的方式都有哪些

三种:

  1. 继承Thread类
    继承、重写run()、new MyThread().start();
  2. 实现Runnable接口
    实现、重写run()、new Thread(t,”名字”).start();
    3.使用Callable和Future创建线程
    实现callable接口,重写call()方法

2、3优缺点:多线程共享同一个target对象,创建的多个线程可以共享线程类的实例变量。
实现callable接口,重写call()方法

说说多线程并发怎么处理

请说说ArrayList与LinkedList的区别

共性:
ArrayList与LinkedList都是List接口的实现类,因此都实现了List的所有未实现的方法,只是实现的方式有所不同。
区别:
List接口的实现方式不同
ArrayList实现了List接口,以数组的方式来实现的,因此对于快速的随机取得对象的需求,使用ArrayList实现执行效率上会比较好。
LinkedList是采用链表的方式来实现List接口的,因此在进行insert和remove动作时效率要比ArrayList高。适合用来实现Stack(堆栈)与Queue(队列)。

Set 和List 的区别

set和list都是集合接口
简要说明
set --其中的值不允许重复,无序的数据结构
list --其中的值允许重复,因为其为有序的数据结构

ArraysList 初始容量JDK1.6与JDK1.8有什么区别

在jdk1.6中的确是为10,
然而在1.8中,如果只是new ArrayList() ,容量其实是0,

请说说HashSet的实现原理

HashSet概述:
HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素
HashSet的实现:
对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成

请说说你常用的集合框架

请说说Hashtable的实现原理

采用Entry数组+链表的方式实现

递归和循环有什么区别?

递归是函数体中调用自己,如果不加控制,将无休止的调用自己,直到堆栈溢出。
循环是反复执行某一段区域内的代码,如果不加控制,就会形成死循环。
所以不管是递归还是循环,都要设定一定的条件,以结束递归或循环。
实际问题中,有一些问题是递归的,这样的问题使用递归程序解决感觉会自然些,程序也会简单些,但是,递归要经常调用函数,开销(内存、时间)大,有些问题就不适宜使用,循环不需要调用自身,甚至可以不调用函数,效率高,不过,要将递归问题改成非递归,可能就要动动脑筋

Jdk1.8的新特性有哪些

  1. Lambda表达式
  2. 函数式接口
  3. 方法引用和构造器调用
  4. Stream API
  5. 接口中的默认方法和静态方法
  6. 新时间日期API

事务的特性有哪些

原子性(Atomicity):
操作这些指令时,要么全部执行成功,要么全部不执行。只要其中一个指令执行失败,所有的指令都执行失败,数据进行回滚,回到执行指令前的数据状态。
一致性(Consistency):
事务的执行使数据从一个状态转换为另一个状态,但是对于整个数据的完整性保持稳定
隔离性(Isolation):
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离
持久性(Durability):当事务正确完成后,它对于数据的改变是永久性的。

PreparedStatement和Statement的区别

Statement执行不带参数的简单SQL语句,并返回它所生成结果的对象,每次执行SQL语句时,数据库都要编译该sql语句
PreparedStatement用来执行带参数的预编译的SQL语句
PreparedStatement的优点:

  1. 效率高
  2. 代码可读性和可维护性好
  3. 安全性好

使用连接池和不使用连接池的区别

在数据量很小的情况下,并且做好数据库连接的释放.是可以的.
为什么要用连接池:
访问数据库时,比较费时的就是建立一条稳定的连接.
也许你查询一次数据库花的时间是2ms,而建立一个数据库连接的时间是200ms.
使用数据库连接池的好处就是将连接缓存起来,用的时候直接拿,而不需要每次都重新连接.
一定程度上提高的效率.

Java面试知识点总结:从基础到高级的全面指南 在准备Java面试时,系统地覆盖从基础到高级的知识点是至关重要的。以下是一个详细的Java面试知识点总结,帮助你有针对性地准备面试。也算是我自己总结的知识点,先记录下来,说不定下次准备面试的时候,能再用上。 阅读详情

相关推荐

2019-java面试基础总结

面试总结 一、题 -------------基础------------------- Java基本数据类型,所占字节。 Float,4.double,8.byte,1.short,2.int,4.long,8.char,2.Boolean, 1. 字符窜的...

qq_40091084的博客 500

Java最新面试题(全网最全、最细、附答案)

Java 语言具有多种显著特点,使其成为广泛应用的编程语言。首先,Java 是面向对象的,支持封装、继承和多态三大特性,代码以类和对象为组织单位。其次,Java 具有平台无关性,通过 Java 虚拟机(JVM)实现跨平台运行,编译后的字节码可在不同操作系统上执行。Java 是强类型语言,所有变量必须先声明类型,并在编译时进行严格类型检查。此外,Java 提供自动内存管理,通过垃圾回收(GC)机制减少内存泄漏风险,并内置多线程支持,通过 Thread 类或 Runnable 接口创建线程。

javaeEEse的博客 24万+

Java 编程(基础面试题)

马上又要到 2020 年的面试季了,笔者过年在家也是无聊于是结合自身开发经验总结出一些常用的 Java 面试指南希望能对即将踏入这个行业的或者准备跳槽的程序员童鞋们有一些帮助和启发。本篇 Chat 将主要从 Java 的一些常见基础知识、Spring、Spring MVC、MyBatis、Spring Boot、Java 常见算法等方面总结出一些面试题,关于数据结构和算法相关部分可以参考上一篇 C...

GitChat 1637

Java程序员不得不会的124道面试题(含答案)

double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。意思就是说,在你写一个 volatile 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。如果你不这么做,在解析或者格式化日期的时候,可能会获取到一个不正确的结果。

Javaesandyou的博客 3万+

大厂面试突击——java基础篇

全文共11620字,我不相信你能一次看完

公号:一条coding 3万+

CubeMX实战:ETH+LWIP+FreeRTOS网络工程从零搭建与AC6编译优化

本文手把手教你使用STM32CubeMX从零搭建集成以太网(ETH)、LWIP协议栈和FreeRTOS的嵌入式网络工程。文章详细解析了外设配置、协议栈调优、任务规划等关键步骤,并重点分享了如何解决ARM Compiler 6(AC6)的兼容性问题,实现编译速度与稳定性的双重提升,助你快速构建稳定的网络应用原型。

n2o3p4的博客 407

Java 面试总结(持续更新)

java后端开发面试总结

m0_69857933的博客 9207

quartusII简易CPU设计

优点可以实现八种运算,数据的存取及运算都能很好的实现,上板也很成功。缺点首先由于自己知识储备的缺乏,只能实现较为简单的8种运算,也是最简单的直接寻址。其次为了方便操作,没有从外部输入数据,都是直接使用存储在存储器中的数据。后续发展后续会在此简易CPU的基础上增加一些功能对CPU进行完善,如算术运算可以考虑是补码运算,输入、输出采用存储缓冲等等,直至完整的全功能的处理器。收获通过这次实践,更熟悉Quartus软件的操作。能过更加清楚每个器件的操作,比如计数器,运算器,译码器等的实现功能。

Kong08242022的博客 3483

Java面试题及答案整理( 2023年 6 月最新版,持续更新)

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。

qq13321123的博客 4万+

宏基因组功能注释实战:从CAZyme到VFDB的完整流程(含数据库下载与脚本优化)

本文详细介绍了宏基因组功能注释的完整流程,涵盖CAZyme、eggNOG、CARD和VFDB四大核心数据库的实战应用。从环境配置、数据库下载与预处理到注释流程执行与优化,提供了全面的操作指南和脚本优化建议,帮助研究人员高效完成宏基因组数据分析。特别针对CAZyme注释等关键步骤给出了参数优化方案和常见问题排查方法。

weixin_29289821的博客 294

【OS】AUTOSAR OS系统调用产生Trap的过程详解

AUTOSAR OS系统调用产生Trap的过程详解

qq_36056498的博客 2438

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万+

innovus:sroute 双层follow pin的做法

根据std cellpower pin的层次可以分成两种情况。

m0_61544122的博客 2722

Java面试中Java基础面试题

java基础面试题 java一些基础面试题,对刚刚步入社会的2019届毕业生有帮助,自己总结的,很基础。

唐_方的博客 9604

【教程4>第4章>第22节】FFT频偏估计方法,导频+cordic频偏估计方法,costas环的性能对比

频偏范围适应性:Costas 环频偏锁定和基于 PN 导频和 CORDIC 算法的频偏估计都可以通过调整参数来适应一定范围的频偏,但 Costas 环的频率捕获范围相对较窄,而基于 PN 导频和 CORDIC 算法的频偏估计,基于 FFT 变换频偏估计对频偏范围较大。在高信噪比条件下,三种方法都可以获得较高的估计精度,但在低信噪比环境中,基于 PN 导频和 CORDIC 算法的频偏估计,基于 FFT 变换频偏估计这两个开环方案相对更具优势,而Costas 环频偏锁定的精度可能会受到较大影响.

FPGA/MATLAB学习教程/源码/项目合作开发 608

OceanBase数据库LSM-Tree存储引擎深度解析:合并写入与压缩优化策略

OceanBase数据库采用创新的LSM-Tree架构设计,通过"基线-增量"分离存储实现高性能。内存中的MemTable处理写入,磁盘上的SSTable存储有序数据,利用多级缓存加速读取。写入时先写日志再更新内存,合并操作将增量数据整合为基线数据以优化查询性能。相比传统B+树引擎,OceanBase在写入吞吐、压缩效率和存储成本方面优势显著,特别适合写入密集型场景。合并操作作为核心机制,通过多种触发方式和执行策略平衡性能与资源消耗。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1339

Java面试基础篇

Java 月入过万,就是干

dahuabao的博客 3055

【stm32+K210项目】基于K210与STM32协同工作的智能垃圾分类系统设计与实现(完整工程资料源码)

本系统采用SG90舵机Maix Bit摄像头STM32C8T6主控板以及LX_TRIG_MP3_V6.0语音播报模块,构建了一套高效的智能垃圾分类系统,综合运用了图像识别、语音播报及精准控制技术。SG90舵机负责控制垃圾桶的开盖操作。该舵机通过接收PWM信号来实现转动,内部有一个基准电路产生周期为20ms的PWM信号,通过外部脉冲信号的控制(高电平时间在0.5ms至2.5ms之间),使得舵机的输出轴转动到指定位置。舵机内的位置反馈电位计。

嵌入式技术开发 5098

java面试知识点——基础

java面试知识点——基础 java面试知识点解析(一)——基础知识篇

qq_40996030的博客 7334

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java——《面试题——基础篇》

1、Java语言有哪些特点1、简单易学、有丰富的类库2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)3、与平台无关性(JVM是Java跨平台使用的根本)4、可靠安全5、支持多线程。

行秋的博客 9848

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java基础面试(核心重点)

这里上传一些前段时间自己整理的Java基础知识的面试题,涉及的点还是很多的,希望可以对部分人有用。

在路上 4万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

JAVA面试篇(一)一JAVA基础

1、抽象类和接口的区别?2、类初始化顺序?3、类初始化顺序?

star_falling的博客 1565

Java基础面试题

Java基础 必知必会面试题 Java基础,面向对象,String,IO 其他内容面试题文章中有链接... 持续更新中...

weixin_46030002的博客 4159

Java 基础面试全攻略

线程池是一种管理线程的方式,可以重复利用线程,减少线程创建和销毁的开销。在 clone 方法中,可以调用 super.clone() 来实现浅克隆,即只复制对象的基本类型字段和引用的地址,而不复制引用指向的对象。它的主要方法是 await。在 Java 中,每个类都有一个对应的 Class 对象,该对象包含了类的名称、方法、字段等信息。- finalize :是 Object 类中的一个方法,在垃圾回收器确定对象没有被引用时,会调用该对象的 finalize 方法进行一些清理操作。

m0_57836225的博客 1358

JAVA基础面试题目

精选30道Java笔试题解答 http://www.cnblogs.com/lanxuezaipiao/p/3371224.html经典的Java基础面试题集锦 http://www.codeceo.com/article/java-interview-question.htmlJAVA基础面试大全 http://yidwo.iteye.com/blog/42906JAVA面试精选 http

7968

Java基础面试

java基础面试题 1、面向对象的特征 抽象:将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注 对象有那些数学和行为, 并不关注这些行为的细节是什么 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段

路人而已的专栏 3090
上一篇: JPA进阶_day02
下一篇: java面试题_web篇
虞铭轩、
博客等级 码龄7年 3粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值