Java基础面试题
目录
一,Java基础
1.1.JDK和JRE有什么区别?
1.2.JAVA中的几种基本类型,各占用多少字节?
1.3.==和equals的区别是什么?
1.4.final,finally,finalied有什么区别?
1.15.Java 中操作字符串都有哪些类?它们之间有什么区别?
1.16.String 类的常用方法都有那些?
1.17.普通类和抽象类有哪些区别?
1.18.抽象类能使用 final 修饰吗?
1.19.接口和抽象类有什么区别?
1.20.继承和聚合的区别在哪?
1.21.java 中 IO 流分为几种?
1.22.BIO、NIO、AIO 有什么区别?
1.23.Files的常用方法都有哪些?
1.24.Integer和int的区别
1.25.|和||有区别嘛?
1.26.重载和重写的区别?
1.27.静态方法能不能重写
1.28.对构造方法的理解?
1.29.面向对象的特征
1.30.解释一下面向对象
1.31.值传递和引用传递的区别?
1.32.静态变量和实例变量的区别
1.33.堆和栈的区别
二,容器
2.1.Java 容器都有哪些?
2.2.Collection 和 Collections 有什么区别?
2.3.List、Set、Map 之间的区别是什么?
2.4.HashMap 和 Hashtable 有什么区别?
2.5.如何决定使用 HashMap 还是 TreeMap?
2.9.如何实现数组和 List 之间的转换?
2.10.ArrayList 和 Vector 的区别是什么?
2.11.Array 和 ArrayList 有何区别?
2.12.在 Queue 中 poll()和 remove()有什么区别?
2.13.哪些集合类是线程安全的?
2.14.迭代器 Iterator 是什么?
2.15.ArrayList相关特性
2.16.LinkedList相关特性
2.17.HashSet相关特性
2.18.HashMap相关特性
2.19.HashMap底层原理是什么?
2.20.HashMap的几种遍历方式
2.21.HashMap,LinkedHashMap,TreeMap区别?底层数据结构?
2.22.Hash碰撞是什么?怎么解决?
一,Java基础
1.1.JDK和JRE有什么区别?
JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,如果你需要编写 java 程序,需要安装JDK。
1.2.JAVA中的几种基本类型,各占用多少字节?
Java数据类型分为引用数据类型和基本数据类型。引用数据类型包括数组,接口和类。基本数据类型包括数值型,字符型和布尔型。数值型分为整数型和浮点型。整数型分为byte,short,int,long。分别占1个字节,2个字节,4个字节,8个字节。浮点型分为float,double。分别占4个字节,8个字节。字符型char占2个字节,布尔型boolean占1个字节。
1.3.==和equals的区别是什么?
==用于两个变量值的比较,如果是基本数据类型则直接进行比较,如果是引用数据类型,则比较其地址值是否相同。
equals用于两个对象之间的比较。默认是引用比较,String重写了equals方法使其变为值的比较。
1.4.final,finally,finalied有什么区别?
final是Java关键字,final修饰的类不能被继承,final修饰的方法不能被重写,final修饰的属性初始化后不能重新赋值。
finally是Java异常处理机制的最后一环,不管是否抛出异常都会执行,一般用于流的关闭。
finalize是方法名。它是在Object类中定义的,因此所有的类都继承了它。 finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
1.15.Java 中操作字符串都有哪些类?它们之间有什么区别?
操作字符串的类有:String、StringBuffer、StringBuilder。
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用StringBuilder,多线程环境下推荐使用 StringBuffer。
1.16.String 类的常用方法都有那些?
indexOf():返回指定字符的索引。
charAt():返回指定索引处的字符。
replace():字符串替换。
trim():去除字符串两端空白。
split():分割字符串,返回一个分割后的字符串数组。
getBytes():返回字符串的 byte 类型数组。
length():返回字符串长度。
toLowerCase():将字符串转成小写字母。
toUpperCase():将字符串转成大写字符。
substring():截取字符串。
equals():字符串比较。
1.17.普通类和抽象类有哪些区别?
普通类不能包含抽象方法,抽象类可以包含抽象方法。抽象类不能直接实例化,普通类可以直接实例化。
1.18.抽象类能使用 final 修饰吗?
不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生 矛盾,所以 final 不能修饰抽象类。
1.19.接口和抽象类有什么区别?
抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对 象,接口变量必须指向实现所有接口方法的类对象。
抽象类要被子类继承,接口要被类实现。接口可继承接口,并可多继承接口,但类只能单根继承。
接口只能有抽象方法,抽象类中可以抽象方法,也可以有普通方法
接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
接口和抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只 能是抽象类。 抽象方法要被实现,所以不能是静态的,也不能是私有的。
1.20.继承和聚合的区别在哪?
继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以 增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与 部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个 整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致 的,只能从语义级别来区分;
1.21.java 中 IO 流分为几种?
按功能来分:输入流(input)、输出流(output)。
按类型来分:字节流和字符流。 字节流和字符流的区别是字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以 字符为单位输入输出数据。
1.22.BIO、NIO、AIO 有什么区别?
BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并 发处理能力低。
NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通 讯,实现了多路复用。
AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基 于事件和回调机制。
1.23.Files的常用方法都有哪些?
Files.exists():检测文件路径是否存在。
Files.createFile():创建文件。
Files.createDirectory():创建文件夹。
Files.delete():删除一个文件或目录。
Files.copy():复制文件。
Files.move():移动文件。
Files.size():查看文件个数。
Files.read():读取文件。
Files.write():写入文件。
1.24.Integer和int的区别
Integer是int的包装类是引用类型,int则是java的一种基本数据类型
Integer类型的变量是引用类型变量,引用Integer类型对象。
Integer 对象是不变对象,其中-128到127被缓存复用
基本类型运算性能好于包装类型
1.25.|和||有区别嘛?
|| 是短路或运算,左侧表达式为true时候,就不再计算右侧表达式的值,直接得到结果
| 是非短路逻辑运算,两侧表达式都运算,然后再得到结果
| 也是2进制按位或运算
1.26.重载和重写的区别?
重写(Override)是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。
重载(Overload)是在一个类或者子类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
1.27.静态方法能不能重写
静态方法不能被重写,重写是建立在动态执行基础上的,Java静态方法是静态绑 定执行的,不能重写
1.28.对构造方法的理解?
构造器即构造函数或构造方法(constructor),其本质是一个特殊的方法,用来初始化对象。 构造器的名称要与类的名称一致。 如果没有定义构造器,则会自动添加一个无参构造函数; 构造方法也可以重载。
1.29.面向对象的特征
面向对象的三个基本特征是:封装、继承、多态。
封装,对实体的属性和功能实现进行访问控制,向信任的实体开放,对不信任的 实体隐藏。
继承,使得低层级的类可以延用高层级类的特征和方法。
多态性是同名方法,在不同情况下的实现不同。
1.30.解释一下面向对象
面向对象编程是一种软件设计思想,其核心是通过以对象为抽象的程序单元,抽象设计出类、属性、方法。逐步细化设计出程序代码。
1.31.值传递和引用传递的区别?
Java只有一种参数传递方式:值传递(值的复制) 基本类型变量作为方法参数时候,将变量的值复制一份传递到方法中。 引用类型变量作为方法参数时候,也是将变量的值(地址值)复制一份传递到方 法中。可见基本类型参数传递和引用类型参数传递是没有区别的。
1.32.静态变量和实例变量的区别
静态变量是指在类中使用static声明的变量,静态变量是属于类的变量,再类加载期间分配,内存中只有一份,可以被类的全体实例共享。
实例变量是指在类中不使用static定义成员变量,这些变量属于对象的属性,在 创建对象时候,随着对象在堆空间中分配,每个对象都有一份实例变量。
1.33.堆和栈的区别
堆内存是Java内存区域,它的作用是用于存储Java中的对象,当我们new一个对 象时候就会在堆内存中开辟一段空间存储对象。需要垃圾回收器回收对内存中无 用的垃圾对象。多个线程共享同一个堆内存。
栈内存是Java的内存区域,每个线程都有一个独立的栈内存,主要是用来存储方 法执行的局部变量,方法参数和this变量就在栈内存。随着调用方法开辟栈帧,方 法调用结束就销毁对应的栈帧,方法中分配的局部变量也随栈帧销毁。
二,容器
2.1.Java 容器都有哪些?
Java的容器分为Collection和Map。Map下有三个实现类分别为HashMap,HashTable和TreeMap。其中HashTable是线程安全的。Collection下有三个子接口分别为List,set和queue。List下有三个实现类分别为ArrayList,LinkedList和Vector。其中Vector是线程安全的。set下有两个实现类分别为HashSet和TreeSet。
2.2.Collection 和 Collections 有什么区别?
java.util.Collection 是集合类的一个顶级接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
Collections则是集合类的一个工具类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。
2.3.List、Set、Map 之间的区别是什么?
List和Set都直接继承于Collection接口,其中List 是有序可以重复的集合,元素有先后次序,可以按照位置访问元素, 可以存储null 。Set 是元素不重复集合,重复元素算一个,不保证元素的先后次序,可以存储一个null 。Map中元素按照key:value成对存储,可以按照key查找value,查找性能好,key不 可以重复,可以存储一个null key
2.4.HashMap 和 Hashtable 有什么区别?
HashTable是线程安全的,而HashMap是非线程安全的,效率上比hashTable要高。 HashMap允许空键值,而hashTable不允许。HashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法。
2.5.如何决定使用 HashMap 还是 TreeMap?
2.6.说一下 HashMap 的实现原理?
2.7.说一下 HashSet 的实现原理?
2.8.ArrayList 和 LinkedList 的区别是什么?
2.9.如何实现数组和 List 之间的转换?
List转换成为数组:调用ArrayList的toArray方法。 数组转换成为List:调用Arrays的asList方法。
2.10.ArrayList 和 Vector 的区别是什么?
Vector是线程安全的,而ArrayList不是。
ArrayList比Vector快,它因为有同步,不会过载。
ArrayList更加通用,因为我们可以使用Collections工具类轻易地获取同步列表和只读列表。
2.11.Array 和 ArrayList 有何区别?
Array可以容纳基本类型和对象,而ArrayList只能容纳对象。
Array是指定大小的,而ArrayList大小是固定的。
Array没有提供ArrayList那么多功能,比如addAll、removeAll和iterator等。
2.12.在 Queue 中 poll()和 remove()有什么区别?
poll() 和 remove() 都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,而 remove() 失败的时候会抛出异常。
2.13.哪些集合类是线程安全的?
vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。 在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。
statck:堆栈类,先进后出。
hashtable:就比hashmap多了个线程安全。 enumeration:枚举,相当于迭代器。
2.14.迭代器 Iterator 是什么?
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解 该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
2.15.ArrayList相关特性
ArrayList是有序的,其长度可变,元素可重复,底层实现实际上就是一个数组,ArrayList就是对数组进行了一系列的包装,ArrayList是线程不安全的。ArrayList增删慢,查询快
2.16.LinkedList相关特性
LinkedList是有顺序的,其长度可变,元素可重复,底层实现是双向列表,LinkedList线程不安全, LinkedList增删快,查询慢
2.17.HashSet相关特性
HashSet是无序的 线程不安全 长度可变 元素不可重复 底层实现是HashMap
2.18.HashMap相关特性
HashMap是无序的,其长度可变。HashMap中的key值是不可重复的,value值是可重复的。HashMap线程不安全,存储结构:(JDK1.8)数组+单向链表+红黑树,并且是基于散列算法
2.19.HashMap底层原理是什么?
HashMap底层是一个散列桶数组,每个散列桶是一个单向链表结构。散列桶容量从16开始,每次扩容为2倍,当出现散列冲突时候,散列桶中元素形成链表结构。当散列表容量大于64,散列桶中元素超过8个时候,会转换为红黑树,来提升查询性能。 查找时候,利用散列算法,计算到散列桶位置,直接定位到散列桶定位。定位速度很快。散列表加载因子是75%,也就是最多75%充满率,出现散列冲突机会少,严重散列冲突还有红黑树优化,在散列桶中查询性能很快。
2.20.HashMap的几种遍历方式
Entry遍历,keySet遍历,foreach遍历,keySet foreach遍历
2.21.HashMap,LinkedHashMap,TreeMap区别?底层数据结构?
HashMap内部是一个散列表,查找数据性能很高。 LinkedHashMap 基本特点HashMap,对 Entry 集合添加了一个双向链表。 TreeMap内部的红黑树,也就是二叉树,按照key进行排序。
2.22.Hash碰撞是什么?怎么解决?
散列计算时候,当两个不同的key.hashCode(),计算出相同的散列值的现象,我们 就把它叫做散列冲突(哈希碰撞)。 HashMap中的解决办法是利用链表结构存储,超过8个元素时候转换为红黑树。 元素数量超过阈值时候,扩容也可以减少散列冲突。
相关文章:

