自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 8. 二叉树

对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从0至n-1的结点一一对应时称之为完全二叉树。树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。若一个结点含有子结点,则这个结点称为其子结点的父结点;以某结点为根的子树中任一结点都称为该结点的子孙。一个结点含有的子树的根结点称为该结点的子结点;度为0的结点称为叶结点;具有相同父结点的结点互称为兄弟结点;从根开始定义起,根为第1层,根的子结点为第2层,以此类推。一棵树中,没有双亲结点的结点;

2024-09-10 09:25:41 725

原创 7. 栈和队列

栈帧:函数从调用过程到结束的体现,一个函数从调用到销毁其中占用的空间,内部的局部变量统一放在栈帧中。每个函数在运行时,jvm都会创建一个栈帧,然后将栈帧压入到虚拟机栈中,当函数调用结束时,该函数对应的栈帧会从虚拟机栈中出栈。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 的特性。从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安全的。

2024-09-08 15:04:18 779

原创 6. LinkedList与链表

通过源码知道,ArrayList底层使用数组来存储元素,由于其底层是一段连续空间,当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。所以,java集合中又引入了LinkedList,即链表结构。链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。

2024-09-06 09:46:39 762

原创 5. ArrayList与顺序表

在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:【说明】ArrayList是以泛型方式实现的,使用时必须要先实例化ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问ArrayList实现了Cloneable接口,表明ArrayList是可以clone的ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。

2024-09-05 09:28:21 928

原创 4. List的介绍

Collection也是一个接口,该接口中规范了后序容器中常用的一些方法,具体如下所示:Iterable也是一个接口,表示实现该接口的类是可以逐个元素进行遍历的,具体如下:站在数据结构的角度来看,List就是一个线性表,即n个具有相同类型元素的有限序列,在该序列上可以执行增删改查以及变量等操作。【面试题】Collection中有那些方法?

2024-09-04 17:05:58 324

原创 3. 包装类&简单认识泛型

一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的 代码,这种刻板的限制对代码的束缚就会很大。泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化。2. 泛型的目的就是指定当前的容器,要持有什么类型的对象。让编译器去做检查。此时,就需要把类型,作为参数传递。需要什么类型,就传入什么类型。方法限定符 返回值类型 方法名称(形参列表) {...}

2024-09-03 21:32:07 607

原创 2. 时间和空间复杂度

一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。空间复杂度不是程序占用了多少 bytes 的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。

2024-09-03 15:34:46 230

原创 1. 初识集合框架

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。

2024-09-03 15:25:31 762

原创 Java图书管理系统

JavaSE练习。基于JavaSE的简易图书管理系统实现。

2024-09-02 09:35:28 314

原创 4. 数组的定义与使用

一、一维数组的的定义方式1. 数据类型[ ] 数组名 = new 数据类型[数组长度]例如 int[ ] a = new int[3];创建一个长度为3的int类型的数组2. 数据类型[] 数组名 = {1,2,3};数组的长度由大括号内元素的个数决定int[ ] arr = {1,2,3};3. new 数据类型[ ] {1,2,3};二、一位维数组的使用(1)使用 arr.length 能够获取到数组的长度。这个操作为成员访问操作符。(2)使用 [ ] 按下标取数组元素。 需要

2024-08-29 17:00:22 465

原创 访问控制权限——RBAC技术文档

权限管理功能是信息管理系统不可或缺的重要组成部分,是保证信息系统安全性的前提和基础。权限管理可以对用户的登录进行验证,对系统的资源访问进行鉴权,防止用户对系统越权使用,保障数据在采集、存储和传输过程中的安全性。RBAC基于角色的权限访问控制(Role-Based Access Control) 是商业系统中最常见的权限管理技术之一。RBAC是一种思想,任何编程语言都可以实现,其成熟简单的控制思想越来越受广大开发人员喜欢。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。

2024-03-22 12:04:32 1452

原创 Git基本命令

​一、常用命令常用命令 作用git config --global user.name 用户名 设置用户签名git config --global user.email 邮箱 设置用户邮箱git init 初始化本地库git status 查看本地库状态git diff 查看修改内容git add 文件名添加到暂存区git commit -m ''文件信息'' 文件名 提交到本地库git log 查看提交历史git reflog 查看命令历史git reset --hard 版本

2024-01-15 22:36:50 414 6

原创 9. 认识异常

