- 博客(72)
- 收藏
- 关注
原创 【算法】二分查找总结篇
本文总结了【算法之路】中的三篇二分查找文章,通过做题和对二分查找的理解,写出本文,旨在帮助大家理解二分查找,并且可以独立解决二分查找的题目
2025-03-29 20:44:00
915
原创 【JavaEE】UDP数据报套接字编程
本文讲解有关网络编程的基本概念以及UDP通信的过程和如何用代码实现。其中我们需要掌握DatagramSocket和DatagramPacket这两个UDP通信的核心搭档。还需要知道两者之间的关系(本文中,我们将其比喻为"邮局"和"信件"的关系以加深理解)。在最后我们提供了代码练习(通过学习的知识创建一个回显服务器-客户端)。希望本文能帮助大家理解UDP通信。
2025-03-27 16:28:09
1022
原创 【JavaEE】初识网络原理
本文讲解了网络原理的通信基础。如IP地址、端口号、网络协议、协议分层、TCP/IP五层网络模型以及网络数据通信时的封装和分用大致过程
2025-03-05 19:04:41
1508
2
原创 【算法】手撕二分查找
本文用一万八千字讲解了二分查找的三种常见实现模板以及其中细节。如:左右边界初始值设置、循环条件、中间下标写法、左右边界更新语句、返回值。
2025-03-03 15:54:44
849
原创 【数据结构】哈希表
本文讲解有关哈希表的定义以及它的主要实现类HashMap,并详细讲解了HashMap中的常用方法。此外,我们这里还介绍了哈希表的另外两种实现类:HashTable和ConcurrentHashMap。讲解了HashMap、HashTable和ConcurrentHashMap三者的区别
2025-02-25 17:12:10
1761
原创 BufferedReader Vs Scanner(竞赛必看)
本文讲解了正则表达式,StringTokenizer和BufferedReader如何使用,以及BufferedReader的几种竞赛用法(与Scanner相比)
2025-02-07 22:58:52
945
原创 Java多线程(进阶)
本文以三万字讲解了多线程知识点,如synchronized关键字、常见的锁策略、锁升级策略、读写锁、锁优化、CAS、原子类、ThreadLocal、JMM(Java内存模型)、volatile关键字、wait和notify方法以及多线程案例,线程池,JUC等知识点。
2024-12-20 11:01:29
921
原创 联合查询(详细篇)
实际开发中往往数据来自不同的表 所以需要多表联合查询 多表查询是对多张表的数据取笛卡尔积简单来说 笛卡尔积是两个表的乘积 结果集中的每一行都是第一个表的每一行与第二个表的每一行的组合简单理解:假设有两个表A和B 表A有m行 表B有n行 当对这两个表进行笛卡尔积操作时 生成的结果集将包含m*n个记录 这是因为结果集中的每一行都是表A中的一行与表B中的一行的组合示例:假设有两个表,一个是学生信息表(student),另一个是班级信息表(class)学生信息表(student):班级信息表(class):对这两个
2024-10-13 09:58:34
1100
原创 排序篇(七大基于比较的排序算法)
然后再重新建大堆 直到每个元素都与根节点交换过现在呢 我们先进行建大堆:首先呢 先创建parent child两个变量parent指向最后一棵树的根 child指向最后一棵树的子树 然后依次将每棵树置成大堆即:让child指向子树元素较大的 若child指向位置的元素大于parent处的元素 则交换然后令parent-- 直到parent走到0下标处接下来我们给出上述图片转化为大堆的过程图当child指向超过下标最大值时 siftDown结束展示代码:
2024-09-18 09:23:25
1095
原创 深入理解StringBuilder和StringBuffer
1.字符数组的可变性:StringBuffer 和 StringBuilder 内部使用的是一个可变的字符数组(尽管是私有的,外部不能直接访问)。这意味着它们可以在不需要创建新对象的情况下修改字符串内容。2.字符串的不可变性:相比之下,String 对象在Java中是不可变的。一旦一个 String 对象被创建,它就不能被修改(即你不能改变它包含的字符序列)。如果你需要修改一个字符串,你必须创建一个新的 String 对象。
2024-09-13 11:43:52
901
原创 11.异常(java版)
程序先执行try中的代码如果try中的代码出现异常就会结束try中的代码看和catch中的异常类型是否匹配如果找到匹配的异常类型就会执行catch中的代码如果没有找到匹配的异常类型就会将异常向上传递到上层调用者无论是否找到匹配的异常类型中的代码都会被执行到在该方法结束之前执行).如果上层调用者也没有处理的了异常就继续向上传递一直到main方法也没有合适的代码处理异常就会交给JVM来进行处理此时程序就会异常终止。
2024-06-26 17:32:33
668
原创 10.String类和内部类(补充)
注意:虽然StringBuilder和StringBuffer是可变的 但它们并不是在”原本的字符串“上进行修改当我们使用StringBuilder和StringBuffer的append、insert等方法时 只是在其内部维护的字符数组上执行操作(不是原本的字符串上修改)
2024-06-04 19:05:27
909
原创 8.继承和多态
和继承类似组合也是一种表达类之间关系的方式也是能够达到代码重用的效果。组合并没有涉及到特殊的语法诸如extends这样的关键字),仅仅是将一个类的实例作为另外一个类的字段。
2024-05-25 16:01:55
720
原创 7.类和对象
this引用指向当前对象成员方法运行时 调用该成员方法的对象,在成员方法中所有成员变量的操作,都是通过该引用去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成this 引用 是指向 调用成员方法的对象实例的,它允许你访问该对象的成员变量和调用该对象的其他成员方法。比如说:这里this引用指向d2(调用成员方法setData的对象实例)this引用的特性1. this的类型:对应类的类型引用,即哪个对象调用就是哪个对象的引用类型2. this只能在。
2024-05-23 14:28:26
710
原创 6. 数组
我们知道创建一个变量的步骤:类型 变量名=初始值;我们数组类似(java版):元素类型[] 数组名但这和我们C语言会有所不同例如:(C语言版)
2024-05-17 15:07:02
971
原创 5.方法的使用
刚开始时,形参year的值是与x的值一致(实参的拷贝),但执行year=100后,使得func方法中year的值变成100.即使这两个变量名字相同,但它们是两个独立的存储位置,分别存储着不同的值。由于方法签名必须唯一,所以即使方法名相同,只要参数列表不同(即参数类型、数量或顺序中的至少一个不同),这些方法就被视为不同的方法,从而实现了方法重载。编译器在解析调用哪个方法时,会根据调用时提供的参数类型、数量和顺序与已定义的方法进行匹配,找到匹配度最高的方法(即最精确匹配的方法签名)进行调用。
2024-05-17 09:08:03
905
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人