当前位置: 首页 > news >正文

20230908java面经整理

1.cpp和java的区别

cpp可以多重继承,对表java中的实现多个接口
cpp支持运算符重载、goto、默认函数参数
cpp自动强转,导致不安全;java必须显式强转
java提供垃圾回收机制,自动管理内存分配,当gc要释放无用对象时调用finalize方法
java提供反射机制,允许程序运行时得到类或对象的相关属性和操作
java为解释性语言,编译成字节码后由jvm之星;cpp为编译性语言,得到二进制代码
cpp快,java跨平台
java没有指针,更加安全

2.什么是数据库事务?怎么使用?

事务时一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,执行结果使得数据库从一个一致性状态到另一个一致性状态,要么都执行,要么都不执行。

默认就是自动开启事物,一个sql就是一个事务;

或者手动开启:
start transaction 开启事物
commit 提交
rollback 回滚

或者设置自动提交参数autocommit=1,自动提交

3.线程进程协程

进程是程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位
线程是程序执行流的最小单位,PCB包括线程ID,当前指令指针PC,寄存器集合和堆栈组成
线程自己不拥有系统资源,但共享进程的全部资源
线程可共享堆不可共享栈
协程是更轻量级的一种函数,一个线程中的多个协程是串行的,所以go是多核编程
进程切换是从用户态到内核态再到用户态,效率低下
线程切换是os根据自己策略决定,切换内容保存在内核栈中
协程切换是程序决定,只有用户态,效率高

4.进程通信和线程通信

进程:管道(先进先出)、消息队列、共享内存(解决消息拷贝)、信号量、信号、socket(stream、dgram)
线程:互斥锁、读写锁、条件变量condition、信号量semaphore

5.堆栈的区别

1.栈是系统自动分配,堆要人工申请和释放
2.栈远小于堆
3.堆向上生长,内存地址由低到高;栈向下生长,内存地址由高到低
4.堆动态分配,栈可以动态或者静态
5.栈有专门的寄存器,更快;堆申请容易有内存碎片,效率低
6.栈存放函数返回地址、相关参数、局部变量和寄存器;堆内容由开发人员决定

6.多线程竞争

数据竞争:多个数据同时读写共享数据
死锁:互相等待对方释放资源
活锁:不断尝试,尝试失败尝试失败
优先级反转:低优先级的任务阻塞了一个高优先级的任务
解决方法:互斥锁、信号量、条件变量、读写锁、原子操作、线程安全的数据结构、资源分配和释放策略

7.乐观锁和悲观锁,哪里调用?

悲观锁:共享资源每次只给一个线程使用,其他线程阻塞,用完再转让(synchronized,reentrantlock)
乐观锁:认为共享资源每次访问都不会出现问题,无需加锁也无需等待,提交时候校验是否被修改即可(版本号机制、cas算法,aba问题用版本号或者时间戳解决)

8.线程间数据共享volatile

1.可见性:一个线程改了其他线程会立即看到
2.禁止指令重排:确保写操作不会重排到后面的读操作之前
3.不保证原子性:不适用于++这些复合操作,应该用锁

9.归并排序

def merge_sort(arr):if len(arr) > 1:mid = len(arr) // 2  # 找到中间位置left_half = arr[:mid]  # 分割成左右两个子序列right_half = arr[mid:]merge_sort(left_half)  # 递归对左子序列进行排序merge_sort(right_half)  # 递归对右子序列进行排序# 合并左右两个有序子序列i = j = k = 0while i < len(left_half) and j < len(right_half):if left_half[i] < right_half[j]:arr[k] = left_half[i]i += 1else:arr[k] = right_half[j]j += 1k += 1# 处理剩余元素while i < len(left_half):arr[k] = left_half[i]i += 1k += 1while j < len(right_half):arr[k] = right_half[j]j += 1k += 1# 示例用法
arr = [12, 11, 13, 5, 6, 7]
merge_sort(arr)
print("排序后的数组:", arr)

9.nio是什么

非阻塞的处理IO的方式(new io),不需要一直阻塞等待数据的到来,使得处理并发时高效
1.双向的通道为基本数据传输单元,流单线
2.缓冲区为nio用来读取和写入数据的容器,在通道和应用程序之间传输数据,字节or字符
3.选择器,监视多个通道的事件,例如就绪和可读,通过selector可以实现但线程管理多通道
4.非阻塞,当通道无数据不会阻塞线程,可以执行其他任务
5.同步异步:同步指线程请求完成前被阻塞;异步指完成前继续执行其他任务