一、异常基本用法1. 捕获异常try 代码块中放的是可能出现异常的代码;catch 代码块中放的是出现异常后的处理行为;finally代码块中的代码用于处理善后工作, 会在最后执行;其中 catch 和 finally 都可以根据情况选择加或者不加。 int[] arr = {1,2,3}; try { System.out.println(arr[3]); System.out.println("哈哈哈");

2021-03-09 18:01:48 101

原创 8. 认识String类

String类

2021-02-03 16:11:32 89

原创 Java双链表

class ListNode { public int data; public ListNode next; public ListNode prev; public ListNode(int data) { this.data = data; }}public class DoubleList { public ListNode head; public ListNode last;//尾巴 //头插法 p.

2020-12-10 22:34:21 94

原创 Java顺序表

import java.sql.Array;import java.util.Arrays;class MyArrayList { //属性 public int[] elem; public int usedSize; private final int CAPACITY = 5; public MyArrayList(){ this.elem = new int[CAPACITY]; this.usedSize = 0;.

2020-12-10 22:02:38 62

原创 6. 时间复杂度和空间复杂度

一、算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。二、时间复杂度1. 时间复杂度的概念时间复杂度的定义:在计算机科学中,算法的时间复杂度是一

2020-11-04 19:29:21 110

原创 Java八大内置类型

int 4个字节 默认值0double 8个字节 默认值0.0short 2个字节 默认值0long 8个字节 默认值0float 4个字节 默认值0.0char 2个字节 默认值’\u0000’byte 1个字节 ...

2020-10-29 21:54:37 477

原创 3. 方法的使用

一、方法的基本用法1. 方法存在的意义:是能够模块化的组织代码(当代码规模比较复杂的时候). 做到代码被重复使用, 一份代码可以在多个位置使用. 让代码更好理解更简单. 直接调用现有方法开发, 不必重复造轮子.2. 方法定义语法:// 方法定义public static 方法返回值 方法名称([参数类型 形参 ...]){ 方法体代码; [return 返回值];}// 方法调用返回值变量 = 方法名称(实参...);3. 形参和实参:方法定义时的参数称为 "形参"

2020-10-29 21:24:20 479

转载 为什么要对大数取模

为什么要模1000000007(跟我念,一,八个零,七)。参考https://www.liuchuo.net/archives/645大数相乘,大数的排列组合等为什么要取模1000000007是一个质数(素数),对质数取余能最大程度避免结果冲突/重复int32位的最大值为2147483647,所以对于int32位来说1000000007足够大。int64位的最大值为2^63-1,用最大值模1000000007的结果求平方,不会在int64中溢出。所以在大数相乘问题中,因为(a∗b)%c=((a%.

2020-10-29 20:54:17 1642

原创 2. 程序逻辑控制

​一、分支语句1. if语句基本语法形式1if(布尔表达式){//条件满足时执行代码}基本语法形式2if(布尔表达式){//条件满足时执行代码}else{//条件不满足时执行代码}基本语法形式3if(布尔表达式){//条件满足时执行代码}else if(布尔表达式){//条件满足时执行代码}else{//条件都不满足时执行代码}2. switch语句基本语法switch(整数|枚举|字符|字符串){ c

2020-10-27 21:13:17 184

原创 1. 数据类型与运算符

一、数据类型在Java中数据类型主要分为两类:基本数据类型和引用数据类型。基本数据类型有四类八种:四类:整型、浮点型、字符型以及布尔型System.out.println打印的默认是int类型.包装类指的是,基本数据类型对应的类类型。因为基本数据类型无法进行对象化处理,所以就引入了包装类。8种基本数据byte、short、int、long、 float、double、char、boolean。除了int对应的是Integer,char对应的是Character。其余都是首字母大写即可。

2020-10-27 18:03:11 177

原创 JVM内存区域划分

JVM在执行java程序时会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间。有的数据区域随着JVM的进程而启动,有的数据区域则依赖于用户线程的启动和结束而创建和销毁。根据Java虚拟机规范规定,Java虚拟机所管理的内存将会包括如下几个运行时数据区域。1.程序计数器( Program Counter Register)程序计数器( Program C...

2019-12-02 22:53:05 97

原创 7. 面向对象编程

一、包1.如果需要使用 java.util 中的其他类, 可以使用import java.util.*import java.util.*;public class Test {public static void main(String[] args) {Date date = new Date();// 得到一个毫秒级别的时间戳...

2019-11-19 21:37:17 106 1

原创 Java单链表

Java单链表代码class ListNode { public int data; public ListNode next; public ListNode(int data) { this.data = data; this.next = null; }}class MySingleList { public L...

2019-11-18 19:46:03 95

原创 5. 类和对象

一、OOP语言(面向对象的语言:c++,java)的三大特征:继承 封装 多态面向对象:找对象,创建对象,使用对象处理问题规模较大的二、类属性:定义在类的内部,在方法的外部。属性(成员变量):1.实例数据成员(一个类可以实例化多个对象) 2.静态数据成员静态数据成员(static);实例化一个对象之后,通过点号访问对象的数据成员;Person per = new Person...

2019-11-02 13:39:04 102

原创 数组的定义与使用

1.一维数组的的定义方式(1)数据类型[ ] 数组名 = new 数据类型[数组长度]例如 int[ ] a = new int[3];创建一个长度为3的int类型的数组(2)数据类型[] 数组名 = {1,2,3};数组的长度由大括号内元素的个数决定int[ ] arr = {1,2,3};(3)new 数据类型[ ] {1,2,3};2.一位维数组的使用(1)使用 arr.l...

2019-10-20 23:17:13 192

原创 重写和重载的区别

1、定义上不同。重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同,调用的时候根据函数的参数来区别不同的函数。重写是指在派生类中重新对基类中的虚函数重新实现,即函数名和参数都一样,只是函数的实现体不一样。2、规则不同。重载必须具有不同的参数列表,可以有不同的访问修饰符,可以抛出不同的异常。重写的参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载,其返回的类型也必须一直与...

2019-10-11 23:12:49 336

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除