- 博客(45)
- 问答 (1)
- 收藏
- 关注
原创 【javase-improved】第二篇:Java反射机制
1. Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。(反射可以获得类中的任意一个属性即使这个属性是private修饰的可见反射的功能的强大之处)2.加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看。
2023-04-09 15:12:00 1083 11
原创 【javase-improved】第一篇:详解多线程“前世今生“
可能通过叙述还不能完全理解,让我们用一个实例来练习一下交替打印:使用两个线程印 打印 1-100。线程1, 线程2 交替打印。
2023-04-01 16:48:31 860 17
原创 【数据结构与算法】第十九篇:回溯,剪枝,N皇后问题
🥳🥳回溯可以理解为:通过选择不同的岔路口来通往目的地(找到想要的结果)1.每一步都选择一条路出发,能进则进,不能进则退回上一步(回溯),换一条路再试2. 树、图的深度优先搜索(DFS)、八皇后、走迷宫都是典型的回溯应用。
2023-01-25 15:45:20 1941 4
原创 【数据结构与算法】第十七篇:图论万字解析(进阶篇)
👀作者简介:大家好,我是 快到碗里来~🚩🚩 个人主页:快到碗里来~✔系列专栏:数据结构与算法⚡⚡⚡(❁´◡`❁)励志格言:在我有生之日,做一个真诚的人,不放弃对生活的热爱和执着,在有限的时空里,过无限广大的日子。(by 三毛)🤞🤞。
2022-12-30 21:08:02 823 30
原创 【数据结构与算法】第十六篇:图论(基础篇)
🌎 数据结构包括物理结构和逻辑结构,其中逻辑结构又包括线性结构和非线性结构,树,图都属于非线性结构。(直接或间接的路径),则称 x 和 y 是连通的(任意两个节点之间都有相互抵达的路径)如果一个有向图,从任意顶点出发无法经过若干条边回到该顶点,那么它就是一个有向无环图。任意两个顶点之间都可以用边来表示它们之间的关系,边集E可以是空的。◼ 如果无向图 G 中任意2个顶点都是连通的,则称G为连通图。◼ 有向完全图的任意两个顶点之间都存在方向相反的两条边。如果一张图即使连通图又是有向图则他是强连通图。
2022-12-14 10:13:12 999 2
原创 【数据结构与算法】第十五篇:快速,希尔排序
我们只需只需执行这个操作swap(begin, begin + (int)(Math.random() * (end - begin)));如果默认将第一个元素作为轴点元素,如果输入数组元素是随机的那是可以接受的,如果输入数组是预排序的或者是反序的,那么就会产生一个恶劣的分割,因为所有点的元素会被统一规划到一边。2.(1) 数组从右向左进行遍历,如果end位置的数据比缓存的轴点元素(pivot)数大,则直接进行end–,因为右边 本来就是存储比轴点元素大的元素。他的平均运行时间是O(Nlog。
2022-10-29 21:55:01 516 3
原创 【数据结构与算法】第十四篇:插入,归并排序
因为再不断归并的过程中,由于对于每一个子数组都进行了有序化,所以逆序对再不断减少,直到最后逆序对逐渐转化为0,该数组完成了排序。
2022-10-22 23:42:52 1111 5
原创 【数据结构与算法】第十三篇:冒泡,选择,堆排序
何为原地算法?(1)不依赖额外的资源或者依赖少数的额外资源,仅依靠输出来覆盖输入(2)空间复杂度为 𝑂(1) 的.冒泡排序就属于原地算法,在本数组内进行复杂度为O(1)的交换。
2022-10-16 16:13:58 1159 19
原创 【数据结构与算法】第十二篇:Trie(字典树)
1. Trie 也叫做字典树、前缀树(Prefix Tree)、单词查找树。◼ Trie 的优点:搜索前缀的效率主要跟前缀的长度有关。◼ Trie 的缺点:需要耗费大量的内存,因此还有待改进。2. Trie 搜索字符串的效率主要跟字符串的长度有关。
2022-10-08 23:10:17 804 7
原创 【数据结构与算法】第十一篇:优先级队列
优先级队列其实就是一个对列,在接口设计与大部分运用上都是一致的,但是普通队列与优先级队列不同的是:普通的队列都是遵循 FIFO 原则,也就是先进先出原则,优先级队列则改变了这个原则,优先级队列是根据一个准则设计优先级,优先级高的先进行出队,而优先级低的则后进行出队。既然优先级对列是根据优先级大小进行出队的操作的,我们很容易想到上节课提到的二叉堆中的最大堆,如果我们自己设计优先级,将优先级最高的放在最大堆的堆顶,便能很好的解决这个问题。由于优先级队列也是对列,所以接口设计基本与普通队列相同。
2022-10-06 17:12:47 884 13
原创 【数据结构与算法】第十篇:二叉堆
◼ 堆(Heap)也是一种树状的数据结构(不要跟内存模型中的“堆空间”混淆),常见的堆实现有二叉堆(Binary Heap,完全二叉堆)多叉堆(D-heap、D-ary Heap)索引堆(Index Heap)二项堆(Binomial Heap)斐波那契堆(Fibonacci Heap)左倾堆(Leftist Heap,左式堆)斜堆(Skew Heap)这里我们主要讨论二叉堆,二叉堆又分为最大堆和最小堆。
2022-09-30 21:17:17 956 13
原创 【数据结构与算法】第九篇:哈希表原理
上节集合,映射我们实现了用红黑树实现了映射(TreeMap);虽然红黑树能够很好的实现映射的各项功能,但是红黑树自身有很多局限性,比如:1.TreeMap中的key必须是具备可比较性的2.元素的分布是有顺序的。但是在现实很多需求中,是不要求 Map的key必须有顺序的,并且不要求key必须具备可比较性。哈希表就能很好的解决这两个问题,并且能使平均时间复杂度达到O(1).其实哈希表就是用一个数组进行实现的,具体的场景可以看以下是实例:◼ 设计一个写字楼通讯录,存放所有公司的通讯信息座机号码作为 k
2022-09-23 16:26:25 1292 16
原创 【数据结构与算法】总结篇:中缀表达式转后缀表达式 与 表达式树
同样是借助一个栈,然后对表达式进行扫描,如果扫描到是是数字或者字符则直接入栈,如果扫描到的是运算符,则弹出栈顶两个元素,重新构造二叉树。’运算符比‘+’运算符的优先级高,所以循环执行出栈操作,直到运算符优先级小于‘+’。由于’+'的运算符优先级等于‘+’,所以栈内运算符都被弹出,‘扫描到的+’入栈。根据表达式树的前序遍历,中序遍历,后序遍历,我 们分别可以得出常见的三种表达式,前缀表达式,中缀表达式与后缀表达式,然后扫描遇到‘+’号,乘号的运算级高于’+‘号,所以称号直接弹出栈输出,’+'号入栈。
2022-09-12 09:16:33 3493 38
原创 【数据结构与算法】第七篇:集合,映射
上面我们提到,映射有两个关键的存储数据key value.映射由 红黑树来实现,在红黑树中如果添加的是相同元素会实现覆盖操作,所以用红黑树实现的映射默认没有重复元素,所以我们不难看出如果我们把红黑树中的value 去掉不就符合集合的所有要求了吗,所以我们完全可以用映射来实现集合。映射( Map) 在有些编程语言中也叫做字典(dictionary,比如 Python、Objective-C、Swift 等)。对于集合接口我们主要是维护它的遍历方法以及访问器。对于集合它的主要用途是常用于去重。
2022-09-05 22:01:07 478 16
原创 【数据结构与算法】第六篇:红黑树
理清亲子关系//自定义内部类-->红黑树类型 public static class RBNode < E > extends Node < E > {//为什么默认为红色:因为默认为红色的情况下对于红黑树的几个条件除了 //出现连续红色节点可能不满足,其余条件都满足,所以更加的适合将红色设置为默认颜色 //更容易使红黑树的性质得到满足 //4不满足的可能情况使出现两个连续的红色子节点 public RBNode(E element , Node < E > parent) {...
2022-08-31 21:09:21 672 12
原创 【数据结构与算法】第五篇:B树
本章主要探讨B树的一些性质,不涉及到代码层面的编写,因为B树与红黑树具有一定的等价性,所以理解B树是理解红黑树的前提。后面红黑树章节我们也会提到红黑树与四阶B树具有完全等价性。
2022-08-27 17:10:20 1413 22
原创 【数据结构与算法】第四篇:AVL树
这个概念很简单,就是节点左子树高度减去节点右子树的高度,如果差值的绝对值小于等于1,就是平衡的,反之就是失衡的。),能够很好的解决链表O(n)的复杂度,但是二叉搜索树仍然有很大的提升空间,比如说如果我们为二叉搜索树添加元素,但是我们添加的元素都是有规律的从小到大或者从大到小就会使其退化为链表。AvL树就是一种二叉搜索树的改良的树,它继承与二叉搜索树,而且节点类型新增了高度属性,最重要的是能实现自平衡功能,保证了代码的运行效率。具体代码细节可以移步代码仓库----->◼ 让p成为这棵子树的根节点。
2022-08-25 17:12:51 513 19
原创 【数据结构与算法】第三篇:二叉搜索树
有两种方式---->(1)通过类实现Comparable接口,重写compareTo方法指定比较逻辑(或者直接利用Comparable自带的)(2)通过比较器重写比较逻辑)🤡不允许为 null。
2022-08-14 17:25:34 684 29
原创 【数据结构与算法】第二篇:二叉树
1)在同样高度的二叉树中,满二叉树的叶子节点数量最多、总节点数量最多(2) 满二叉树一定是真二叉树,真二叉树不一定是满二叉树。
2022-08-09 15:34:12 1273 20
原创 【数据结构与算法】第一篇:栈,队列
接口设计源码分析源码个方法的功能分析✔✔注意pop与peek的区别!!4.leetcode练习:有效的括号有效字符串需满足:提示:具体题意请点击这里哈✔✔✔✔✔二.队列(Queue)1.队列基础认知接口设计源码框架3.单端循环队列循环队列本质也是动态数组实现的他主要解决以下空间利用与特殊需求的问题:如图4.双端队列(1)接口设计注意:和单端对列不同的两处 1.是从对头入队2.是从对尾出队(链表可以很好的解决这两个问题)5.双端循环队列三.leetcode:用
2022-08-06 11:35:43 550 28
原创 【javase基础】第十八篇(项目):开发团队调度软件
✔✔在学完javase基础部分,许多知识带你还需我们巩固强化。下面我们一起来做一个小项目对先前知识进行一个梳理复习吧!该项目主要涉及(1)类的继承性和多态性(2)对象的值传递、接口(3)static和final修饰符(4)特殊类的使用包装类、抽象类、内部类(5)异常处理等知识点!🦇🦇🦇super();super(s);}}...
2022-07-30 09:14:12 1320 26
原创 【javase基础】第十七篇:异常(Exception)
super();super(s);//自定义异常如果继承自Exception,则必须在方法后后声明有异常,继承RuntimeException,则不需要//建议继承Exception(因为必须声明,便于程序的阅读以及注意到异常)publicstaticvoidmain(String[]args)throwsMyException{}}NullPointerException异常源码java基础语法题单✔✔httpshttpshttpshttpshttps。...
2022-07-21 08:24:31 353 40
原创 【javase基础】第十六篇:“抽丝剥茧“String细节点
二.字符串之间的比较及内存原理1.方式一:引用之间的比较示例一:🤩🤩实例中str1 str2 str3都是”hello“为什么会有不一样的判断结果?这就涉及到了内存结构(特别注意的是这里比较都是引用之间的比较):示例二:🤩🤩由图可知:str3指向的是堆中的”hello“,str指向的是堆中字符常量池中的”hello“由于是引用之间的比较所以str 和str3是不相同的。3.方式二:内容之间的比较(equals)1.使用场景及注意事项🤩🤩str3.equals(str2)对于这种...
2022-07-11 21:45:02 863 36
原创 【javase基础】第十五篇:图书管理系统
设计一个图书管理系统,根据管理员和普通用户分类,实现不同的功能菜单,对图书系统进行管理。(通过代码实现简单登录,以及客户端,用户端功能的设计。)1,项目主体大致分为三类,和书相关的类,和操作相关的类,和用户相关的类。(因此需要定义三个包:book,operation,User)2.因为图书管理系统书是主要的元素,所以需要定义一个Book类,来表示书。定义一个Booklist类(顺序表:本质是数组)来存储书籍。3.关于操作包内需要根据需求,具体定义类来实现具体要求的功能3.用户包中,定义一个抽象use
2022-07-09 15:23:42 1468 28
原创 【javase基础】第十四篇:深入浅出“多态与接口”
🌎向上转型的概念:父类调用子类对象 三种时机:1.直接赋值 2.传参3.返回值3.运行时绑定🔥🔥上面的代码只有子类有eat方法,但是如果父类也有eat方法,则两个eat方法构成了重写。上面的图中提到向上转型是父类调用子类对象,但是父类只能调用父类本身被子类继承过去的成员(也就是父类本身自己的成员),那么按照推断。Animal animal=new cat(“mimi”,18);animal1.eat()应该调用自己本身的eat.打印“父类吃”。但结果却出人意料。请看下方截图在子类中写一...
2022-06-29 23:19:08 623 34
原创 【javase基础】第十三篇:java类的继承
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础⚡⚡⚡(❁´◡`❁)励志格言:当命运之神把你推向那勇敢的时刻,希望你能够像你想象中那么勇敢。(by 罗翔)🤞🤞.........
2022-06-18 09:38:15 487 28
原创 <java>leetcode.适合集中处理的几道链表题
🌎🌎思路演示🌎🌎代码实现大家也来试试吧👏👏:题目链接(反转链表:电脑打开)🌎方法:快慢指针🌎🌎代码实现:大家也来试试吧👏👏:查找链表中间节点(电脑打开)🌎🌎思路演示:🌎🌎代码展示:大家也来试试吧👏👏:删除指定元素的所有节点思路解析(双指针): 快慢指针从同意起点,快指针先走k-1步,此时加上fast本身。fast和slow相差k个节点,此时fast与slow同步一步一步向后走。当fast走到最后一个节点,slow恰好在倒数第k个节点🌎🌎代码展示:...
2022-06-16 19:41:30 370 28
原创 【javase基础】第十二篇:单链表框架搭建
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础⚡⚡⚡(❁´◡`❁)励志格言:问题是怎样让工业的车轮继续转动,而又不增加世界上的财富。必须生产出货物来,却又必须不去将之分配。实践中,只能通过不断的战争才能达到这一目标。(from 《1984(纪念版)》)🤞🤞分为带头节点的单链表和不带头节点的单链表🌎带头节点的单链表带头节点的单链表就是单独有一个节点作为整个单链表头,此时这个头的指向固定,永远为头部,不会被改变...
2022-06-03 15:56:23 655 42
原创 【javase基础】第十一篇:顺序表多项功能的实现
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础⚡⚡⚡(❁´◡`❁)励志格言:真实的自我就像月光下的海,庞大,安静,想证明给别人看的时候,却只能拍出一团焦糊的黑暗。(from 《时间的女儿》)🤞🤞文章目录一.顺序表成员变量的组成解析二 .在指定位置新增元素二、判断是否包含某个元素三.插找某个元素对应的位置四.获取特定位置的元素五. 获取指定位置的元素六.给 指定位置的元素设为 value七.删除特定元素八.获取顺序表长度九.
2022-05-27 15:35:48 539 38
原创 【javase基础】第十篇:大杉带你刷好题(下)
再玩一会、再赌一次、再睡一分钟,听起来都是小事,那里面“自我妥协”的细菌,却可能在侵蚀着你的骨髓,使你一辈子都站不直。(by 刘墉)
2022-05-15 16:23:12 654 62
原创 【javase基础】第九篇:类和对象划重点
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础⚡⚡⚡(❁´◡`❁)励志格言:生命对我来说,太短暂了,不能用来怀恨记仇。在这世上,肯定人人都有一身的过错。(from 《简·爱》)🤞🤞
2022-05-12 20:58:42 301 32
原创 【javase基础】第八篇:二维数组的内存结构
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础⚡⚡⚡(❁´◡`❁)励志格言:要么永远不踏出那一步,要么就是现在。(by 克莱尔·麦克福尔)🤞🤞...
2022-05-08 15:13:43 1482 26
原创 【javase基础】第七篇:数组拷贝及Arrays常用方法
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础⚡⚡⚡(❁´◡`❁)励志格言:在我有生之日,生命中所有的灿烂,终将用寂寞偿还。(加西亚·马尔克斯 《百年孤独》)🤞🤞...
2022-05-06 20:44:49 1981 26
原创 【javase基础】第六篇:方法的重载与递归
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础⚡⚡⚡(❁´◡`❁)励志格言:==在我有生之日,做一个真诚的人,不放弃对生活的热爱和执着,在有限的时空里,过无限广大的日子。(by 三毛)==🤞🤞...
2022-05-01 15:55:25 868 33
原创 【javase基础-大杉带你刷好题(上)】
🏴☠️🏴☠️经过了前面几个博客的学习,我们对javase的一些语法有了一定的了解,已经能够写一些简单的代码了,但是还需要刷一些经典的题目对知识有一定的巩固加深,对此,大杉的刷题单早就按耐不住了。==“光说不练假把式”咱们废话少说,上题!🧡== ......
2022-04-29 20:57:03 893 12
原创 【javase--重点算术运算符及进制转化】
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础⚡⚡⚡(❁´◡`❁)励志格言:人心有时就像季节,一直在变。但又不像季节,一定会回来。(by 二般照相馆)🤞🤞文章目录一.上节遗珠小tip:如何实现整型与字符串之间的转换二、“除”运算符==1.避坑小tip(1)====2.避坑小tip(2)==二、取余运算三.逻辑运算符(重点)1.&&与||的运用区别四.移位运算符一.上节遗珠小tip:如何实现整型与字符串之
2022-04-26 18:56:41 362 18
原创 【javase基础-八大数据类型变量及常量定义逐一击破】
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础⚡⚡⚡(❁´◡`❁)励志格言:未来的路不会比过去更笔直,更平坦,但是我并不恐惧,我眼前还闪动着道路前方野百合和野蔷薇的影子。(by 季羡林)🤞🤞文章目录一.变量和类型1.变量和类型的定义2.冯诺依曼体系二.整型变量(重点)1.基本使用2.注意事项:3. 如何查看int 变量的取值范围4.数值溢出现象三.长整型变量1.基本语法格式:2.注意事项:3. 求long 类型的范围四.
2022-04-22 18:22:19 1222 16
原创 【javase基础-java数组超详解】
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+关注~不迷路🧡🧡🧡✔系列专栏:javase基础(❁´◡`❁)励志格言:面对世界永恒的新奇,我感到我每一刻都是新生。(佩索阿 《守羊人》)
2022-04-16 11:57:20 1003 48
原创 【day5-c/c++入门题目-关于“约瑟夫问题”那些事】
👀作者简介:大家好,我是大杉。🚩🚩 个人主页:爱编程的大杉支持我:点赞+收藏~不迷路🧡🧡🧡✔系列专栏:c语言入门每日一题(❁´◡`❁)每日格言:🌞过去都是假的,回忆是一条没有归途的路,以往的一切春天都无法复原,即使最狂热最坚贞的爱情,归根结底也不过是一种瞬息即逝的现实,唯有孤独永恒。-(加西亚·马尔克斯 《百年孤独》)文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越
2022-04-13 20:52:51 1109 30
编程练习_java初级50题(含java版答案).doc
2022-09-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人