10.integer128

byte8位,short16位,int32为,long64位,128位的话需要用BigInteger

相关文章:

20230908java面经整理

1.cpp和java的区别 cpp可以多重继承&#xff0c;对表java中的实现多个接口 cpp支持运算符重载、goto、默认函数参数 cpp自动强转&#xff0c;导致不安全&#xff1b;java必须显式强转 java提供垃圾回收机制&#xff0c;自动管理内存分配&#xff0c;当gc要释放无用对象时调用f…...

uniapp 开发App 网络异常如何处理

我对该问题思考的不是很清楚&#xff0c;目前只想到了基本的解决方案 第一、客户端的网络异常&#xff08;断网&#xff09; 1. 断网情况 一定要弹出信息提示&#xff0c;目前最好的解决方式就是在uni.request封装的统一方法中写提示 //1. 封装的网络请求 async function se…...

docker安装常用软件

Linux系统安装docker请参考&#xff1a;https://mp.csdn.net/mp_blog/creation/editor/128176825 docker安装mysql 1、拉镜像&#xff1a;docker pull mysql:8.0.26 2、创建数据目录&#xff1a; mkdir -p /mnt/data/mysql/data mkdir -p /mnt/data/mysql/logs mkdir -p /mn…...

CocosCreator3.8研究笔记(五)CocosCreator 脚本说明及使用(下)

在Cocos Creator中&#xff0c;脚本代码文件分为模块和插件两种方式&#xff1a; 模块一般就是项目的脚本&#xff0c;包含项目中创建的代码、引擎模块、第三方模块。 插件脚本&#xff0c;是指从 Cocos Creator 属性检查器中导入的插件&#xff0c;一般是引入第三方引入库文件…...

Adobe Acrobat Reader界面改版 - 解决方案

问题 日期&#xff1a;2023年9月 Adobe Acrobat Reader下文简称Adobe PDF Reader&#xff0c;此软件会自动进行更新&#xff0c;当版本更新至2023.003.20284版本后。 软件UI界面会大改版&#xff1a;书签页变成了右边、工具栏变到了左边、缩放按钮变到了右下角&#xff0c;如…...

实用调试技巧(2)

文章目录 6. 如何写出好&#xff08;易于调试&#xff09;的代码6.1 优秀的代码&#xff1a;6.2 示范&#xff1a;6.3 const的作用 7. 编程常见的错误7.1 编译型错误7.2 链接型错误7.3 运行时错误 附&#xff1a; 6. 如何写出好&#xff08;易于调试&#xff09;的代码 6.1 优…...

海外ASO优化之如何优化游戏应用

如果我们发布了一款手机游戏或者管理了一款手机游戏&#xff0c;那么需要确保我们的手机游戏对合适的人可见&#xff0c;目的是增加应用的下载量。 1、优化游戏元数据的关键词。 Apple和Google在应用商店中为我们提供有限的空间&#xff0c;来描述手机游戏及其优势。我们需要使…...

SpringMVC: Java Web应用开发的框架之选

引言 在当今的软件开发领域中&#xff0c;Web应用的需求不断增长。为了满足这种需求&#xff0c;各种Web框架应运而生。其中&#xff0c;SpringMVC作为一种优秀的Java Web框架&#xff0c;受到广泛关注和使用。本文将以文章的形式给您讲解SpringMVC的重要概念、工作原理和核心…...

【华为设备升级】AR路由器升级设备软件示例

升级设备软件示例 通过介绍设备升级的具体步骤&#xff0c;帮助用户顺利完成系统设备升级。 组网需求 设备当前系统软件版本已经不能满足用户需要&#xff0c;用户需要更大的规格和部署更多的特性&#xff0c;此时用户需要对系统软件进行升级。 如图1所示&#xff0c;网络中的某…...

Dataset 的一些 Java api 操作