Java基础面试题
目录 一,Java基础 1.1.JDK和JRE有什么区别? 1.2.JAVA中的几种基本类型,各占用多少字节? 1.3.和equals的区别是什么? 1.4.final,finally,finalied有什么区别? 1.15.Java 中操作字符串都有哪些类?它们…...

SQL和MongoDB对比
关系型数据库如MySQL和非关系型数据库MongoDB的对应关系:SQLMongoDBdatabasedatabasetablecollectionrowdocument or Bson documentcolumnfieldindexindextable joins$lookupprimary keyprimary key指定任何唯一的列或列组合作为主键主键会自动设置为_id字段aggrega…...

研究链表空间销毁问题
💯💯💯 1.研究链表空间销毁问题 当链表使用完后,需要将链表销毁,那么该如何销毁呢? void SLTDestroy(SLTNode* phead)//销毁单链表 {SLTNode* cur phead;while(cur){free(cur);cur cur->next;} }你…...

Linux面试总结
一.常用命令1.目录切换cd / 切换到根目录cd ../ 切换到上级目录cd ~ 切换到home目录2.查看目录ls 列出当前目录下所有的文件ls [路径]ls / 查看根目录 ls -l 相当于 ll 最常用的命令,用了表的方式列出当前目录的内容3.查看当前目录pwd-4.创建一组空文件touch5.显示文件内容cat6…...

