- 博客(29)
- 收藏
- 关注
原创 JavaEE初阶--从基础到实战:Java 文件操作与数据流读写核心知识点总结
本文介绍了Java中文件操作的基本概念和方法。首先解释了文件的定义和树形目录结构,然后详细说明了Java中File类的常用属性和方法,包括文件创建、删除、目录操作等。接着讲解了文件内容的读写操作,包括InputStream和OutputStream的使用,以及Scanner和PrintWriter的高级应用。最后通过三个实用案例(文件搜索删除、文件复制、内容搜索)演示了文件操作的综合应用。文章提供了丰富的代码示例,帮助读者掌握Java文件处理的核心技能。
2026-01-30 21:44:21
727
原创 JavaEE初阶---《JUC 并发编程完全指南:组件用法、原理剖析与面试应答》
本文深入探讨了Java并发编程的核心技术与实践,主要涵盖以下内容:1. JUC工具包核心组件:详细解析Callable/FutureTask、ReentrantLock、原子类、线程池(ThreadPoolExecutor)等并发工具的原理与使用场景;2. 线程安全方案:对比分析synchronized与ReentrantLock的差异,介绍CopyOnWriteArrayList、ConcurrentHashMap等线程安全容器的实现机制;3. 同步工具:阐述Semaphore信号量、CountDownL
2026-01-11 21:15:37
879
原创 JavaEE初阶--多线程锁策略 + CAS 机制全解析:让你彻底搞懂 synchronized 底层逻辑
前面的多线程初阶中,我们学习了很多关于多线程的知识,比如线程的原理、多线程的使用Thread类的用法、、等待通知机制、多线程的代码案例、多线程安全问题,这个重点--其中锁时很重要的一个知识点。今天我们会学更多的锁。开始我们今天的表演吧!本文系统覆盖多线程并发编程的核心技术:六大锁策略(含适用场景与特性)、CAS 机制(原理、应用、ABA 问题)、synchronized 底层实现(状态升级、自适应策略、优化手段),并整合高频面试考点。
2026-01-07 15:22:38
685
原创 JavaEE初阶--多线程案例
上节博客,我们讲解了线程安全是啥:一段代码,在多线程中,并发执行后,产生bug。问题产生的原因:1)操作系统对于线程的调度是随机的,抢占式执行[根本]。2)多个线程同时修改同一个变量。3)修改操作不是原子性的4)内存可见性->编译器优化5)指令重排序。解决方案:1)加锁:synchronized(锁对象) {需要加锁的代码}//解锁。
2025-12-29 22:59:24
852
原创 JavaEE初阶---线程安全问题
上节博客我们已经了解了线程的几种状态,NEW,RUNNABLE,TERMINATED,BLOCKED,WAITING,TIMED_WAITING这5种状态。今天我们就要一起去了解线程安全问题。let's go!bro到这里,我们的线程安全就已经讲解完了,总结一下:线程安全问题的根源是 线程抢占式调度 与 共享资源并发修改 的矛盾。解决核心是通过 加锁机制 保证操作的原子性、可见性和有序性。正确使用 synchronized 是Java中解决线程安全问题的基础且有效的手段!下节预告:多线程案例。
2025-12-17 14:41:03
1157
原创 JavaEE初阶--线程的状态
上节我们讲解了Thread类的方法和属性:如开始一个线程的方法start(),中断一个线程interrupted()……等等,今天我们就将一下线程的几种状态吧。开始我们的正文吧。今天我们学习了线程的几种状态,NEW--new了线程,但还没有开始运行;RUNNABLE--是线程在运行当中;BLOCKED--表示要等待锁被取走(开锁),才能被唤醒;WAITING--是死等;TIMED_WAITING是有时间限制的等待被唤醒。TERMINATED--线程已经完成了的状态。!
2025-12-08 22:56:07
670
原创 JavaEE初阶--T和read类的方法、属性
上节博客我们已经了解了我们为什么要使用线程和在Java中怎么创建一个多线程程序--Thread类,我们初步了解并使用Thread类创建多线程的5种方法。今天我们继续就Thread类开。讲我们已经把Thread类的属性和方法都已经讲解完了,并且我们还使用代码来进行说明。下节预告--线程的状态。
2025-11-26 22:58:40
978
原创 JavaEE初阶--Thread类
上一节我们了解了计算机是怎么工作的,其中我们详细讲解了进程这个重要的知识点。现在我们来回忆一下,进程的调度:1。进程的状态2.进程优先级;3.进程的上下文;4.进程的记账信息。线程,线程是在进程的基础上衍生出来的。为什么我们要使用线程,接下来我会说明。这节博客我们一起学习了线程的概念和我们为什么要使用线程;学习了进程和线程的区别以及最后我们一起学习了创建线程的5种方法,不用都懂,但是我们要认识他们,避免在工作中不认识的情况,我们只需挑一种作为我们来使用多线程开发就行了。!
2025-11-19 21:36:42
907
原创 JavaEE入门--计算机是怎么工作的
在大家的陪伴下,我们成功经历了数据库这一冒险章节,我们就要开启新的冒险篇章。本节就是新篇章的开端—计算机是怎么工作的!上述内容就是我们本节的知识,尤其是进程和cpu这块的知识很重要,可能会有很多,大家要结合例子理解性的记忆和把他们吃透。下节预告—>JavaEE初阶–Thread类。
2025-11-11 22:17:36
699
原创 数据库--JDBC编程
前面我们都是在MySQL的编辑界面上敲代码,而这节课我们就要把SQL代码在我们的Idea上进行编写。废话不多说开始我们的旅程!提示:以下是本篇文章正文内容,下面案例可供参考实际开发中,SQL是很少手动输入的,绝大部分的SQL都是通过代码,自动执行的,这个时候就需要让其他编程语言(本节是使用Java)来操作数据库。而MySQL是一个客户端/服务端架构的语言,根据MySQL提供API写个数据库客户端时非常容易的。比如Oracle,SQLServer,SQLite等数据库都有API。
2025-10-28 23:45:42
660
1
原创 数据库--事务的学习
前面我们语句学习了数据库的视图和索引,接下来我们开始数据库–事务的学习,开始我们的旅程。事务把一组SQL语句打包成一个整体,在这组SQL的执行过程中,要么全部成功,要么全部失败。这组SQL语句可以是一条也可以是多条。在不同的环境中,都可以有事务。对应数据库中,就是数据库事务!简单来说:事务是属于能够把多个SQL给打包到一起,变成一个整体。这里举个例子我在短视频平台上有幸刷到过一个青年蜕变为男人的视频,内容大概是青年买好那时最新的手机和一捧玫瑰花,最后准备跟他当时的女神进行深情告白。
2025-10-24 19:51:05
776
1
原创 数据库--视图、索引
上节博客我们一起了解了数据库的联合查询相关的知识,相信大家已经掌握了相关的知识。那么今天就开始我们新的内容:视图、(本章的重点,HR可能会问)以及。
2025-10-19 12:46:05
1014
原创 数据库--数据库约束和表的设计
反面例子:学生表学号,姓名,年龄,班级名,学校(还能进行拆分:学校名,学校地址,学校电话),而且并没有一个数据类型用来表示学校。再比如说,我没写文档的时候,每个段落都有一个编号和标题:1.概述;2.标题1;3.标题23.1子标题1……可以继续拆分再关系型数据库中绝对不允许的第二范式再满足第一范式的基础上,不存在非关键字段对任意候选键的部分函数依赖(存在复合主键的抢矿下)。非关键字段:可以理解为非主键字段。候选字段:可以理解为主键、外键、没有主键时的唯一键。
2025-10-05 16:05:38
887
原创 数据库--增删查改操作
CRUD是对数据库中的记录进行基本的增删查改操作:create(创建)retrieve(读取)update(更新)delete(删除)xianxian。
2025-09-20 18:41:03
1207
原创 数据结构入门--顺序表(Java版)
在我们学完JavaSE后,我们开始进入了数据结构的学习,我们打开数据结构的大门迎接我们的第一个朋友就是线性表,他还有两个兄弟:顺序表和链表。所谓数据结构就是存储数据的方式就像我们制作一张表:我们把数据写在表中,有很好的结构化,看得很舒服。有同学会问C语言数据结构和Java语言数据结构有什么不同?
2025-09-14 12:58:06
1122
原创 数据库的操作
上次,我们介绍了数据的基本知识,现在我们开始数据库的操作。没有下载MySQL的看过来:从下载到运行:MySQL 详细安装配置完整教程_mysql安装教程-CSDN博客我们下载了MyQL之后,我们会有这个点击之后会得到输入密码就得到这个界面,密码输错了会闪退了,成功了就得到以下数据,我们就可以进行数据库的操作。我下载的MySQL是>=8.0版本,SQL语言的书写大小写都可以识别。我统一使用小写,方便观看。其中4个默认系统数据库的作用需重点了解:注意:这4个数据库是MySQL安装后自动生成的核心组件,慎重不要乱
2025-09-06 22:24:14
879
原创 数据库基本的认识
SQL(Structured Query Language) 是结构化查询语言的简称,是一种数据库查询和程序设计语言用于存取数据以及查询、更新和管理关系数据库。4.2SQL分类1.DDL【Data Definition Language] 数据定义语言,用来维护存储数据的结构代表指令:create,drop,alter2.DML[Data Manipulation Language] 数据操作语言,用来对数据进行操作代表指令:insert , delete,update,select.
2025-08-28 15:07:55
533
原创 Java数据结构--HashMap和HashSet
上词我们了解的TreeMap和TreeSet的使用和其底层结构--二叉搜索树的实现和使用,今天我要讲解的是Map和Set中的HashMap和HashSet这两种数据结构.
2025-08-20 13:34:26
1077
原创 Java数据结构--链表
一起学习编程的友友们,我以及经历JavaSE的学习到了数据结构这个篇章,在数据结构中我们了解时间和空间复杂度的是什么以及怎么计算。到数据结构的一个重点篇---链表是一种存储结构,数据元素的是通过链表中的次序实现的。链表有一系列(链表中每一个元素称为节点)组成,节点可以在运行时动态生成。每个节点包括两部分:一个是存储数据元素的;另一个是存储下一个节点地址的。相比于线性顺序结构,操作复杂。
2025-08-13 16:30:31
824
原创 Java数据结构--TreeMap和TreeSet
要想知道TreeMap和TreeSet就要知道Map和Set是什么原理的数据结构,以前常见的 搜索方式有: 1. 直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢 (后面讲)2. 二分查找,时间复杂度为O(logN),但搜索前必须要求序列是有序的这里所说的搜索效率与器具体的实例化子类就是我们本章博客要讲的TreeMap和TreeSet这两个数据结构.要想了解TreeMap和TreeSet这两个数据结构,就要知道他们两个的底层结构是什么?
2025-08-09 15:53:05
774
原创 Java数据结构--排序
我们在学习C语言这门编程语言时候,老师曾在课堂上讲过冒泡排序的代码,并且在我们的代码练习作业和期末时候都出现过,算比较重要的一个代码。而冒泡排序仅仅只是排序算法中的一种,而我们这节主要学8种排序算法,帮助我们更好的去解题。入图,
2025-08-03 20:14:44
866
原创 Java数据结构---对象的比较
上节我们讲了优先级队列,优先级队列在插入元素的时候必须插入能与之比较的元素,插入null是无法比较的。那在优先级队列中能否插入自定义类型的对象呢?这代码会报错,如图 为什么我们的>和<无法进行对象之间的比较呢,而==却可以进行比较呢,因为:1.1.1重写equal方法代码实现,如下omparble是JDK提供的泛型的比较接口类,源码实现具体如下:对用用户自定义类型,如果要想按照大小与方式进行比较时:在定义类时,实现Comparble接口即可,然后在类 中重写compar
2025-07-31 15:08:19
516
原创 Java数据结构--优先级队列(堆)(PriorityQueue)
但有些情况下,,在这种情况下,数据结构就应该提供了两个基本操作,一是返回最高优先级对象;二是添加新的对象,这种数据结构就是优先级队列。
2025-07-27 12:30:35
1127
原创 Java数据结构 - - -二叉树
我们把JavaSE学完,就到数据结构了,不管是用C语言还是Java语言实现,其中的思路和方法都是互通的,我们学了顺序表,链表,栈和队列,接下来就到了我要说的树了。其实我要讲的二叉树其实是的子类,而分为二叉树,红黑树,二叉搜索树等。我的核心就是二叉树。二叉树的定义每个节点最多与两个子节点(左子节点和右子节点(或左子树和右子树))我用一个图来向你展示二叉树的庐山真面目上图就是一个典型的二叉树 ,这里需要注意一下。
2025-07-21 15:10:33
714
原创 Java- 代码块
静态代码块一般用于某些需要类在执行之前就要执行的代码,和静态方法类似,优先级都高于类,两者的不同是静态方法需要手动通过类名,方法名来调用,而静态代码块是自动执行的,在加载类前会先执行类中的静态代码块。在继承中,对象初始化的时候会先执行父类的静态代码块,然后是子类的静态代码块,接着自行父类的构造代码块和无参构造方法,最后执行子类的构造代码块和无参构造方法。对象调用方法的时候先检查类中 是否有静态代码块,先执行静态代码块,再检查是否有构造代码块,最后执行构造方法。静态代码块->构造代码块>构造方法;
2025-06-23 19:07:41
196
原创 继承与多态(继承篇)
上述图示中Cacao和AppleTree都继承了Tree类,继承之后子类能使用父类的成员及方法,子类在实现时只需要关心自己增加的成员。子类对象是有两部分组成的,就像父子 父子,得先有父才有子,所以在构建子类构造方法时,会先调用父类的构造方法,在调用子的构造方法。2.如果父类构造方法是有参数的,子类构造方法也要显示出来,并在子类构造方法中选择合适的父类构造方法,否则编译失败。子类继承父类后,必须要添加自己特有的成员,体现出与父类的不同,否则就没有继承的必要了。到这里,我们的继承就已经讲完了,字由多,请见谅!
2025-05-31 17:15:49
660
2
原创 Java类和对象
如果我们通过new关键字实例化了很多个对象,都用同一个setDate方法,在这个方法内是是怎么区分哪个对象调用setDate中的year,month,day。我们都知道Java是一门面向对象的语言,那在Java中“对象”是一个真实存在的实体。我们来举一个例子:我们洗衣服时,人,洗衣机,衣服,洗衣粉,是四个对象,答:this代表当前对象的引用.解决了一个问题,又来一个,当前对象是指什么?现在我们知道什么是类,以及怎么去定义,现在我们怎么去用?上面我们已经把这个类定义好了,PetDog是我们的对象,
2025-04-06 15:57:17
260
3
原创 我学习编程之旅
首先我为什么想要学习编程?这是因为我看了关于黑客的电影以及在短视频平台上看到的,让我产生了浓厚兴趣。我就开始自己去钻研,通过哔哩哔哩以及CSDN等关于程序员的软件和视频去学习,充实自己的学识。学完之后,我会去在洛谷,力扣,牛客等网站,写题锻炼自己的逻辑思维,以及算法。第二个,我想通过自己的努力去加强自己的能力。
2024-11-14 19:26:01
115
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