文章目录 一、使用 Java API 和 JavaRDD<Row> 在 Spark SQL 中向数据帧添加新列二、foreachPartition 遍历 Dataset三、Dataset 自定义 Partitioner四、Dataset 重分区并且获取分区数 一、使用 Java API 和 JavaRDD 在 Spark SQL 中向数据帧添加新列 在应用 mapPartition…...

Vue + Element UI 前端篇(十一):第三方图标库

Vue Element UI 实现权限管理系统 前端篇&#xff08;十一&#xff09;&#xff1a;第三方图标库 使用第三方图标库 用过Elment的同鞋都知道&#xff0c;Element UI提供的字体图符少之又少&#xff0c;实在是不够用啊&#xff0c;幸好现在有不少丰富的第三方图标库可用&…...

HDFS:Hadoop文件系统(HDFS)

Hadoop文件系统&#xff08;HDFS&#xff09;是一个分布式文件系统&#xff0c;主要用于存储和处理大规模的数据集。HDFS是Apache Hadoop的核心组件之一&#xff0c;能够支持上千个节点的集群&#xff0c;并能够处理PB级别的数据。 HDFS将大文件切割成小的数据块&#xff08;默…...

SpringMvc--综合案例

目录 1.SpringMvc的常用注解 2.参数传递 基础类型&#xff08;String&#xff09; 创建一个paramController类&#xff1a; 创建一个index.jsp 测试结果 复杂方式 ​编辑 测试结果 RequestParam 测试结果 PathVariable 测试结果 RequestBody pom.xml依赖导入 输…...

工业4.0时代生产系统对接集成优势,MES和ERP专业一体化管理-亿发

在现代制造业中&#xff0c;市场变化都在不断加速。企业面临着不断加强生产效率、生产质量和快速适应市场需求的挑战。在制造行业&#xff0c;日常管理中的ERP系统、MES系统就显得尤为重要。越来越多的企业正在采用MES系统和ERP管理系统的融合&#xff0c;以实现智能化生产管理…...

IT运维监控系统和网络运维一样吗

IT运维监控系统和网络运维不是一样的。IT运维监控系统是一系列IT管理产品的统称&#xff0c;它所包含的产品功能强大、易于使用、解决方案齐全&#xff0c;可一站式满足用户的各种IT管理需求。而网络运维是指对网络设备进行监控、维护和管理&#xff0c;包括硬件故障的排除、软…...

c语言flag的使用

flag在c语言中标识某种状态或记录某种信息&#xff0c;可以通过修改flag中来控制程序流程,判断某种状态是否存在或记录某种信息 操作:(1)初始化 (2)赋值 (3)判断 (4)修改 (5)去初始化 #include <stdlib.h>int power_state_check;int main() {int i 0;power_state_check…...

docker push image harbor http 镜像

前言 搭建的 harbor 仓库为 http 协议&#xff0c;在本地登录后&#xff0c;推送镜像发生如下报错&#xff1a; docker push 192.168.xx.xx/test/grafana:v10.1.1 The push refers to repository [192.168.xx.xx/test/grafana] Get "https://192.168.xx.xx/v2/": dia…...

羊城杯2023 部分wp

目录 D0nt pl4y g4m3!!!(php7.4.21源码泄露&pop链构造) Serpent(pickle反序列化&python提权) ArkNights(环境变量泄露) Ez_misc(win10sinpping_tools恢复) D0nt pl4y g4m3!!!(php7.4.21源码泄露&pop链构造) 访问/p0p.php 跳转到了游戏界面 应该是存在302跳转…...

解读Java对Execl读取数据

1.读取execl文件路径,或者打开execl // 初始化文件流FileInputStream in = null;in = new FileInputStream(new File(path));workbook = new XSSFWorkbook(in);sheet = workbook.getSheetAt(0);rows = sheet.getPhysicalNumberOfRows(); 2.读取execl中sheet页数,即获取当前E…...

RHCE——十七、文本搜索工具-grep、正则表达式

RHCE 一、文本搜索工具--grep1、作用2、格式3、参数4、注意5、示例5.1 操作对象文件&#xff1a;/etc/passwd5.2 grep过滤命令示例 二、正则表达式1、概念2、基本正则表达式2.1 常见元字符2.2 POSIX字符类2.3 示例 3、扩展正则表达式3.1 概念3.2 示例 三、作业1、作业一2、作业…...

UDS诊断协议详解与测试实践

