
开发语言
文章平均质量分 69
Java,C语言
不修×蝙蝠
程序员养成记
展开
-
Java详解---多线程
方式优点缺点适用场景继承Thread类实现简单,直接使用Thread类单继承限制,功能有限简单的线程任务,不需要返回结果实现Runnable接口避免单继承限制,更好的扩展性需要额外创建Thread对象大多数并发任务,不需要返回结果实现Callable接口支持返回结果和异常处理,与线程池结合使用代码复杂,需要使用和Future需要线程返回结果的复杂任务方法所属类作用是否释放锁是否需要捕获异常使用场景wait()Object使线程等待并释放锁是否。原创 2025-02-16 00:25:22 · 763 阅读 · 0 评论 -
Java--IO流详解 (Ⅰ)--字符流
Reader和 Writer是字符流的核心抽象类(基础)。FileReader和 FileWriter用于文件的字符读写。和 BufferedWriter提供缓冲功能,优化读写性能(高级)。和 StringWriter用于从字符串中读取或写入字符。原创 2025-02-13 23:08:18 · 1196 阅读 · 0 评论 -
Java--集合(理论)上
泛型就是在集合中指定存储的数据类型,而且只能存储这种类型,在List<类型>必须要指定, ArrayList<>可以指定也可以不指定。注意:基本数据类不能作为泛型(但是基本类型的包装类可以用。原创 2025-02-11 21:16:06 · 998 阅读 · 0 评论 -
Java--IO流详解(Ⅲ)--相互转换(含Properties详解)
前面介绍了这么多IO流字节流和字符流的定义和方法,现在有必要说一下这两者之间互相转化的问题,即“桥梁”。原创 2025-02-14 18:13:20 · 1246 阅读 · 0 评论 -
Java--IO流详解(Ⅱ)--字节流
在中已经,详细介绍了有关IO流中的字符流板块以及相关方法,在此介绍另一板块字节流的定义和相关方法。从本质上来说,字符流是基于字节流实现的。字符流在处理数据时,会先使用字节流读取字节数据,然后根据指定的字符编码将字节数据转换为字符。字节流本质上和字符流是类似的。核心类自然是不同,但是核心类中包含的常用方法和相关使用定义却大差不差。原创 2025-02-13 23:54:42 · 447 阅读 · 0 评论 -
Java详解---异常机制
错误是指程序运行时出现的严重问题,通常是程序无法处理的,且不应该被程序捕获或处理。错误通常表示程序的运行环境出现了问题,或者程序本身存在严重的设计缺陷。异常是指程序运行时出现的不正常情况,通常是可以被程序捕获和处理的。异常的存在是为了让程序能够在遇到问题时,通过某种方式恢复或优雅地终止,而不是直接崩溃。自定义异常在项目中很常见,项目中一些和业务相关的异常,这些异常就需要我们自定义处理。【注:我们定义的异常要继承RuntimeException(Exception大类中唯一一个运行时异常类),在类中。原创 2025-02-14 22:09:37 · 667 阅读 · 0 评论 -
每日小题--递归
书店店员有一张链表形式的书单,每个节点代表一本书,节点中的值表示书的编号。为更方便整理书架,店员需要将书单倒过来排列,就可以从最后一本书开始整理,逐一将书放回到书架上。请倒序返回这个书单链表。[1,4,6,3]原创 2025-01-03 11:08:51 · 184 阅读 · 0 评论 -
Java关键字--static
子类的构造方法,不管是有参构造还是无参构造,它都会先去寻找父类的无参构造方法,如果父类没有无参构造方法,那么子类必须使用super来调用父类的有参构造方法,否则编译不通过。注意:静态代码块对于定义在它后面的静态变量,可以赋值,但是不允许访问。由此可见,静态代码块的运行顺序是优先于其他,所以这里同样解释了为什么静态方法不能使用this和super关键字(因为运行这些静态方法时可能还不存在父类子类--尚未运行)原创 2025-02-11 18:23:28 · 960 阅读 · 0 评论 -
Java---文件
如果该文件不存在,并且具备创建文件的权限和条件(例如,D:\aaa 目录存在且有写入权限),那么 createNewFile() 方法会尝试在该路径下创建一个新的空文件 hello.txt,创建成功后返回 true。检查文件是否存在:createNewFile() 方法会首先检查在文件系统中,file 对象所代表的文件路径下是否已经存在对应的文件。创建目录和创建多级目录差别不大,本质就是通过file去确定指定抽象路径下是否存在对应的文件或目录,不存在就利用。原创 2025-02-12 12:12:25 · 557 阅读 · 0 评论 -
Java--集合(理论)下
在中已经对Collection做了详细的介绍,现在展开对Map的介绍。原创 2025-02-12 11:55:44 · 861 阅读 · 0 评论 -
Java---每日小题
给你一个下标从开始的整数数组nums,其长度是2的幂。对numsnnumsn == 1newNumsn / 2inewNums[i]inewNums[i]newNumsnums执行算法后,返回nums中剩下的那个数字。1重复执行算法会得到下述数组。第一轮:nums = [1,5,4,2]第二轮:nums = [1,4]第三轮:nums = [1]1 是最后剩下的那个数字,返回 1。nums = [3]33 就是最后剩下的数字,返回 3。2。原创 2024-12-06 17:36:40 · 1005 阅读 · 0 评论 -
计算机工作流程
PC接着自增1(2-->3),接着PC把当前指令的地址给到MAR,MAR拿到地址后,根据地址去存储体中拿出指令并放到MDR,在CPU控制下,这个指令被放到IR中,IR将这条暂存的指令分为操作码和地址码两个部分;PC接着自增1(1-->2),接着PC把当前指令的地址给到MAR,MAR拿到地址后,根据地址去存储体中拿出指令并放到MDR,在CPU控制下,这个指令被放到IR中,IR将这条暂存的指令分为操作码和地址码两个部分;,把这条数据(c=1)放到X中,在CU的控制下,执行+c的操作,并将结果放到ACC中。原创 2024-12-20 21:22:52 · 615 阅读 · 0 评论 -
⭐Java---反射--获取类信息⭐
运行后输入类名字"Java.Demo"原创 2024-12-04 21:42:15 · 330 阅读 · 1 评论 -
数据结构--二叉树的创建和遍历
二叉树是指树中节点的度不大于2的有序树,即每个节点最多有两个子节点,通常被称为左子节点和右子节点。二叉树可以是空树,或者由一个根节点和两棵互不相交的、分别称为左子树和右子树的二叉树组成。原创 2024-11-30 23:52:52 · 1193 阅读 · 0 评论 -
指针应用---逆转链表
给出一个链表,在不创建新链表的前提下,将它逆转过来。原创 2024-11-18 14:13:47 · 195 阅读 · 0 评论 -
数据结构--数组实现栈和队列
数据结构是计算机中存储、组织和管理数据的方式,它决定了数据如何被存储以及如何进行高效访问和修改。原创 2024-11-24 08:58:09 · 465 阅读 · 0 评论 -
快慢指针应用---环型链表的应用
已经了解了快慢指针的应用原理,引申:用快慢指针去判断链表是否成环。原创 2024-11-18 12:56:50 · 160 阅读 · 0 评论 -
数据结构--链表实现栈和队列
在这篇文章中我们已经用数组实现了栈和队列,那么我们再练习一下链表实现吧!原创 2024-11-24 15:03:30 · 423 阅读 · 0 评论 -
⭐Java详解---强制转化⭐
上面给出了两种数值转换的概念,第一种是short转成int类型,由于short是16位的,int是32位的,此时就是低精度转为高精度,所以编译器会自动进行类型转换,是安全的,不用强转(因为这种转换是安全的,不会丢失任何信息,只是简单地扩展了符号位)而第二种则是让int类型转成short,高精度转低精度,不安全,强制类型转换,short只能存储低16位的数据,高16位的位置就舍弃了,所但凡int的高16位存有数据,此时的强转就会发生数据丢失。方法重写是多态性的关键所在,它允许子类提供父类方法的具体实现。原创 2024-11-20 13:16:55 · 2392 阅读 · 0 评论 -
每日小题--使三个字符串相等
给你三个字符串s1s2和s3。你可以根据需要对这三个字符串执行以下操作。在每次操作中,你可以选择其中一个长度至少为2的字符串 并删除其的字符。如果存在某种方法能够使这三个字符串相等,请返回使它们相等所需的操作次数;否则,返回-1。2对 s1 和 s2 进行一次操作后,可以得到三个相等的字符串。可以证明,不可能用少于两次操作使它们相等。-1因为 s1 和 s2 的最左位置上的字母不相等,所以无论进行多少次操作,它们都不可能相等。因此答案是 -1。s2s3。原创 2024-12-04 12:24:25 · 290 阅读 · 0 评论 -
HashSet应用
子数组 [nums[0],nums[1]] 和 [nums[1],nums[2]] 的和相等,都为 0。注意即使子数组的元素相同,这两个子数组也视为不相同的子数组,因为它们在原数组中的起始位置不同。元素为 [4,2] 和 [2,4] 的子数组有相同的和 6。注意,这两个子数组起始位置的下标必须。是一个数组中一段连续非空的元素组成的序列。没有长度为 2 的两个子数组和相等。如果这样的子数组存在,请返回。原创 2024-12-02 10:30:03 · 961 阅读 · 0 评论 -
数据结构--二叉树删除树节点
有了上述概念后,就可以顺利的编写:原创 2024-12-02 09:51:43 · 835 阅读 · 0 评论 -
Java详析--泛型
在-->这篇文章中,我们已经详细介绍了有关Java泛型的相关理论,其中包括引入泛型的原因,以及使用泛型时的注意事项,那么在这里,我们从泛型实现原理、实操,以及泛型相关引申角度再析Java泛型。原创 2024-11-29 13:27:38 · 1095 阅读 · 0 评论 -
每日小题--使两个位相等的位更改次数
给你两个正整数n和k。你可以选择n的中任意一个值为 1 的位,并将其改为 0。返回使得n等于k所需要的更改次数。如果无法实现,返回 -1。2最初,n和k的二进制表示分别为和我们可以改变n的第一位和第四位。结果整数为。0n和k已经相等,因此不需要更改。-1无法使n等于k。原创 2024-12-03 21:01:04 · 382 阅读 · 0 评论 -
一些基础定义
**MESI协议**:是最著名的缓存一致性协议之一,它定义了缓存行的四种状态:修改(Modified)、独占(Exclusive)、共享(Shared)和无效(Invalid)。- **PCM的细节**:利用材料的相变特性,如从非晶态到晶态的变化,来存储数据。- **DRAM的细节**:每个存储单元由一个电容和一个访问晶体管组成,面积小,功耗低,但速度慢,需要刷新操作。- **全相联缓存**:每个主存块可以映射到缓存的任何位置,这减少了冲突失效,但增加了硬件复杂性和成本。这是缓存设计的基本原则之一。原创 2024-11-27 15:30:17 · 502 阅读 · 0 评论 -
每日小题--独一无二的出现次数(内含HashMap释)
当。原创 2024-11-24 09:45:50 · 862 阅读 · 0 评论 -
Java详解---抽象类
而在Java的概念中,抽象类就是这么一个特殊类:在Java中,如果一个类被abstract关键字修饰,那么这个类就被称为抽象类。抽象类不能实例化,即不能使用new关键字来创建抽象类的对象。抽象类的主要目的是为子类提供一个通用的模板,让子类能够继承并实现其中的抽象方法。原创 2024-11-20 14:39:58 · 871 阅读 · 0 评论 -
Java详解--泛型
规范而言,泛型,即“参数化类型”。在泛型使用过程中,数据类型被设置为一个参数,在使用时再从外部传入一个数据类型;而一旦传入了具体的数据类型后,传入变量(实参)的数据类型如果不匹配,编译器就会直接报错。原创 2024-11-25 13:28:42 · 935 阅读 · 0 评论 -
Java详解---super关键字
super关键字只能在子类中使用,并且只能用于直接调用父类的成员。在子类的构造方法中,如果没有显式调用super()或this(),那么子类的构造方法会默认调用父类的无参构造方法。如果父类没有无参构造方法,那么子类必须显式调用父类的某个构造方法,否则会编译错误。综上所述,super关键字在Java中主要用于在子类中引用父类的成员或在子类中调用父类的构造方法,以及在实现接口的类中调用接口的默认方法。原创 2024-11-20 14:31:14 · 323 阅读 · 0 评论 -
Java详解--枚举
/声明后,固定好就是这么几个对象(没有public构造器,即不能再被外部new对象)AA(10,"小点点"),BB(20,"中点点"),CC(30,"大点点"),DD(40,"老点点"),EE(50,"大黄蜂");private MMM(int a,String b){//可以设私有的构造方法,同时,上面枚举定义的对象就要是自带的格式Java枚举提供了一种类型安全的方式来定义一组常量,并且支持字段、方法和构造函数,使得枚举类型更加灵活和强大。原创 2024-12-04 21:29:43 · 585 阅读 · 0 评论 -
快慢指针的应用---找到链表中间位置
什么是快慢指针?通常而言,快指针每次移动的间隔大于慢指针,至于这个间隔究竟是多少,则就视题目情况而定。给出一串链表串,请找出它们的中间位置数据。原创 2024-11-18 12:12:02 · 203 阅读 · 0 评论 -
⭐Linux指令大全⭐---有这一篇就够了
{work}是变量引用的方式之一,可以写成$work,但是建议使用${work},方便阅读。三、⭐vim的使用⭐1.打开文件vim file【注:vim file默认打开file文件,但是当file文件不存在时,vim就会创建一个file文件并且打开它】原创 2024-11-15 18:19:14 · 766 阅读 · 0 评论 -
⭐Java修饰符
访问--决定了它们。原创 2024-11-18 11:31:22 · 669 阅读 · 0 评论 -
Java基础08(类与对象)
静态方法是依托类存在的,像下面这种没有new,以指针形式存在的数据,无法调用类才具备的方法们,除非让它指向一个对象。e.g 父类里面的toString()方法就是用来获取数据类型和内存地址。【注:此时对ee和rr的修改并不会影响到原数据,因为进行了深拷贝】能通过类名直接调用的是静态方法,通过对象调用的是非静态方法。如下的访问器实际上并不安全,把数据的内存地址给暴露出去了。private--只能自己类内调用,不能被其他类调用。面向对象的特征:封装,继承,多态,抽象。单个元素,默认就是深拷贝的。原创 2024-11-11 00:15:35 · 564 阅读 · 0 评论 -
合并两个有序数组
给你两个按排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你nums2到nums1中,使合并后的数组同样按排列。最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m + n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n。需要合并 [1,2,3] 和 [2,5,6]。合并结果是 [,2,,5,6] ,其中斜体加粗标注的为 nums1 中的元素。原创 2024-11-08 19:09:19 · 513 阅读 · 0 评论 -
验证回文串---每日小题
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个。字母和数字都属于字母数字字符。给你一个字符串s,如果它是,返回true;否则,返回false。true"amanaplanacanalpanama" 是回文串。false"raceacar" 不是回文串。s = " "true在移除非字母数字字符之后,s 是一个空字符串 ""。由于空字符串正着反着读都一样,所以是回文串。原创 2024-11-15 23:49:07 · 351 阅读 · 0 评论 -
Java重点--多线程
只需要照着说明调用就好,不需要了解底层逻辑。域就是属性,属性就是域(域.属性就是除却方法外的那些,属于大类的特性e.g .age,.name)原创 2024-11-12 23:40:28 · 1103 阅读 · 0 评论 -
解题--多数元素
此算法用到了一个很重要的算法--摩尔投票算法,详细参见--你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。原创 2024-11-08 23:44:36 · 425 阅读 · 0 评论 -
最后一个单词的长度---每日小题
单词的长度。原创 2024-11-15 22:57:06 · 291 阅读 · 0 评论 -
Java基础07
如图下图:每个case中都有一个break,如果没有这个break,就不会跳出case,直到遇见break为止。原创 2024-11-11 00:03:55 · 747 阅读 · 0 评论