anaconda的linux版本以及jupyter的安装和DataSpell连接linux的jupyter服务器
anaconda安装:官网:https://www.anaconda.com/拷贝下载网址后,在Linux里进行下载:wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh执行sh:./Anaconda3-2022.10-Linux-x86_64.sh 安装完后&a…...

Zookeeper集群和Hadoop集群安装(保姆级教程)
1. HA HA(Heigh Available)高可用 解决单点故障,保证企业服务 7*24 小时不宕机单点故障:某个节点宕机导致整个集群的宕机 Hadoop 的 HA NameNode 存在单点故障的可能,需要配置 HA 解决引入第二个 NameNode 作为备份同…...

利用matlab的newff构建BP神经网络来实现数据的逼近和拟合
假设P是原始数据向量; T是对应的目标向量; 现在需要通过神经网络来实现P->T的非线性映射。 net newff(minmax(P),[16,1],{tansig,purelin},trainlm); net.trainParam.epochs 2000; net.trainParam.goal 1e-5; net init(net); net train(n…...

【经验分享】电路板上电就挂?新手工程师该怎么检查PCB?
小伙伴们有没有经历过辛辛苦苦,加班加点设计的PCB,终于搞定下单制板。接下来焦急并且忐忑地等待PCB板到货,焊接,验证,一上电,结果直接挂了... 连忙赶紧排查,找问题。最终发现,是打过…...

运筹系列68:TSP问题Held-Karp下界的julia实现
1. 介绍 Held-Karp下界基于1tree下界,但是增加了点权重,如下图 通过梯度下降的方法找到最优的π\piπ。 这里用到的1tree有下面几种: 全部点用来生成最小生成树,再加上所有叶子结点第二短的边中数值最大的那个任意选一个点&…...

神经影像信号处理总成(EEG、SEEG、MRI、CT)
目录一. EEG(脑电图)1.1 脑波1.2 伪迹1.2.1 眼动伪迹1.2.2 肌电伪迹1.2.3 运动伪迹1.2.4 心电伪迹1.2.5 血管波伪迹1.2.6 50Hz和静电干扰1.3 伪迹去除方法1.3.1 避免伪迹产生法1.3.2 直接移除法1.3.3 伪迹消除法二. SEEG(立体脑电图)三. CT(计算机断层扫描ÿ…...

ZooKeeper 进阶:基本介绍
zppkeeper是什么 zookeeper是一个高性能、开源的分布式应用协调服务,它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如实现同步(分布式锁)、配置管理、集群管理。它被设计为易于编程,使用文件系统目录树作为数…...

CSS的常用元素属性,显示模式,盒模型,弹性布局
目录 1.常用元素属性 1.1字体属性 设置字体 设置大小 字体粗细 文字样式 1.2文本属性 文字颜色 文字对齐 编辑文本装饰 文本缩进 编辑行高 编辑1.3背景属性 背景颜色 背景位置 背景尺寸 1.4圆角矩形 2.元素的显示模式 2.1块级元素(display:block) 2.…...

【20230308】串口接收数据分包问题处理(Linux)
1 问题背景 一包数据可能由于某些传输原因,经常出现一包数据分成几包的情况。 2 解决方法 2.1 通过设定最小读取字符和读取超时时间 可以使用termios结构体来控制终端设备的输入输出。可以通过VTIME和VMIN的值结合起来共同控制对输入的读取。此外,两…...

数据库复试问题总结
数据库复试问题 由《数据库系统概论(第5版)》总结而来,用于本人研究生复试准备。也欢迎各位准研究生们学习使用。 文章目录数据库复试问题1、三级模式结构及二级映射有什么优点?2、关系模型中的完整性约束是哪几类?3、SQL的特点?…...

Linux操作系统安装——服务控制
个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。个人主页:小李会科技的…...

【C语言】编译+链接
一、程序的翻译环境和执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。详解编译链接翻译环境1.组成一个程序的每个源文件通过…...

为「IT女神勋章」而战
大家好,我是空空star,今天为「IT女神勋章」而战 文章目录前言一、IT女神勋章二、绘制爱心1.htmlcssjs来源:一行代码代码效果2.python来源:C知道代码效果3.go来源:复制代码片代码效果4.java来源:download代码…...

JS 动画 之 setInterval、requestAnimationFram
帧率:一秒中内页面刷新的次数,一般为60FPS,每一帧的时间是1000/6016.67ms setInterval 当我们使用setInterval做动画时,有两点会影响动画效果 由于setInterval是异步任务(宏任务),会放到异步队…...

【LeetCode——排序链表】
文章目录排序链表二、解题思路:二.实现的代码总结:排序链表 一道链表排序题,链接在这里 二、解题思路: 解题思路:使用归并排序(用递归实现) 第一步:先找到链表的中间节点 第二步…...

二叉树的遍历(前序、中序、后序)| C语言
目录 0.写在前面 1.前序遍历 步骤详解 代码实现 2.中序遍历 步骤详解 代码实现 3.后序遍历 步骤详解 代码实现 0.写在前面 认识二叉树结构最简单的方式就是遍历二叉树。所谓遍历二叉树就是按照某种特定的规则,对二叉树的每一个节点进行访问,…...

【建议收藏】深入浅出Yolo目标检测算法(含Python实现源码)
深入浅出Yolo目标检测算法(含Python实现源码) 文章目录深入浅出Yolo目标检测算法(含Python实现源码)1. One-stage & Two-stage2. Yolo详解2.1 Yolo命名2.2 端到端输入输出2.3 Yolo中的标定框2.4 Yolo网络结构2.5 Yolo的算法流…...

Vue常见的事件修饰符
前言 vue一共给我们准备了6个事件修饰符,前三个比较常用,后三个少见,这里着重讲下前三个 1.prevent:阻止默认事件(常用) 2. stop:阻止事件冒泡(常用) 3. once:事件只触发一次(常用) 4.captrue:使用事件的捕捉模式(不常用) 5.self:只有event…...

【卷积神经网络】激活函数 | Tanh / Sigmoid / ReLU / Leaky ReLU / ELU / SiLU / GeLU
文章目录一、Tanh二、Sigmoid三、ReLU四、Leaky ReLU五、ELU六、SiLU七、Mish本文主要介绍卷积神经网络中常用的激活函数及其各自的优缺点 最简单的激活函数被称为线性激活,其中没有应用任何转换。 一个仅由线性激活函数组成的网络很容易训练,但不能学习…...

刷题记录:牛客NC24048[USACO 2017 Jan P]Promotion Counting 求子树的逆序对个数
传送门:牛客 题目描述 奶牛们又一次试图创建一家创业公司,还是没有从过去的经验中吸取教训–牛是可怕的管理者! 为了方便,把奶牛从 1∼n1\sim n1∼n 编号,把公司组织成一棵树,1 号奶牛作为总裁(这棵树的根…...

MpAndroidChart3最强实践攻略
本篇主要总结下Android非常火爆的一个三方库MpAndroidChart的使用。可能在大多数情况下,我们很少会在Android端去开发图表。但如果说去做一些金融财经类、工厂类、大数据类等的app,那么绝对会用到MpAndroidChart。 一、前言 2018年,那年的我…...

Spring笔记(9):事务管理ACID
一、事务管理 一个数据库事务是一个被视为单一的工作单元操作序列。 事务管理有四个原则,被成为ACID: Atomicity 原子性—— 事务作为独立单元进行操作,整个序列是一体的,操作全都成功或失败。Consistency 一致性—— 引用完整…...

io流 知识点+代码实例
需求 : 如何实现读写文件内部的内容?流 : 数据以先入先出的方式进行流动相当于管道,作用用来传输数据数据源-->流-->目的地流的分类 :流向分 : 以程序为中心输入流输出流操作单元 :字节流 : 万能流字符流 : 只能操作纯文本文件功能分 :节点流 : 真实实现读写的功能流(包…...

【MySQL】P8 多表查询(2) - 连接查询 联合查询
连接查询以及联合查询多表查询概述连接查询内连接隐式内连接显式内连接外连接左外连接右外连接自连接联合查询多表查询概述 建表语句见上一篇博文:https://blog.csdn.net/weixin_43098506/article/details/129402302 e.g.e.g.e.g. select * from emp, dept where e…...

QML动画(Animator)
在Qt5.2之后,引入Animator动画元素。这种方式可以直接所用于Qt Quick的场景图形系统,这使得基于Animator元素的动画及时在ui界面线程阻塞的情况下仍然能通过图形系统的渲染线程来工作,比传统的基于对象和属性的Animation元素能带来更好的用户…...

Git 分支操作【解决分支冲突问题】
1. 什么是分支 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学…...