&#x1f4ca; UDS诊断协议详解与测试实践> 深入讲解UDS&#xff08;Unified Diagnostic Services&#xff09;诊断协议&#xff0c;包括服务详解、测试方法和实际案例分析。—## 一、UDS协议概述### 1.1 什么是UDSUDS&#xff08;Unified Diagnostic Services&#xff0c;统…...

Spring_couplet_generation 助力科研:使用MATLAB进行生成结果的数据分析与可视化

Spring_couplet_generation 助力科研&#xff1a;使用MATLAB进行生成结果的数据分析与可视化 1. 引言 想象一下&#xff0c;你是一位研究语言文化或社会科学的学者&#xff0c;最近利用AI模型生成了成千上万副春联。面对这海量的文本数据&#xff0c;你可能会感到既兴奋又头疼…...

Mac Mouse Fix终极指南:重新定义macOS鼠标交互体验的开源解决方案

Mac Mouse Fix终极指南&#xff1a;重新定义macOS鼠标交互体验的开源解决方案 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 在macOS生态系统中&#xff0…...

游戏开发必备:Unity中三维坐标系转换的5种实战技巧(附代码)

Unity三维坐标系转换实战指南&#xff1a;从原理到代码实现 在游戏开发中&#xff0c;三维物体的旋转和坐标系转换是构建沉浸式体验的核心技术。无论是角色转向、镜头跟随还是物理模拟&#xff0c;开发者都需要精准控制物体在三维空间中的方位。Unity作为主流游戏引擎&#xff…...

TTL与CMOS数字电路核心技术对比分析

1. 数字电路技术解析&#xff1a;TTL与CMOS电路深度对比1.1 数字电路技术发展概述现代数字电子系统的核心构建模块主要采用TTL(Transistor-Transistor Logic)和CMOS(Complementary Metal-Oxide Semiconductor)两种集成电路技术。这两种技术构成了当前数字电路设计的基础&#x…...

专为AI打造的浏览器:内存占用仅为Chrome的1/9、比Chrome快11倍(Docker部署教程,支持飞牛nas等服务器部署)

文章目录 📖 介绍 📖 🏡 演示环境 🏡 📒 轻量级无头浏览器介绍与Docker部署指南 📒 📝 工具介绍 🎯 为什么选择它 🔧 Docker Compose 快速部署 💡 连接进行自动化操作 ⚠️ 注意事项 📊 性能对比 🎯 适用场景 ⚓️ 相关链接 ⚓️ 📖 介绍 📖 在自动…...

【PyCon官方认证异步实践标准】:基于aiohttp+uvloop+trio的工业级异步架构设计(含GitHub千星项目源码解析)

第一章&#xff1a;Python异步I/O的核心范式与演进脉络Python异步I/O并非一蹴而就的产物&#xff0c;而是从回调驱动、协程模拟&#xff0c;到原生语法支持的渐进式演进结果。其核心范式始终围绕“单线程并发执行I/O密集型任务”这一目标展开——通过事件循环调度可暂停/恢复的…...

华为交换机VRRP实战:用eNSP模拟一个部门隔离、主备网关自动切换的企业网

华为eNSP实战&#xff1a;VRRP高可用网关设计与故障模拟全解析 当市场部的同事正在视频会议时突然断网&#xff0c;而技术部的代码提交也因网络抖动失败——这类因单点故障引发的业务中断&#xff0c;在企业网中绝非个例。本文将用华为eNSP模拟器&#xff0c;带您构建一个具备毫…...

汽车ECU BootLoader开发:基于CAN总线与MPC57XX系列MCU

汽车ECU BootLoader开发基于CAN总线通信MPC57XX系列MCU bootloader开发 文档54页 在汽车电子领域&#xff0c;ECU&#xff08;Electronic Control Unit&#xff09;的重要性不言而喻&#xff0c;而BootLoader则是ECU中关键的一环。今天咱们就来聊聊基于CAN总线通信&#xff0c…...

Curated Programming Resources的未来发展:AI时代编程学习资源的新趋势

Curated Programming Resources的未来发展&#xff1a;AI时代编程学习资源的新趋势 【免费下载链接】curated-programming-resources A curated list of resources for learning programming. 项目地址: https://gitcode.com/gh_mirrors/cu/curated-programming-resources …...