- 博客(61)
- 收藏
- 关注
原创 【数据结构六】图文结合详解二叉树(五千字)
树是一种的数据结构,它是由n个结点组成的具有层次关系的集合,,看起来像一颗倒挂的树。二叉树是一种最多只有两个节点的树型结构。这篇文章会用Java代码手撕二叉树的实现,从概念到实现,到oj题训练,你不仅能学会二叉树,还能加深对它的理解和运用。
2024-03-09 12:32:57
1082
12
原创 【JavaSE】时间类相关API以及使用
日历类有三个:LocalDate表示年,月,日 LocalTime表示时,分,秒 LocalDateTime表示年,月,日,时,分,秒。可以发现JDK8新增时间类中对时间的增删改查方法类似,均是使用get,with,minus,plus开头的方法,我们也可以凭借这方便记忆。JDK8的时间日期对象都是不可变的,解决了这个问题。Calendar代表了系统当前时间的日历对象,可以单独修改,获取时间中的年,月,日,非常便利。get,set方法,均用long类型表示时间,可以用来获取时间,或者赋值时间。
2024-03-02 23:08:43
1027
2
原创 【数据结构五】队列和Queue详解
双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。其中物理结构即顺序结构和链式结构,因为队列的使用情况多为增加和删除,很少查询,所以我们使用链表来实现一个自己的队列。:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。在java中,Queue是个接口,底层是通过链表实现的,下面是Queue提供的方法。在基于顺序结构实现的队列中,数组头部排出数据后,空间便不能在被使用,来自力扣的两道算法题。
2024-02-29 20:16:18
1105
2
原创 【数据结构四】栈与Stack详解
一种特殊的线性表,其。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO)的原则。压栈:栈的插入操作叫做进栈压栈入栈,。出栈:栈的删除操作叫做出栈。。特点是:后进先出。如图所示。
2024-01-24 21:03:35
1013
2
原创 【数据结构二】手撕顺序表与ArrayList源码详解
对于任意一个继承list接口的数据结构我们都应该实现增删改查获取长度清空等方法,以及相应类的构造方法,我们知道Java中为了提高代码的复用,都是通过类继承接口的方式来进行代码试现,下面让我们写这样一个接口。思路: 通过泛型内在放一个顺序表类的方法实现二维列表,然后再利用循环先将每一层的数值填入numRows个顺序表中,再把这numRows个顺序表填入另一个顺序表中,最后这个顺序表就包含了我们想要的结果。注意:我们自己的顺序表没有实现泛型机制,而java提供的ArrayList是实现了泛型的。
2023-12-28 21:14:28
970
12
原创 【JavaSE】Java进阶知识一(泛型详解,包括泛型方法,协变,逆变,擦除机制)
语法格式如下:泛型类变量名;//定义一个泛型类引用new 泛型类(构造方法实参);//实例化一个泛型类对象一般用作为占位符 ,表示当前类是一个泛型类。Java中的泛型参数只能是引用类型,不能是基本类型,这与Java的泛型擦出机制有关。*裸类型(Raw Type) (这是一个泛型类但没有带着类型实参)裸类型是为了兼容老版本的API保留机制,我们不要轻易使用。
2023-12-24 13:14:22
1534
24
原创 【数据结构一】初始Java集合框架(前置知识)
数据结构是计算机中存储,组织数据的方式。我们现在学习的数据结构都是历史中总结出来的典型的优良的程序结构,在开发中多利用这些数据结构能显著提高你的代码质量。我们需要学习的数据结构有:线性表,链表,堆,栈,队列,哈希表,二叉树,图等。
2023-12-23 21:55:49
2332
9
原创 【JavaSE】Java入门九(异常详解)
在实际应用中,异常的出现具有不确定性,那就导致了在try语句中异常出现位置之后的剩余代码面临着一个问题,如果该异常抛出了,剩余代码就不执行,没抛出就执行,写程序时有些代码我们希望无论程序是否发生异常都需要被执行,因此Java引入了finally语句。Exception异常的子类可以分为两种,一种是RunTimeException类,我们称为是运行时异常,其余的异常我们都称为是编译时异常。Java中可以说是把所有的异常体系都封装了起来,在程序中遇到各种问题时,JVM会直接定位异常情况并在控制台提示。
2023-12-19 13:45:06
1035
16
原创 【JavaSE】Java入门八(Object类详解)
下面是JDK1.6中的object方法摘要,一共有11种方法。本篇文章会详细介绍这11种方法该如何去使用。object类中的toString方法实现:该方法的主要作用是打印对象的内容,我们在使用中一般通过在继承类中重写该方法来自定义实现对具体对象的打印。该方法的作用是比较对象内容该方法用于计算对象的哈希值,源码如下:这是一个native方法,底层代码是用C/C++实现的。该方法一般在具有哈希功能的Collection中使用。该方法负责把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制(浅拷
2023-12-18 19:33:59
452
6
原创 【JavaSE】Java入门七(抽象类和接口详解)
被abstract// 抽象类:被abstract修饰的类// 抽象方法:被abstract修饰的方法,没有方法体// 抽象类也是类,也可以增加普通方法和属性// 面积抽象类中可以包含被abstract修饰的抽象方法,抽象方法在抽象类中仅仅被声明,具体的实现代码可以在继承他的类中被实现。注意:抽象类也是类,内部可以包含普通方法和属性,甚至构造方法Java中类不能实现多继承,为了让一个类继承多个类型,Java中引入了接口,接口也是一种引用数据类型,可以把他当做比抽象类更抽象的引用数据类型。
2023-12-14 11:13:39
1165
10
原创 【JavaSE】Java入门五(面向对象 2——继承)
继承机制:是面相对象程序设计实现代码复用最重要的手段,它允许程序员在保持原有结构特性的基础上进行扩展,增加新功能,从而产生新的类(派生类Java中通过接口,抽象类和类来实现继承关系,本章主要介绍类与类之间的继承关系。下面是类之间的继承语法:修饰符class子类extends父类// ...int age;System.out.println(name + "正在吃饭");System.out.println(name + "正在睡觉");
2023-12-05 21:46:03
1053
10
原创 【Java实战】Java实现坦克大战(韩顺平版)
该坦克大战运用了JavaGUI图形库,多线程,文件IO,反射等Java高级编程中的知识,用来巩固Java语法非常合适。我在韩老师原版的设计上做了一些改变,敌方坦克会永远保持三个,你每杀死一辆敌方坦克,并会在屏幕内随机生成一个敌方坦克以此来增加游戏乐趣,其他内容与原版无异。下面是展示图:该项目总共九个类,包含近1000行代码。
2023-12-04 22:34:24
3516
11
原创 【JavaSE】Java入门四(面向对象 1——四千五百字详解)
目录 类和对象1.什么是类2. 对象的初始化及使用(this关键字)3.封装的概念及应用(含Java中常见的包)4.static关键字5.代码块6.内部类在面相对象的思想中,我们需要把各种事物抽象成对象(也可以说是一个实体),类是用来对一个实体(对象)来进行描述的,在java中定义类时需要用到class关键字。在下面这段代码中,我们定义了一个洗衣机类:这里面包含的内容成为类的成员,其中成员变量称为类的属性,成员方法称为类的行为。tips:在Java中定义了一个类,就相当于在计算机中定义了一个新的引用类
2023-12-04 21:52:01
926
2
原创 【JavaSE】Java入门三(数组详解三千字)
为了方便大量同种类型数据的存储和输出,Java中引入了数组的概念。数组:可以看成相同类型元素的一个集合,在内存中一段连续的空间。数组的创建形式如下:T[] 数组名 = new T[N];//T表示数组中存放的数组类型,N表示数组的长度T[]数组名称数组在创建时有两种选择,我们成为动态初始化和静态初始化。动态初始化:创建数组时,直接指定数组中元素的个数。静态初始化:在创建数组时不直接指定数据元素的个数,而直接用具体的数据内容进行指定。!!
2023-12-03 22:19:54
1000
7
原创 【JavaSE】Java入门二(方法详解)
定义一个方法的语法格式如下://方法定义修饰符 返回值类型方法名称([参数类型 形参...]){方法体代码;return返回值对于没有返回值的方法,类型处写void。需要特别注意,与C语言不同的是Java中的方法只能定义在类中,类外使用的时候可以通过定义对象来调用,要在入口方法(main)中使用需要在在定义方法的返回值前加上static关键字,直接比如下面这段例子// 方法的定义调用方法---传递参数---找到方法地址---执行被调方法的方法体---被调方法结束返回---
2023-12-02 22:32:00
403
5
原创 【JavaSE】Java入门一(包含数据类型,运算符,逻辑控制语句七千字详解)
2009年Sun公司被Oracle收购,并由Oracle公司发布了JDK 7及之后的版本,如今虽然JDK版本已经更新至JDK 21,但JDK 8依旧占据着市面上的主流地位,但听说这周idea(当下Java最流行的IDE集成开发环境)最新一次的更新中,Java当下最流行的框架SpringBoot已经不在支持JDK 8版本,预测今后流行的版本可能会是JDK 17。Java语言结合了C++语言的面相对象,舍弃了C++的指针,并有了自己独特的编译方式通过JDK中自带的JVM虚拟机来编译执行并以此实现可移植性,
2023-11-30 19:27:36
1047
6
原创 #C语言 深度剖析整型在数据中的存储
10000000 00000000 0000000 00000010 (-2)明显不符合正常情况,又为了避免分情况讨论(避免添加额外的硬件电路),计算机大佬们发明了原,反,补码。有符号型和无符号型:char在C语言中没有明确的规定,(和编译器有关,VS中为无符号型char a=unsigned char a),其他类型都默认为有符号型。指数据的低位(个,十,百,千;低->高)存储在内存的高地址中,而数据的高位,存储在内存的低地址中。低->高)存储在内存的高地址中,而数据的低位,存储在内存的低地址中。
2023-05-30 23:36:03
169
5
原创 一个可以对每天努力进行记录的网站Gitee
众所周知,Patience is a key in life任何一件事坚持做1000小时便能成为专家,做10000小时便能成为行业中的佼佼者,编程更是如此在入门到成为大牛的路上可能要坚持数年,其中更离不开数以万计的代码支持,如果能有一个网站能将每天我们费尽心思写出来的代码进行托管和保存就像发朋友圈一样不仅可以作为我们平时生活的记录,也可以。,多一分筹码,所以Gitee被大家所喜爱,此文章中我将为大家简单概述Gitee网站的使用方法,五分钟便可从不认识Gitee到学会代码提交操作。多出来的五个可操作步骤。
2023-04-02 13:13:10
751
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