- 博客(34)
- 收藏
- 关注
原创 IDEA综合总结
以下内容聚焦 IDEA 开发场景,从核心概念、使用场景、核心区别、IDEA 实操要点四个维度,梳理 String、集合(List/Set/HashMap 等)、异常、线程、IO 流的核心知识点,兼顾理解与实战。String:不可变,优先用常量池,循环拼接用 StringBuilder;集合:根据场景选实现类(查询用 ArrayList,增删用 LinkedList,去重用 HashSet,键值对用 HashMap),IDEA 调试重点看元素 / 状态;异常。
2025-12-27 15:01:08
575
原创 IO流的认识(2)
• 处理流(包装流):嵌套在节点流/其他处理流之上,扩展功能(如缓冲、压缩、序列化、编码转换),是“管道的增强器”(如Java的BufferedInputStream、ObjectOutputStream);数据按“先进先出”顺序传输,无法随机跳读/跳写(除非流支持随机访问,如Java的RandomAccessFile,但这是特殊实现,非标准流特性)——流的传输是“单向线性”的,如同水流过水管,只能按顺序通过。→ 核心差异:线程是否参与IO等待,以及等待的方式(阻塞挂起、轮询检查、异步通知)。
2025-12-22 22:46:24
687
原创 IO流的认识
字节流处理所有数据类型,字符流专注文本(简化编码);节点流对接底层数据源,处理流增强功能;实际开发中优先用缓冲流 + 自动关闭语法,兼顾性能与资源安全。
2025-12-20 14:17:09
892
原创 线程的认识
线程是进程的最小执行单元,共享进程资源,切换开销小;线程创建优先选择Runnable(无单继承限制)或Callable(带返回值);线程状态转换是核心,需理解RUNNABLE与BLOCKEDWAITING的区别;线程安全的核心是 “共享资源的原子操作”,通过Lock、原子类等实现;避免使用废弃方法(如stop()),通过标志位、等实现优雅线程控制。
2025-12-05 18:41:32
785
原创 java中的throw throws try{}catch finally
关键字 / 结构作用使用位置核心特点try-catch捕获并处理异常方法体内部针对性处理特定异常,避免程序崩溃finally定义必须执行的代码(如资源释放)try-catch 块之后无论异常是否发生,必定执行(除强制终止)throw手动抛出异常对象方法体内部主动触发异常,用于业务逻辑错误通知throws声明方法可能抛出的异常方法签名末尾转移异常处理责任,告知调用者需处理异常。
2025-11-22 13:32:40
472
原创 IDEA中的异常
/java.lang.ArrayIndexOutOfBoundsException(数组的下标越界异常)//java.lang.StringIndexOutOfBoundsException(字符串的下标越界)//java.lang.IndexOutOfBoundsException(下标越界的异常)//java.lang.NullPointerException(空指针异常)
2025-11-14 21:10:35
757
原创 Map和HashMap
• 核心用途:高效查询、添加、删除数据(平均时间复杂度O(1)),适用于“通过Key快速定位Value”的场景。• 本质:Java中基于哈希表的Map接口实现,用于存储“键值对(Key-Value)”数据。• 特点:以核心想法为中心,向外发散分支(关联想法、概念),结构灵活,侧重“思维关系呈现”。• 核心用途:头脑风暴、概念关联、项目规划、知识梳理,帮人把杂乱想法结构化、可视化。◦ 键(Key)唯一(重复Key会覆盖Value),值(Value)可重复;• 本质:可视化思维工具,用于梳理、呈现思维逻辑。
2025-11-09 21:22:56
194
原创 HashList HashSet
有序性:HashList 可维护插入顺序,HashSet 无序。去重性:HashSet 自动去重,HashList 需手动控制是否允许重复。效率:HashList 索引访问快(O (1)),但去重和查找效率低于 HashSet。
2025-11-01 13:07:07
141
原创 List集合
2. LinkedList的“坑”:它没有数组的索引优势,用get(int index)会从头/尾遍历查找,速度极慢,需遍历建议用迭代器(Iterator)。• 其他常用:size()(获取长度)、contains(Object o)(判断是否包含元素)、clear()(清空集合)• 删除元素:remove(int index)(通过索引删)、remove(Object o)(通过元素删)添加元素:add(E e)(末尾加)、add(int index, E e)(指定位置加)
2025-10-19 15:43:59
314
原创 IDEA中 String的使用
• 不可变性:String 对象创建后,其内部字符序列(char[])无法修改,任何“修改”操作(如拼接、替换)都会生成 新的 String 对象。Java 的 String 本质是引用类型,并非基本类型,其核心使用围绕“不可变性”展开,常见操作可分为 3 类:基础声明、核心特性、常用方法。◦ concat(String str):拼接字符串(效果同 +,但 + 更灵活,可拼接非 String 类型)。优先从“字符串常量池”查找,若存在则直接引用,不存在则创建后存入,避免重复创建对象,节省内存。
2025-10-05 16:35:46
241
原创 IDEA初体验
"这些语句需要我自己来敲,但是用了IDEA软件后这些就不需要在一个一个的敲了直接用简洁的一串字母直接就生成这些语句了,例如“psvm”“sout”等,在写代码之前,我们需要先新建一个package,在这个包里面创建java,然后我们就可以来编写代码了,写完代码后,可以点右上角的绿色三角或代码的数字列中的三角进行运行,IDEA软件不跟Notepad++一样,IDEA软件如果你之前的代码出现问题,那么你后面写的代码是运行不了的,需要把前面的代码修改正确后才能继续后面的代码。项目管理的模块化设计也值得称赞。
2025-09-20 22:46:58
161
原创 二十、接口
如果引用之间相互强制类型转换,转换的一方为接口类型的引用,则编译一定通过,但是运行的时候分以下两。接口定义好之后,将接口的实现者和接口的使用者分离,借助多态,降低各模块之间的耦合度。注意:遇到接口回调的应用,开发人员需要关注的是根据接口规范,给予接口的实现部分。接口:是一种标准、规范,是接口的实现者和接口的使用者都必须遵循的约定。接口回调:接口定义之后,先有接口的使用者,再有接口的实现者。中的接口之间的继承关系是多继承,一个接口可以有多个父接口。实现类实现接口中的方法时,方法的访问修饰符必须是。
2025-06-19 13:20:48
7028
原创 十九.三个修饰符
(1) final修饰的变量是作用范围内的常量,只允许一次赋值,不允许更改,可以多次被使用。(5) 抽象类中有构造方法,抽象类中构造方法供子类创建对象,先去完成父类对象的创建时应用。(1) 被static修饰的属性称为 静态属性、静态变量、类变量。(3) 特点:静态属性是全类共有的属性,与创建多少对象没有关系。注意:final 修饰的引用,代表引用中存储对象的地址不能改变。(2) 语法:访问修饰符 static 数据类型 属性名;(1) 被abstract修饰符的类称为抽象类。
2025-06-14 22:52:24
183
原创 十八.面向对象的三大特性
a. super() /super(实参) :用在子类的构造方法中,指示创建子类对象时,JVM先去完成父类对象对象创。iii. 作用:将引用中存储的实际对象类型 和 instanceof后面的类型相比较,如果实际对象类型。Iv. 应用场景:父类型的引用利用强制类型转换为子类型时,可以利用 instanceof判断。a. 语法: 子类类名 引用名 = (子类类名)父类型的引用名;父类型的引用 赋值 给 子类型的引用 ,通过强制类型转换。注意:形式参数的数据类型取决于 赋值的属性的数据类型。
2025-06-14 22:51:53
6361
原创 十七. this. 和 this()
this(实参):代表调用本类有参数的构造方法(3) this()/this(实参) 必须定义在构造方法中第一行有效语句。(4) this()/this(实参) 使用时避免出现递归调用/回环调用,所以一个类中构造方法中的第一行不能都。(2) this. 用在类中的成员方法或是构造方法中,代表调用当前对象的属性或是成员方法。(1) this() 用在类中构造方法中,代表调用本类的其他构造方法。(2) this() : 代表调用本类无参数的构造方法。使用this()/ this(实参)
2025-06-14 22:51:14
281
原创 十六.面向对象
1. 语法:类名 对象名 = new 类名();(2) 调用对象的方法:对象名.方法名(实参);(1) 对属性赋值: 对象名.属性名 = 值;调用属性: 对象名.属性名。
2025-06-14 22:50:28
396
原创 十五.数组
(1)写法:数据类型[]数组名;建议写法 int []a;1. 概念: 可以通同时存储多个 相同类型的数据,并且可以对其中的多个数据统一操作。(2)指定数组长度:数组名= new 数据类型[长度];(3)数组的遍历:对数组中的元素进行一一访问的过程。// 通过 a[i] 操作数组的每一个元素。获取数组的长度: 数组名.length。// 用循环的变量 控制 数组的下标。4.字符:空字符(\u0000)5.对象/引用:null。3.布尔:false。
2025-06-14 22:49:58
262
原创 十三.函数
(2) 函数的声明:public static 返回值类型 函数名(数据类型 变量名, 数据类型 变量名2)(1) 语法:public static 返回值类型 函数名(数据类型 变量名,数据类型 变量2){1. 概念:执行特定功能代码组成的一个整体,可以通过名字反复使用。b. 函数的实现:实现对应的函数约定的功能。a. 函数的声明 : 约定函数实现功能 名字(任意)函数的返回值类型、函数名、形参列表称为函数的三要素。// 函数的功能代码->函数的实现(函数体)
2025-06-14 22:48:58
366
原创 十一.循环结构
S1:执行语句序列;S2:判断循环控制表达式是真还是假;S3:如果控制表达式为真,则跳转到步骤S1;S4:如果控制表达式为假,则结束循环,执行循环结构后的其他语句。(直接来说就是先执行do,然后在来判断是否满足while里的条件)S1:判断循环表达式的值是真还是假;S2:如果表达式的值为真,则执行语句序列,并返回步骤S1;S3:如果表达式的值为假,则执行循环结构后的其他语句,相当于突出循环。(2) 如果循环次数不明确时,建议使用 while 或是 do..while。while(循环控制表达式);
2025-06-14 22:47:57
350
原创 十.switch...case
case 值1 : 语句1;case 值3 : 语句3;default : 语句n;case 值2 : 语句2;switch(表达式){
2025-06-14 22:47:25
321
原创 九.if分支
(2) 执行原理:从上往下依次判断,哪一个布尔表达式的结果为true,则执行对应的后面{}中的代码块的内容,执行的原理:如果布尔表达式的结果为true,则执行{}中内容,如果为false,则不执行{}中的内容。执行的原理:如果布尔表达式结果为true,执行表达式1,布尔表达式结果为false,则执行表达式2.(2) 执行原理:先判断外层的if条件,外层if条件成立的情况下,执行内层if结构。// 当 布尔表达式结果为 true时,执行的语句。(1) if(布尔表达式){(2) if(布尔表达式){
2025-06-14 22:36:18
333
原创 八.Java中的导包
1.格式:import包名1.包名2.类名;2.位置:定义在package语句的下面,并且所有类的上面。3.注:import语句可以定义多个,没有限制。
2025-06-14 22:35:41
338
原创 七.Scanner
(3) 输入一个字符串:String s = sc.next();(4) 输入一个字符:char c = sc.next().charAt(0);(2) 输入一个小数: double s = sc.nextDouble();(1) 输入一个整数: int a = sc.nextInt();1. 使用的步骤:创建扫描仪。
2025-06-14 22:35:06
273
原创 六.运算符
eg.a++:先使用 a 原始数据作为表达式的结果,再将a自身加1,++a:先将 a 的数据加1运算,再使用 a 中的数据作为表达式的结果。4.关系运算符:>(大于),>=(大于等于),<(小于),<=(小于等于),!5.逻辑运算符:&&:逻辑与,||:逻辑或,!:逻辑非,&:与,|:或。1.算数运算符:+(加)-(减)*(乘)/(除)%(取余)2.赋值运算符 : = += *= -= /= %=3. 一元运算符: ++(自增) --(自减)
2025-06-14 22:34:36
270
原创 五.数据类型
解析: float类型,虽然 int 和 float 都是 4B ,但是 float 可以采用科学技术法形式存储。a. 用单引号引起来的一个 字符 ,例如:char c = 'A';注:long类型的字面值后面需要加 L 或是 l,通常用 L(区分 数据1和字母l)扩充: 字节 -> Byte简写为B --> 一个字节等于 8位(bite简写 b)面试题目: int 类型变量 和 float类型的哪一个存储的数据范围大一些?c. 以 unicode形式存储:char c3 = '\u0041';
2025-06-14 22:34:05
6391
原创 四.Java中的变量
2.变量的定义:(1)声明变量:数据类型 变量名;(2)声明的同时 赋值:数据类型 变量名=值;数据类型 变量名1,变量名2=值,变量名3;1.概念:存储空间。存储数据的基本单位。(3)同时定义多个同类型的变量;
2025-06-14 22:33:35
85
原创 三.package
2.在java编程中,必须定义在源文件的第一行---->package demo;3.一个源文件最多只能定义一个package。1.就相当于一个文件包的名字。
2025-06-14 22:32:38
166
原创 HelloWorld
3.System.out.println和System.out.print,前者代表控制台打印输出,并且换行,后者代表控制台打印输出,不换行。4.当代码编写结束后,在代码所处文件搜索栏中输入cmd运行代码,首先第一行输入的如图所示。2.main函数:是程序的入口,一个类中只能定义一个主函数。1.class:代表的类,相当于一个容纳代码的容器。其中javac源文件名。
2025-06-14 22:28:18
33
原创 初识DeepSeek
DeepSeek 是一款由杭州深度求索人工智能基础技术研究有限公司开发的人工智能大语言模型及相关产品。它在人工智能领域迅速崭露头角,凭借其强大的功能和开源特性,吸引了众多用户和开发者的关注。DeepSeek 的核心产品是其大语言模型,具备自然语言处理、文本生成、代码辅助、数学推理等多种功能。它的模型架构基于深度Transformer,通过多阶段强化学习训练,能够高效处理复杂的推理任务和多模态内容。例如,DeepSeek-R1 是其首代开源推理模型,性能出色,部分指标甚至超越其他顶尖模型。
2025-03-07 16:11:13
174
原创 初识Java
Java是一种面向对象的编程语言,它具有简洁、高效、可移植性强等诸多优点。它的语法结构清晰严谨,易于学习和理解。初学时,看着一行行代码在屏幕上排列组合,仿佛是在搭建一座座精妙绝伦的建筑。每一个变量、每一个方法,都像是建筑的砖石,而Java的规则则是那精准的图纸,引导着我们去构建出一个个功能强大的程序。
2025-03-07 16:08:12
6484
原创 计算机c语言·
S2:判断循环控制表达式2是否成立,成立执行表达式S3;S4:如果控制表达式为假,则结束循环,执行循环结构后的其他语句。基本规律: 左移2(1)位缩小2位,因为是二进制,但是注意:在移的过程中会把有数的位移走导致不是2的倍数的扩大或缩小,所以计算时要小心。S2:如果表达式的值为真,则执行语句序列,并返回步骤S1;S3:如果表达式的值为假,则执行循环结构后的其他语句,相当于突出循环。a&&b(a与b)将a和b赋值后,两数值同时非0时,输出为真1,a||b(a或b),!
2024-11-26 16:31:10
7129
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