Java部分复习笔记整理
一、Java常用类
1.String类
表示字符串,不可变,常用方法包括length()
, charAt()
, substring()
, indexOf()
, equals()
等。
2.ArrayList类
基于数组实现的动态数组,可变大小,常用方法包括add()
, get()
, set()
, remove()
, size()
等。
3.HashMap类
基于哈希表实现的键值对存储,常用方法包括put()
, get()
, containsKey()
, remove()
, keySet()
等。
4.StringBuilder和StringBuffer类
用于可变字符串操作,相比String类可以进行高效的字符串拼接和修改操作。常用方法包括 append(), insert(), delete(), reverse() 等。
5.HashSet和TreeSet类
实现了Set接口,分别基于哈希表和红黑树实现。HashSet支持快速查找、插入和删除操作,而TreeSet支持有序的集合操作。
6.LinkedList类
双向链表实现的列表,实现了List接口,提供了快速的插入和删除操作,但访问速度相对较慢。常用方法有 add(), get(), remove(), size() 等。
7.Arrays类
提供了数组操作的各种静态方法,例如数组的排序、查找、填充等。常用方法包括 sort(), binarySearch(), fill() 等。
8.Math类
提供了数学计算相关的静态方法,如求绝对值、取最大最小值、对数运算等。常用方法有 abs(), max(), min(), log() 等。
9.Exception类及其子类
用于处理异常情况,Java中的异常处理机制依赖于这些类的继承结构,常见的子类有NullPointerException、IOException等。
11.Date类
用于日期和时间的处理,已经过时,推荐使用 java.time 包中的类如 LocalDate, LocalDateTime。
12.File类
文件和目录操作类,常用方法有 exists(), createNewFile(), mkdir(), listFiles() 等。
二、面向对象
面向对象编程(OOP)是一种编程范式,通过对象的概念,将数据与函数绑定在一起。主要特征包括:
1.抽象(Abstraction):
抽象是简化复杂系统的过程,它是隐藏具体实现细节,展示重要特征和功能的方法。在OOP中,通过抽象类和接口来定义规范,而不关心具体实现细节
2.接口(Interface):
接口定义了一个类或者多个类应该提供的方法和行为,但不包含具体实现。类可以实现一个或多个接口,从而达到实现多态的效果。
3.组合(Composition):
组合是一种设计模式,它允许一个对象包含其他对象作为其部分。通过组合,可以构建具有复杂功能的对象,同时保持高内聚性和低耦合性。
4.设计模式(Design Patterns):
设计模式是解决常见问题的可复用方案,它们提供了在面向对象设计中常见问题的解决方案,例如单例模式、工厂模式、观察者模式等。
5.封装变体:Getter和Setter:
封装不仅限于将属性和方法绑定在一起,还包括通过公共方法(如Getter和Setter方法)来控制对对象属性的访问和修改,以实现数据的安全性和一致性。
6.重载(Overloading)和重写(Overriding):
重载是在同一个类中定义多个同名方法,但参数列表不同,用于实现同一方法的多种形式;重写是子类覆盖父类的方法,以改变或扩展其行为。
三、集合
List接口:
ArrayList:
基于动态数组实现,支持随机访问,适合读取操作频繁的场景。LinkedList:基于双向链表实现,插入和删除操作效率高,但随机访问较慢。
Set接口:
HashSet:
基于哈希表实现,元素无序存储,可以快速查找,但不保证顺序。
TreeSet:
基于红黑树实现,元素有序存储(根据元素的自然顺序或者自定义的比较器),查找效率较高。
Map接口:
HashMap:
基于哈希表实现,键值对无序存储,提供了快速的插入、删除和查找操作。
TreeMap:
基于红黑树实现,键值对有序存储,可以根据键的自然顺序或者比较器进行排序。
迭代器:
所有集合框架中都支持迭代器,用于遍历集合中的元素。迭代器提供了安全的遍历方式,并且支持同时进行遍历和删除操作。
泛型:
集合框架通过泛型机制提供了类型安全的数据存储和操作。使用泛型可以在编译时检测类型错误,避免运行时异常。
四、异常
异常是程序运行过程中出现的不正常情况,如果不进行处理,会导致虚拟机无法继续正常执行后续程序。异常分为两类:Error和Exception。
-
Error:
- 这些是虚拟机无法解决的严重问题,例如内存不足或虚拟机内部错误。
- 示例包括
StackOverflowError
(栈溢出)和OutOfMemoryError
(堆溢出)。
-
Exception:
- 这些是可以通过异常处理机制解决的一般性问题,分为编译时异常和运行时异常。
- 编译时异常需要在代码中显式处理,如文件操作中的
IOException
。 - 运行时异常是指可以通过程序逻辑避免的问题,如
NullPointerException
或ArrayIndexOutOfBoundsException
。
异常处理机制通过 try-catch-finally
块来捕获和处理异常。例如:
try {// 可能会抛出异常的代码int result = 10 / 0; // 这里会抛出 ArithmeticException
} catch (ArithmeticException e) {// 异常处理逻辑System.out.println("除数不能为0");
} finally {// 无论是否发生异常,这里的代码块总会执行System.out.println("无论如何都会执行的代码块");
}
使用 throws
关键字可以在方法声明中指定可能抛出的异常类型,将异常抛给调用者处理。
异常处理的目的是提高程序的健壮性和可靠性,确保即使出现问题,程序也能继续执行或给出合适的反馈,而不是突然终止或进入不可预测的状态。
五、数据库
MySQL数据库
MySQL是一个关系型数据库管理系统,最早是由瑞典的MySQLAB公司开发,目前在Oracle旗下,是流行的数据库管理系统。
关系型数据库
以数据表为单位,表与表之间存在关联关系
非关系型数据库 redis
缓存 key:value;
sql :结构化查询语言简称(SQL)
是一种特殊的编程语言,用于对数据库管理操作和数据的增删改查操作。
DDL:数据(结构)定义语言,
创建和删除数据库表结构的语言
常用语句:create ,alter,drop,rename。
创建表的步骤:
1.确定表名,2.确定列名,
列的数据类型:
字符串型:
char(n):长度为n的定长字符串。
varchar(n):最大长度为n的变长字符串。
日期时间类型:
date 日期--年月日; datetime 时间--年月日 时分秒。
数值类型:
整数:
TINYINF 1;
SMALLINT 2;
MEDIUMINT 3;
INT 4;
BIGINT 8;
signed 有符号(默认有符号)
unsigned 无符号。
浮点数:
decimal(M,D)
M:精度,数据的总长度;
D:标度,小数点后的长度
TEXT列字符字符串:
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
DML
数据操纵语言DML(Data Manipulation Language)
常用语句: insert,delete,update
插入数据
INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2…..,值n);
修改数据
UPDATE 表名 SET 列名 = ‘新值’WHERE 条件
删除数据
DELETE FROM 表名 WHERE 条件
TRUNCATE TABLE 表名;清空整张表
查询
单列查询
DQL(Data Query Language)数据查询语言查询是使用频率最高的一个操作,
可以从一个表中查询数据,也可以从多个表中查询数据。
select 查询列表 from 表名;
字符函数:
length():获取参数值的字节个数
char_length()获取参数值的字符个数
concat(str1,str2,.....):拼接字符串
upper()/lower():将字符串变成大写/小写
substring(str,pos,length):截取字符串 位置从1开始
instr(str,指定字符):返回子串第一次出现的索引,如果找不到返回0
trim(str):去掉字符串前后的空格或子串,trim(指定子串 from 字符串)
lpad(str,length,填充字符):用指定的字符实现左填充将str填充为指定长度
rpad(str,length,填充字符):用指定的字符实现右填充将str填充为指定长度
replace(str,old,new):替换,替换所有的子串
逻辑处理
case when 条件 then 结果1 else 结果2 end; 可以有多个when
ifnull(被检测值,默认值)函数检测是否为null,如果为null,则返回指定的值,否则返回
原本的值
if函数:if else的 效果 if(条件,结果1,结果2)
条件查询
select 结果列 from 表名 where 条件
比较
=, != 或<>, >, <, >=, <=
逻辑运算
and 与
or 或
not 非
模糊查询
like %字符%
%:通配符,任意多个字符
between .... and ... 表示在两个区间,包含临界值
in 判断某字段的值是否属于in列表中的某一项
in(... , ... , ...)
IS NULL(为空的)或 IS NOT NULL(不为空的)
排序
查询结果排序,使用 ORDER BY 子句排序 order by 排序列 ASC/DESC
asc代表的是升序,desc代表的是降序,如果不写,默认是升序
什么排序都没有,默认按主键进行升序排列
order by子句中可以支持单个字段、多个字段
数量限制
limit 开始位置(开始位置为0),查询的数量
SELECT * from table LIMIT 0,5
分组查询语法:
select 分组函数,列(要求出现在group by的后面)
from 表
[where 筛选条件]
group by 分组的列表
[having 分组后的筛选]
[order by 子句]
六、JDBC
在项目中添加JAR文件
在使用JDBC之前,需要将相关的数据库驱动JAR文件添加到项目的构建路径中。这些JAR文件通常由数据库供应商提供,包含了JDBC驱动程序和必要的类库。
加载驱动类
加载数据库驱动类是使用JDBC的第一步。每种数据库厂商都提供了自己的JDBC驱动类,例如MySQL的驱动类是 com.mysql.jdbc.Driver
。
建立与数据库的连接,获得连接对象
使用 DriverManager.getConnection()
方法建立与数据库的连接,并获得连接对象。连接字符串、数据库用户名和密码是建立连接的必要信息。
发送SQL语句
通过连接对象创建 Statement
或 PreparedStatement
对象,用于发送SQL语句给数据库执行。
处理结果集
对于查询语句,需要处理从数据库返回的结果集 ResultSet
。可以使用 ResultSet
的方法来迭代结果集并提取数据。
关闭数据库连接
使用完数据库连接后,需要显式地关闭连接、语句和结果集,以释放数据库资源和避免资源泄漏。
相关文章:
Java部分复习笔记整理
一、Java常用类 1.String类 表示字符串,不可变,常用方法包括length(), charAt(), substring(), indexOf(), equals()等。 2.ArrayList类 基于数组实现的动态数组,可变大小,常用方法包括add(), get(), set(), remove(), size()…...
GoLang语言
基础 安装Go扩展 go build 在项目目录下执行go build go run 像执行脚本文件一样执行Go代码 go install go install分为两步: 1、 先编译得到一个可执行文件 2、将可执行文件拷贝到GOPATH/bin Go 命令 go build :编译Go程序 go build -o "xx.exe"…...
ctfshow web入门 sqli-labs web517--web524
web517 注入点id ?id-1’union select 1,2,3– 确认是否能够注入 ?id-1union select 1,database(),3-- 爆出库名 security爆出表名 ?id-1union select 1,(select group_concat(table_name) from information_schema.tables where table_schemasecurity),3-- emails,refer…...
Spring Cloud Gateway 跨域配置和跨服务请求跟踪
文章目录 引言I Spring Cloud Gateway 跨域配置1.1 网关统一处理:配置文件-推荐1.2 网关统一处理:配置类方式1.3 微服务处理,网关侧不用处理CORS。1.4 子服务依赖配置1.5 网关服务的依赖配置II 跨服务请求日志跟踪2.1 feign 依赖配置2.2 feign子模块将请求头中的参数,全部作…...
动手学深度学习(Pytorch版)代码实践 -卷积神经网络-29残差网络ResNet
29残差网络ResNet import torch from torch import nn from torch.nn import functional as F import liliPytorch as lp import matplotlib.pyplot as plt# 定义一个继承自nn.Module的残差块类 class Residual(nn.Module):def __init__(self, input_channels, num_chan…...
解锁音乐潮流:使用TikTok API获取平台音乐信息
一、引言 TikTok,作为全球领先的短视频社交平台,不仅为用户提供了展示自我、分享生活的舞台,还为用户带来了丰富多样的音乐体验。在TikTok上,音乐与视频内容的结合,为用户带来了全新的视听盛宴。对于音乐制作人、品牌…...
基于yolo的物体识别坐标转换
一、模型简介: 1.1、小孔成像模型简图如下:不考虑实际相机中存在的场曲、畸变等问题 相对关系为: 为了表述与研究的方便,我们将像面至于小孔之前,且到小孔的距离仍然是焦距f,这样的模型与原来的小孔模型是等价的 相对关系为: 二、坐标系简介: **世界坐标系(world coo…...
STM32第七课:KQM6600空气质量传感器
文章目录 需求一、KQM6600模块及接线方法二、模块配置流程1.环境2.配置时钟和IO3.配置串口初始化,使能以及中断4.中断函数 三、数据处理四、关键代码总结 需求 能够在串口实时显示当前的VOC(挥发性有机化合物),甲醛和Co2浓度。 …...
任务4.8.4 利用Spark SQL实现分组排行榜
文章目录 1. 任务说明2. 解决思路3. 准备成绩文件4. 采用交互式实现5. 采用Spark项目实战概述:使用Spark SQL实现分组排行榜任务背景任务目标技术选型实现步骤1. 准备数据2. 数据上传至HDFS3. 启动Spark Shell或创建Spark项目4. 读取数据5. 数据转换6. 创建临时视图…...
五线谱与简谱有什么区别 五线谱简谱混排怎么打 吉他谱软件哪个好
五线谱与简谱作为音乐记谱领域的两大主流系统,各自承载着深厚的历史渊源与独特的表现力,并在全球范围内被不同程度地接受和应用。尽管两者都是为了记录音乐作品中的音高和节奏信息,但其内在机制、适用范围以及学习曲线存在显著差别。下面我们…...
[C#][opencvsharp]C#使用opencvsharp进行年龄和性别预测支持视频图片检测
使用 OpenCVSharp 来调用 age_net.caffemodel 和 gender_net.caffemodel 来进行性别和年龄预测涉及几个步骤。以下是一个简化的流程和示例文案: 1. 准备工作 确保你已经安装了 OpenCVSharp 和相关的依赖项。确保你有 age_net.prototxt、age_net.caffemodel、gende…...
pdf拆分,pdf拆分在线使用,pdf拆分多个pdf
在数字化的时代,pdf文件已经成为我们日常办公、学习不可或缺的文档格式。然而,有时候我们可能需要对一个大的pdf文件进行拆分,以方便管理和分享。那么,如何将一个pdf文件拆分成多个pdf呢?本文将为你推荐一种好用的拆分…...
VScode Python debug:hydra.run.dir 写入launch.json
记录一个debug时的经验: VS code extension名称版本Pythonv2024.8.1Python Debuggerv2024.6.0 我配置的project运行 train.py 时需要在 terminal 输入参数 hydra.run.dirxxx 我想用 vscode debug 查看内部代码,按以往的经验需要将args写入launch.json&…...
ExVideo: 提升5倍性能-用于视频合成模型的新型后调谐方法
标题:ExVideo: Extending Video Diffusion Models via Parameter-Efficient Post-Tuning作者: Zhongjie Duan; Wenmeng Zhou; Cen Chen; Yaliang Li; Weining QianDOI: 10.48550/arXiv.2406.14130摘要: Recently, advancements in video synthesis have attracted s…...
laravel Dcat Admin 入门应用(三)Grid 之 Column
Dcat Admin 是一个基于 Laravel-admin 二次开发而成的后台构建工具,只需很少的代码即可构建出一个功能完善的高颜值后台系统。支持页面一键生成 CURD 代码,内置丰富的后台常用组件,开箱即用,让开发者告别冗杂的 HTML 代码。 larav…...
掌握Llama 2分词器:填充、提示格式及更多
目录 简介Llama 2分词器基础为分词器设置填充添加特殊标记使用BOS和EOS标记进行分词定义填充标记训练中使用填充标记高级功能:掩码标记Llama的提示格式结论 简介 在语言模型领域,时间变化迅速。自Llama 2发布已经有几个月了,但关于其分词器…...
pdf合并,pdf合并成一个pdf,pdf合并在线网页版
在处理pdf文件的过程中,有时我们需要将多个pdf文件合并成一个pdf文件。作为一名有着丰富计算机应用经验的技术博主,我将为您详细介绍如何将多个pdf文件合并成一个pdf文件。 pdf合并方法:使用, “轻云处理pdf官网” 打开 “轻云处…...
算法基础--------【图论】
图论(待完善) DFS:和回溯差不多 BFS:进while进行层序遍历 定义: 图论(Graph Theory)是研究图及其相关问题的数学理论。图由节点(顶点)和连接这些节点的边组成。图论的研究范围广泛,涉及路径、…...
x86和x64架构的区别及应用
x86和x64架构的区别及应用 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在计算机硬件和软件领域,x86和x64是两种常见的处理器架构。它们在计算能…...
2024年度总结:不可错过的隧道IP网站评估推荐
随着网络技术的飞速发展,隧道IP服务成为了许多企业和个人在进行网络活动时的得力助手。作为专业的测评团队,我们经过一整年的深入研究和测试,为大家带来了三款备受瞩目的隧道IP网站推荐——品易HTTP、极光HTTP和一G代理。接下来,我…...
Linux下VSCode的安装和基本使用
应用场景:嵌入式开发。 基本只需要良好的编辑环境,能支持文件搜索和跳转,就挺OK的。 之所以要在Linux下安装,是因为在WIN11上安装后,搜索功能基本废了,咋弄都弄不好,又不方便重装win系统&#x…...
C# 实现websocket双向通信
🎈个人主页:靓仔很忙i 💻B 站主页:👉B站👈 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C# 🤝希望本文对您有所裨益,如有不足之处ÿ…...
Spring Boot结合FFmpeg实现视频会议系统视频流处理与优化
在构建高效稳定的视频会议系统时,实时视频流的处理和优化是开发者面临的核心挑战之一。这不仅仅是简单的视频数据传输,更涉及到一系列复杂的技术问题,需要我们深入分析和有效解决。 高并发与实时性要求: 视频会议系统通常需要支持多人同时进行视频通话,这就意味着系统需要…...
扫扫地,搞搞卫生 ≠ 车间5S管理
在制造业的日常运营中,车间管理是一项至关重要的工作,它直接关系到生产效率、产品质量以及员工的工作环境。然而,许多人常常将简单的“扫扫地,搞搞卫生”等同于车间5S管理,这种误解不仅可能导致管理效果不佳࿰…...
ES(笔记)
es就是json请求体代替字符串查询 dsl查询和过滤,一个模糊查询,一个非模糊查询 must,should 做模糊查询的,里面都是match,根据查询内容进行匹配,filter过滤,term词元查询,就是等值查…...
开箱即用的fastposter海报生成器
什么是 fastposter ? fastposter 海报生成器是一款快速开发海报的工具。只需上传一张背景图,在对应的位置放上组件(文字、图片、二维码、头像)即可生成海报。 点击代码直接生成各种语言 SDK 的调用代码,方便快速开发。 软件特性&…...
力扣每日一题 6/28 动态规划/数组
博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 2742.给墙壁刷油漆【困难】 题目: 给你两个长度为 n 下标从 0…...
[数据集][目标检测]游泳者溺水检测数据集VOC+YOLO格式8275张4类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8275 标注数量(xml文件个数):8275 标注数量(txt文件个数):8275 标注…...
若依 ruoyi 分离版 vue 简单的行内编辑实现
需要实现的效果:双击文本 - 修改文本 - 保存修改。 原码:仅文本显示文字内容 <el-table-column label"商品" align"center" prop"goodsName" width"200" v-if"columns[1].visible" /> 实现…...
【工具】API文档生成DocFX
文章目录 总述示例第一步:安装 DocFX第二步:初始化项目第三步:编辑配置文件第四步:编写文档第五步:生成文档第六步:预览文档第七步:部署文档 总述 DocFX 是一个由微软开发的开源文档生成工具&a…...
出入西安最新通知今天/快排seo排名软件
根据,我写的一篇文章《让程序产生bug,从而达到自我进化,是否能产生真正的智能生命,与人类沟通》的文章(点击打开链接)。我们在在超级计算机里,进化出智能程序,然后将智能程序转移到机…...
网站建设s/找文网客服联系方式
本地存根和本地伪装就是在消费方部署一个实现了目标接口的伪服务。用于在调用真正服务之前,之后的处理工作。其职能有点类似于Spring 的AOP。 为什么要使用本地存根和本地伪装 本地存根 通常情况下,我们调用接口之前都会生成一个请求对象。并且对…...
自己电脑做的网站如何映射到公网/在线优化工具
在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQL语句。对于linux系统熟悉的人都知道linux的cron计划任务,能很方便地实现定期运行指定命令的功能。Mysql在5.1以后推出了事件调度器(Event Scheduler),和linux的cron功能一样&…...
教育网站建设的素材/怎样进行seo推广
所有题目均有五种语言实现。C实现目录、C++ 实现目录、Python实现目录、Java实现目录、JavaScript实现目录...
wordpress 建站/怎么做公司网站
首先,还是先将总体的顺序写出来 1、Laucher组件 首先向AMS(AndroidManagerService)发送一个启动Mainactivity的请求, 这个请求是进程间通信的。 2、AMS首先将要启动的MainActivity组件的信息保留起来,然后向Laucher组件发送一个进…...
wordpress连接丢失/seo关键词优化的技巧
这里写目录标题三种Boot模式的差异在STM32上创建一个汇编工程led汇编闪烁灯总结三种Boot模式的差异 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT…...