- 博客(36)
- 收藏
- 关注
原创 编程基础:队列核心知识点(6)
函数功能push(x)队尾入队pop()队首出队(无返回值)front()获取队首元素back()获取队尾元素size()返回队列元素个数empty()判断队列是否为空3. 注意点。判满/判空:通常预留一个空位,以(rear + 1) % MAXN == front作为队满条件,front == rear作为队空条件。STL的queue不支持随机访问,只能通过front()/back()访问队首、队尾元素。if ((rear + 1) % MAXN == front) { // 队满。
2025-12-28 23:58:52
430
原创 编程算法:数据结构与算法核心知识点(5)
典型应用:矩阵转置、杨辉三角构建(利用递推公式arr[i][j] = arr[i-1][j] + arr[i-1][j-1])。省略行初始化:只能省略行,不能省略列,如int arr[][3] = {{1,2},{4,5}};前缀和数组:[0, -2, 3, 9, 16, 83, -7, 5, 39, 119]原数组:[0, -2, 5, 6, 7, 67, -90, 12, 34, 80]全部初始化:int arr[2][3] = {{1,2,3},{4,5,6}};遍历结束,栈顶元素即为表达式结果。
2025-12-28 23:56:22
151
原创 Java IO框架
字符流:以字符为单位传输数据,仅能操作文本类型的文件,像.java、.txt、.html、.c等可通过记事本打开的文件;流(Stream):内存与存储设备之间传输数据的通道/管道,数据借助流完成读写传输,类比水库通过管道向脸盆输水的过程。数据存储的问题:程序运行时数据默认存储在内存中,内存存储是临时的,程序重启后数据会丢失,无法实现持久化。字节流:以字节为单位传输数据,可操作所有类型的文件,比如文本、图片、音频、视频等。如果对象的属性是自定义类型的对象,那么该自定义类也必须是可序列化的;
2025-12-27 23:38:59
295
原创 Java多线程
计时等待(Timed Waiting):调用sleep(long m)后进入,超时后回到就绪状态。无计时等待(Waiting):调用join()或等待数据输入时进入,条件满足后回到就绪状态。定义类实现java.lang.Runnable接口,并重写run()方法(封装线程任务);就绪状态(Ready):调用start()后进入,等待操作系统选中并分配时间片。终止状态(Terminated):run()方法结束,线程任务完成并释放时间片。sleep()/join():Running → 等待状态;
2025-12-27 23:37:43
254
原创 编程基础:核心知识点(4)
容量管理:`capacity` 获取最大容量、`size` 获取元素个数、`empty` 判断是否为空、`reserve` 预分配容量、`resize` 调整长度。- 元素修改:`push_back` 尾部插入、`pop_back` 尾部删除、`insert` 迭代器位置插入、`clear` 清空元素(容量不变)。- 迭代器使用:`begin`/`end` 正向遍历,`rbegin`/`rend` 反向遍历,需注意数组扩容后迭代器可能失效。- 经典算法:打印99乘法表,外层控制乘数,内层控制被乘数。
2025-11-25 16:45:00
242
原创 finally的应用
4. `try{}catch(){}catch(){}catch(){}finally{}`:多异常捕获+必执行代码。5. `try{}finally{}`:无异常捕获,但有必执行代码(适用于只需保证资源释放的场景)2. `try{}catch(){}catch(){}catch(){}`:多异常类型捕获。3. `try{}catch(){}finally{}`:异常捕获+必执行代码。1. `try{}catch(){}`:基础异常捕获处理。// 任何情况下都必须执行的代码。}catch(异常类名 e){
2025-11-24 23:37:02
314
原创 Java异常处理
多catch结构:可添加多个`catch`块,程序从第一个`catch`开始匹配异常类型,匹配成功则执行对应处理逻辑,确保异常被针对性解决,避免程序终止。- 运行时异常(RuntimeException):Java编译器不检查,运行时才会出错,可避免、可处理也可不处理,比如空指针异常、数据类型转换异常。- 已检查异常(CheckedException):Java编译器会强制检查,出现时编译不通过,必须处理,比如IO异常、类找不到异常。- 语法:`throw new 异常类名("异常描述信息")`。
2025-11-24 23:32:22
306
原创 编程基础:核心结构与算法(3)
逻辑:按运算符(+、-、*、/)匹配case,除法分支中先判断除数是否为0,再执行计算或提示错误;- 构建过程中,需频繁获取权值最小的节点,常用优先队列(最小堆)实现高效操作,默认按权值从小到大输出,可通过重写运算符调整排序规则。2. 合并:每次选取权值最小的两个节点,合并为一个新节点(新节点权值为两子节点权值之和),将新节点加入集合后重新排序。- 执行逻辑:先判断,再执行,将“初始化、条件、迭代”整合在同一行,结构更紧凑。- 适用场景:已知循环次数的场景(如遍历固定长度的数组、计算1到100的和)。
2025-11-24 23:17:22
350
原创 编程基础:核心知识(2)
`(不等于)、`>`(大于)、`<`(小于)、`>=`(大于等于)、`<=`(小于等于)。- 位与(&):两个数字对应二进制位均为1时,结果位为1,否则为0;- 核心规则:左子树所有节点的值小于根节点的值,右子树所有节点的值大于根节点的值(左小右大)。- 节点构成:每个节点包含数据、左孩子指针(指向左子节点)、右孩子指针(指向右子节点)。- 前序遍历:顺序为“根节点→左子树→右子树”(先访问根,再递归遍历左右子树)。- 位或(|):两个数字对应二进制位有一个为1时,结果位为1,否则为0。
2025-11-10 21:57:38
253
原创 Java Map体系集合
boolean containsValue(V value):判断集合中是否包含指定value,返回true或false。- boolean containsKey(K key):判断集合中是否包含指定key,返回true或false。- V remove(K key):根据指定key删除对应键值对,返回被删除的value。- V get(K key):通过key查询并返回对应的value。- 存储形式:以键值对(Key-Value)为基本单位存储数据。- 线程安全性:线程不安全,运行效率较高。
2025-11-10 21:49:43
309
1
原创 Java 集合框架(2): Set 接口
去重要求:与 `HashSet` 相同,需覆盖 `hashCode()` 和 `equals()` 方法。最常用的实现类是 `HashSet`,此外还有 `LinkedHashSet`、`TreeSet` 等。// 输出 false。- 是 `SortedSet` 接口的实现类(`SortedSet` 是 `Set` 的子接口)。- 原则:内容相同的对象返回 `true`,此时该对象不会被插入到 `Set` 集合中。- 若 `equals()` 返回 `false`(内容不同),则添加元素。
2025-10-24 20:16:04
338
1
原创 编程基础:从语言到数据结构与算法(1)
时间复杂度:算法执行时间随输入规模增长的趋势,用大O表示,常见的有`O(1)`(常数时间,如访问数组元素)、`O(n)`(线性时间,如遍历数组)、`O(logn)`(对数时间,如二分查找)、`O(n²)`(平方时间,如嵌套循环)。- 自动类型转换:小范围类型(如`int`)自动转换为大范围类型(如`double`),避免数据丢失,比如`int`和`double`运算时,`int`会先转为`double`再计算。int *p = #`表示`p`指向`num`的地址,`*p`可获取或修改`num`的值)。
2025-10-24 20:11:55
637
原创 Java 集合框架(1)
Comparator 位于java.util 包中,是函数式接口,只有一个抽象方法 int compare(T t1, T t2),编程人员可自定义排序规则,同时还具有部分默认方法和静态方法,用于表示比较器。- boolean addAll(int index, Collection c):将集合 c 中的元素一次性插入到集合中指定下标位置。- 实现类:Collection 接口没有直接的实现类,需通过子接口(如 List、Set)的实现类来使用。i < 集合名.size();
2025-10-14 21:16:46
267
原创 Java String 类及相关字符串类
`public int indexOf(String str)`:在当前串中查找`str`出现的下标,存在则返回`str`第一个字符的下标,不存在返回`-1`。- `public int indexOf(String str, int fromindex)`:从指定下标`fromindex`开始查找`str`出现的下标。另一个在堆空间中(内容也为`"world"`)。- `public boolean contains(String str)`:判断当前字符串中是否包含`str`。
2025-09-29 16:40:09
421
原创 Java包装类
基本数据类型转字符串:可以通过包装类的`toString()`方法,如`String s1 = i4.toString();例如在学生类中,用`Double`类型的`score`属性,若学生没考试,`score`可设为`null`表示成绩无效;若考试成绩为`0`,则表示成绩有效。`,也可以通过`valueOf`方法创建:`Integer i2 = Integer.valueOf(10);- 包装类转基本数据类型:使用`intValue()`等方法,如`int a1 = i1.intValue();
2025-09-18 23:24:54
296
原创 Object 类常用方法
自动回收机制:当 JVM 内存耗尽,无法为新创建的对象分配内存空间时,会一次性回收所有垃圾对象,并自动调用对象的 `finalize()` 方法。若要比较两个对象的内容是否一致,需用 `equals` 方法(通常需在自定义类中重写 `equals` 方法)。应用场景:常用于判断两个引用中实际存储的对象类型是否一致,若一致结果为 `true`,否则为 `false`。作用:比较两个对象的内容是否相同,内容一致返回 `true`,否则返回 `false`。若两端是引用数据类型的变量,`==` 比较地址。
2025-09-18 23:09:02
318
原创 IntelliJ IDEA的安装(Java开发工具)
访问JetBrains官网([https://www.jetbrains.com/idea/download/](https://www.jetbrains.com/idea/download/)),官网会自动识别Windows系统,点击对应版本的“Download”按钮(社区版选“Download”,旗舰版选“Download .exe”)。2. 左侧选择“Java”,右侧确认“Project SDK”已自动识别已安装的JDK(若未识别,点击“Add SDK”手动选择JDK安装路径),点击“Next”。
2025-09-18 22:49:10
783
原创 第十七章 反射 设计模式
程序运行期间,可动态获取类的信息,并基于这些信息实现创建类的对象、调用类的方法、操作类的属性等功能,让程序具备动态编程能力。1. 通过具体类对象的 getClass() 方法,从已创建的对象获取对应类的 Class 对象。- getInterfaces() :获取类实现的接口的 Class 对象数组,可遍历获取接口信息。- Class :代表类的元数据,用于获取类的各种信息(如所属包、父类、实现的接口等 )。- getName() :获取类的全路径名称(包含包名 )。
2025-06-15 21:45:00
281
原创 第十六章 IO流
基于字节节点流,设内存缓冲区。BufferedInputStream (基于 InputStream , read 读 )、 BufferedOutputStream (基于 OutputStream , write / flush 写 )。BufferedReader (基于 Reader , read 读字符、 readLine 读行 )、 BufferedWriter (基于 Writer , write 写字符/串/数组、 newLine 写换行、 flush 刷新 )。
2025-06-15 09:15:00
415
原创 第十五章 多线程
Thread.sleep(long 毫秒) :线程睡眠,计时等待,到期回就绪态,不抢 CPU。- join() :调用线程优先执行,当前线程进入等待,待其完成后回就绪态,等待时不抢 CPU。- 原理:线程执行时,其他线程无法进入,默认锁对象是 this (需保证 this 唯一)。2. 就绪:调用 start 后进入,等待抢 CPU,不执行逻辑。- 原理:线程需抢锁执行代码,抢到则进入,执行完释放锁,其他线程再抢。- run() :执行线程逻辑,但不启动新线程,在原线程运行。
2025-06-15 01:00:00
235
原创 第十四章:异常
3. 含 finally 格式: finally 代码必执行(无论是否异常 ),常用于关闭资源(如 IO 流、数据库连接 ),支持多种组合形式(如 try - finally )。2. 运行时异常(未检查异常):直接继承 RuntimeException 的异常,运行时可能触发,处理灵活(可处理、也可不处理 )。1. 编译时异常(已检查异常):直接继承 Exception 的异常,编译阶段必须处理,否则程序无法执行。- 抛出异常类型:子类 ≤ 父类(子类异常是父类异常的子类 )。
2025-06-15 00:00:00
579
原创 第十三章:集合
还有 remove (删除键值对 )、 containsKey (判断是否含指定 key )、 containsValue (判断是否含指定 value )、 size (获取长度 )、 clear (清空 )、 isEmpty (判断是否为空 )等方法。数据为键值对( key - value ),体现数据间一对一映射关系, key 不重复、 value 可重复, key 最多一个 null 、 value 可多个 null。
2025-06-14 19:15:00
420
原创 第 十二章:常用类
包含获取字符串长度( length() )、按下标取字符( charAt(int index) )、比较内容( equals 、 equalsIgnoreCase )、判断包含( contains )、转字符数组( toCharArray )等方法,还有查找子串下标、大小写转换、判断首尾、去除空格、拆分字符串等功能方法。3. toString() :未被 final 修饰,子类可覆盖,返回对象字符串形式,通常需覆盖,将对象属性拼接成字符串返回,便于打印对象信息。一、Object 类。
2025-06-14 16:15:00
446
原创 第十一章:内部类
1. 特点:类无自己的类名,是特殊局部内部类;1. 无参数、无返回值:接口名 引用 = () -> { // 方法实现 } ,若方法实现部分只有一条语句, {} 可省略。2. 语法:通过 new 父类/接口名() 形式,在创建对象时直接定义类的实现(如方法重写等 ),然后调用相关方法。2. 有参数、无返回值:接口名 引用 = (参数名,参数名) -> { // 方法实现 } ,参数类型可省略。对匿名内部类进一步简化,减少代码冗余,主要用于实现函数式接口(接口中仅有一个抽象方法 )。
2025-06-14 10:45:00
161
原创 第十章:接口
继承与实现结合:类实现多个接口时可继承一个父类,语法是 class 类名 extends 父类 implements 接口1,接口2 ,需先继承父类,再实现接口。接口支持多继承,一个接口可继承多个父接口,语法为 interface 接口名 extends 父接口1,父接口2 ,实现类需实现所有父接口的方法。但接口引用调用方法,仅能调用自身定义的方法。- 多实现:一个类能实现多个接口( class 类名 implements 接口1,接口2 ),需覆盖所有接口抽象方法,否则为抽象类。
2025-06-14 01:00:00
342
原创 第九章:三个修饰符
被 static 修饰的代码块是静态代码块,定义在类内、方法外,语法为 static{ // 静态代码块 }。作用是类加载时完成静态属性初始化,类加载指 JVM 首次使用类时,读取 .class 文件信息并存储到内存,一个类仅加载一次,加载时机包括首次访问静态属性/方法、首次创建对象。静态属性基于类存在,所有对象共享,可通过 类名.静态属性名 (推荐 )或 对象名.静态属性名 使用。被 final 修饰的类,不能被继承,无子类,像 System 、 Math 等工具类常被 final 修饰。
2025-06-14 00:30:00
282
原创 第八章:面向对象-三大特性
super() / super(实参) :子类构造方法第一行有效语句,告知 JVM 调用父类对应构造方法创建父类对象,子类构造无指定则默认调用父类无参构造。- 子类覆盖父类方法后,调用时优先用子类方法;- 父转子:父类型引用赋值给子类型引用,需强制类型转换,实际对象类型与转换类型一致则运行通过,否则报类型转换异常。- 子类定义与父类方法名、返回值类型、形参列表相同的方法,子类访问修饰符需与父类相同或更宽。- super.属性/方法 :子类方法、构造方法中,访问父类属性、方法。
2025-06-13 22:45:00
106
原创 第七章:面向对象
类包含属性(成员变量,定义在类内方法外,有默认值,作用范围至少本类,可声明并初始化,需同步完成 )和方法(定义在类内其他方法外,由修饰符、返回值类型、方法名、形参等构成,有声明和实现部分,方法名用驼峰命名法 )。对象可给属性赋值( 对象名.属性名 = 值 ,值类型匹配属性定义 )、使用属性( 对象名.属性名 ),还能调用方法( 对象名.方法名(实参) )。访问本类成员变量/方法,解决成员变量与局部变量命名冲突(冲突时用 this. 区分成员变量,无冲突可省略 ),可用于构造方法和成员方法。
2025-06-13 18:36:57
306
原创 第六章:数组
数组在内存中空间连续,数组名存储的是数组在内存的首地址。数组是连续的存储空间,可存储多个相同类型数据,便于统一管理,其关键因素为长度(可存数据数量)与数据类型(存储数据的类型)。当原数组长度不足时,需创建更长新数组(通常为原长度 2 倍 ),把原数组元素复制到新数组,再用新数组地址覆盖原地址。数组下标从 0 开始,依次递增,最大下标为 数组长度 - 1 ,它是访问数组元素的索引依据。变量存在局限,一个变量仅能存一个数据,且变量间相互独立,难以统一管理,数组由此应运而生。
2025-06-13 17:13:36
279
原创 第五章:函数
return 还能结束当前函数,其语句在分支结构中定义,一个函数里同时仅能执行一条 return 语句,非 void 类型函数必须有 return 语句。2. 调用:程序从 main 函数开始执行,遇到函数调用时,优先执行被调用函数,执行完带着返回值回到调用处,继续执行 main 函数后续内容。函数定义时,约定调用者需传递的数据类型和参数名,相当于函数内局部变量,可直接用参数名操作数据,但不能有命名冲突。被调用函数内部又调用其他函数,形成嵌套,按调用顺序依次执行。
2025-06-13 11:00:00
255
原创 第四章:循环结构
1. 语法:初始化后, do 执行循环体、改变量, while(条件) 判断, true 继续。1. 语法:先初始化变量, while(条件) 判断, true 执行循环体与变量改变。含循环变量初始化(设起始值)、循环条件(判是否继续)、循环变量改变(防死循环)。1. 语法:变量初始化、条件、改变集中头部,控制循环体执行。通过条件重复、规律执行代码(循环体),处理批量、重复逻辑。循环内套完整循环,分外层(外部)、内层(内部)循环。先判外层条件,满足再判内层条件,逐层执行。
2025-06-13 09:45:00
218
原创 第三章 分支结构
3. 多重分支结构:形式为 if(判断条件 1){ // 语句 1 }else if(判断条件 2){ // 语句 2 }...else{ // 语句 n }。执行流程是从上到下依次判断条件,满足则执行对应 {} 内语句,条件个数依业务需求定。2. if...else 结构:语法 if(判断条件){ // 语句 1 }else{ // 语句 2 }。1. 基本 if 结构:语法为 if(判断条件/布尔表达式){ // 语句 }。(二)等值分支结构(switch...case )
2025-06-13 01:15:00
289
原创 第二章:变量、数据类型、表达式、运算符
1. 算数运算符:包含 + (加法、字符串拼接 ,两端为数值做加法,一端为字符串做拼接 )、 - (减法 )、 * (乘法 )、 / (除法 )、 % (取余 )、 ++ (自增 , a++ 先使用再自增, ++a 先自增再使用 )、 -- (自减 ,类似自增逻辑 )。2. 赋值运算符: = (基本赋值 )、 += (如 a += 1 等价 a = a + 1 )、 -= 、 *= 、 /= 、 %= 等,简化赋值操作。,初始化 Scanner 用于获取输入。
2025-06-13 00:45:00
290
原创 第一章 Java的环境搭建
1995年Sun公司推出的面向对象语言,专注后端开发,处理业务逻辑与数据库交互,和其他语言分工不同。打开命令行,输入java -version和javac -version,显示版本信息即配置成功。- JDK(Java 开发工具包):含 JRE、编译器、工具和类库,开发需安装 JDK ,1. 规则:由数字、字母、_、$组成,不能以数字开头,区分大小写,禁用关键字和保留字。2. 命名风格:类名首字母大写,变量/方法名驼峰命名,包名全小写,常量名全大写。- 作用:分类管理类文件,避免命名冲突,实现模块化。
2025-06-12 20:24:39
296
原创 DeepSeek认知:暗流涌动的技术异端与边缘革命
在主流AI沉迷于暴力参数扩张时,DeepSeek的研发团队秘密构建了——从深海章鱼的拟态神经网络到蜜蜂的偏振光导航机制,自然界3.7亿年的进化密码被编译成72种新型算子。:模仿人类胚胎期大脑皮层生长模式,实现参数空间的自组织坍缩:借鉴电鳗放电原理,动态调节注意力机制的能量消耗:将模型切割为800个可独立进化的认知单元,模拟珊瑚礁生态系统这种离经叛道的设计理念,使得DeepSeek在少样本学习任务中展现出诡异能力:仅用17张工业X光片就能构建出超越人类专家的缺陷检测模型,而传统方法需要3万张标注样本。
2025-03-07 23:59:31
785
原创 初识Java
在云原生时代,Java通过GraalVM实现了原生编译,Quarkus框架将启动时间缩短至0.008秒。这个走过四分之一个世纪的语言,仍在持续进化。选择Java不仅是在学习编程语言,更是掌握了一种工程化思维范式——严谨的封装设计、清晰的架构分层、稳健的异常处理,这些能力在任何技术栈中都将熠熠生辉。当你在IntelliJ IDEA中敲下第一个main()方法时,开启的将是一段通向数字文明核心的奇幻旅程。
2025-03-07 23:52:05
855
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