- 博客(32)
- 收藏
- 关注
原创 Java开发中的字符串,集合和对象的判空处理
总结:StrUtil.isBlank()包含了所有字符串为“空”的处理情况,也就是说,开发中,对严格的空值判断,采用StrUtil.isBlank()方法,如果允许存在空格,就采用StrUtil.isEmpty()方法,如果只进行null判断,就采用==null去判断。String类型中,对于空有三种,一个是null,一个是"“(存在空间不为null,但是里面不存在任何值),还有就是” “(存在空间,同时里面存在值,但是值为空格)。对于”"的空值判断,通常会采用string.isEmpty()去判断。
2024-12-04 14:24:21
906
原创 关于树的指引与双指针问题
指向根节点的指针变量,在修改树的方法中,可能会涉及到根结点的变动,也就是说,我们指针变量中的值,即所指根节点,可能会被修改,而方法中的参数是形参,在方法结束后会被销毁,并不能使指针变量中的值修改,所以要想通过方法修改指针变量,只有传入根结点的指针变量的指针,即指针的指针。因为在定义树的时候,初始化树,我们的根节点是用一个指向根结点的指针变量,所以传入时,传入的是根节点的指针,方便修改。关于树的查找,为什么定义方法时传入的参数是结点的指针而不是结点?
2023-10-07 16:14:02
175
原创 关于 Math.random()生成指定范围内的随机数的公式推导
在 java 中,用于生成随机数的 Math 方法 random()只能生成 0-1 之间的随机数,而对于生成指定区间,例如 a-b 之间的随机数,却只能用相关计算公式。 这个计算公式大家所熟知: int num = (int) (a + Math.ransom() *(b-a+1)); 对于这个公式,想必使用过的一定不会陌生,但是,时至今日,相信还有许多小伙伴对这个公式处于只会用,而不知其从何而来的境界。 这个公式设计的数学知识甚少,只是里面绕了一个弯,便把大部分人给绕晕了,希望这篇短小而又精悍的文章
2022-09-01 21:49:26
786
原创 单例模式--饿汉式、懒汉式
1. 创建私有化的属性 2. 构造器私有化 3. 在类里创建静态的私有的实例化对象 4. 创建静态 get 方法,能够调用实例化对象。
2022-08-13 10:04:35
227
原创 Java动态绑定机制详解
结语:由于在网上查找相关的动态绑定机制时,看到没有动态绑定的详细讲解,而这也是一个小难点,所以翻阅书籍,进行了学习,并进行总结,世界上本没有路,走的人多了,也便有了路。动态绑定机制,简单来说,就是在以父类为编译类型,创建子类对象的时候,绑定子类运行类型,当我们再调用方法的时候,能够有序的寻找方法,实现方法的有序调用。动态绑定机制会出现在多态中,多态是 Java 的重要的三个属性之一,动态绑定机制就是建立在,封装,多态,继承的基础上延伸出的。当调用对象的属性时,没有动态绑定机制,哪里声明就使用哪里。.....
2022-08-09 21:35:03
2749
2
原创 Java入土--Tomcat
Tomcat 是 Web 服务器的一种,封装了 HTTP 协议操作,简化开发,同时可以将 web 项目部署到服务器中,对外提供网上浏览的服务。Tomcat 官网对于版本选择,不同版本对语言支持不同,8.X 版本支持 java8 及以上,所以这里选择 8.x 版本的 Tomcat。 Tomcat8.x 安装选择安装版本之后,下拉选择安装的 64 位或者 32 位。 下载完成后,解压在英文目录,注意中文目录会出错。安装完成后,双击 bin 目录下的 startup.bat 运行 Tomcat.如果出现闪退现象,
2022-06-28 09:37:22
188
原创 Java入土--HTTP传输协议
B/S 架构,也叫浏览器/服务器架构,客户端只需要浏览器,逻辑与数据存储在服务器端,接受请求后,服务器会把资源发送给浏览器。浏览器与服务器进行数据通信,通过 HTTP 协议。 通过 Tomcat 进行服务器对数据解析。HTTP 协议特点:优点是速度快,缺点是多次请求之间不能共享数据。Java 会使用会话技术来解决这个问题。GET 请求与 POST 请求的区别参考: 菜鸟教程...
2022-06-28 09:32:07
289
原创 JavaScript-7.0-函数
函数是封装了一段可以被重复调用执行的js代码块。 函数不调用是不执行的。 封装函数 函数的封装是把一个或多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口使用。参数分为形参和实参,形参。 在声明函数的小括号里是形参,在函数调用的小括号里是实参。 实际上,形参实际上是接收实参的,方法结束后,形参会被销毁。多个形参之间要用逗号隔开 当调用函数时,会将实参的值传递给形参,然后形参的值就会与实参相同,实际上,形参就是定义了一个值临时存储的地方,而实参是长期存储的地方.return语句实现返回值。 只要函数
2022-06-25 09:05:26
178
原创 JavaScript-6.0-数组
数组是一组数据的集合,将一组元素存储在一个变量的名下。 获取数组的元素 索引的下标是从0开始,获取元素格式: 遍历数组 通过下标的递增来将数组的元素获取。获取数组长度,获取的是元素的个数。 修改length长度以及索引号增加数组元素。...
2022-06-25 08:58:33
208
原创 JavaScript-5.0-流程控制
控制代码的运行顺序,js的流程控制与Java的流程控制语法几乎相同,接触过Java的很容易接收js的语法按照书写顺序,从上往下,依次执行。具有判断的选择执行,多选一。 三元表达式 三元运算符:条件表达式 ? 表达式1 : 表达式2 如果结果为真,则返回表达式1,否则返回表达式2. 循环 重复执行重复代码。//重复执行某些代码,通常跟计数有关 while循环 do while循环 continue 跳出本次循环,继续执行下一次循环。 只结束当前本次循环,continue后剩下的代码不再执行。结束整个循环
2022-06-25 08:56:49
287
原创 JavaScript-4.0-运算符
实际上是操作符,实现赋值,比较或者算术运算。“+”,“-”,“*”,“/”,“%” 在运算小数时,会出现误差。不要直接用小数参加运算有数字,运算符变量等组成的式子称为表达式。 所有的表达式都要有结果,我们称为返回值。可以使用“++”和“–”实现自增自减。 但是自增运算符的使用会有区别: ++num:前置递增运算符,变量先自增,再参与运算 ++num:后置递增运算符,先参运算,在进行自增也叫关系运算符,分为">“,”=“,”...
2022-06-21 10:43:29
161
原创 JavaScript-3.0-数据类型
在计算机中,不同的数据所需的空间不同,为了便于把数据分成所需内存大小的不同数据,充分利用存储空间,于是定义了不同的数据了类型。 比如说: 字符串类型与数字类型便需要不同的存储空间。由于 js 属于一种弱类型或者说是动态语言,这意味着不需要提前声明变量类型,在运行的过程中会自动判断数据类型,所以通常我们只需要定义变量就可以存储各种类型的值。js 的数据类型是只有程序在运行过程中,根据等号右边的值来确定的 由于 js 是动态的语言,所以变量的数据类型是可以改变的。 数据类型分类 简单数据类型 复杂数据类型
2022-06-21 10:30:50
205
原创 《摸鱼篇》---关于撩妹那点破事
追女生最重要的是什么,是要学会及时止损,如果发现没有机会的时候,一定要及时更换目标,不可在一棵树上吊死,因为世上最不缺的就是人。所以三个月没有一点苗头的,就应该更换目标。其实追女生无外乎两点,一个就是通过吸引,另一个就是通过关心,通过自己的毅力去打动她,而这无外乎会让自己处于被动地位。恋爱时相互奔赴的...
2022-06-21 09:04:57
1959
1
原创 JavaScript-2.0-变量
变量的作用是将用户的数据进行保存。 变量的本质是程序在内存中申请一块对数据进行存储的空间使用步骤:var 是js 中的关键字,用来声明变量,计算机自动为变量分配空间,不需要管理员来管理。 变量的更新 变量被重新赋值后,值以最后一次赋值的值为结果。 小tips: 声明变量的特殊情况 只声明不赋值 结果是undefined; 不声明,不赋值,直接用 not defind,会报错 变量不声明,直接赋值使用 可以使用,但是会变成全局变量。 变量命名规范 最后,所有命名规则要见名知意,简单易读。
2022-06-21 08:50:28
168
原创 JavaScript-1.0-初识JavaScript
首先来了解一下什么是JavaScript。 JavaScript是运行在客户端的脚本语言。(简称js) 不需要编译,既可以做前端界面,也可以做服务端。 js最初是为了做表单验,后来也服务于网页特效,服务端开发(node.js),桌面程序,app,控制硬件(物联网),游戏开发等。 在前端中,js实现业务逻辑与页面控制,相当于人的各种动作。 总的来说,js的基础语法其实跟JavaSE的语法有点相似,所以学习过Java的小伙伴肯定会很快入手js浏览器分为渲染引擎与js引擎。 js引擎也称js解释器,浏览器本身不会
2022-06-21 08:47:59
263
原创 动态规划解0-1背包问题
动态规划解0-1背包问题 动态规划解0-1背包问题是一个十分典型案例,我从网上查询好多相关资料,但是大部分都深奥难懂,并不适合初学算法的小白,其中涉及的递推关系式、填表,以及最后的二维表简化为一维表的优化过程,好多都是一笔带过,所以,今天就尽我所能,来叙述一下对于0-1背包问题使用动态规划来求解。 要解决0-1背包问题,首先咱们要解决的是什么是动态规划。 动态规划 先说一说什么是动态规划。 动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题
2022-05-30 11:18:15
6432
3
原创 关系数据库介绍
关系数据结构及形式化定义 数据模型由模型结构,数据操作,数据约束组成。 关系 域:是一组具有相同数据类型的值的集合 笛卡尔积: 结果是一个元组的集合,每一个元素(d1,d2,d3…)叫做一个n元组或简称元组,元素的每个值叫做一个分量 基数:是笛卡尔积的个数 笛卡尔积可以表示为一个二维表,行表示元组,列表示域 例子: 用二维表表示为: 关系:简述为笛卡尔积的子集,所以关系也是二维表 超码:若关系中的某一个或多个属性集合能够唯一标识一个元组,则称该属性或属性集为超码. 候选码:超码中任意真子集都不能唯一表
2022-04-29 16:11:20
745
原创 Java入土---常用类
常用类 内部类 成员内部类 静态内部类 局部内部类 匿名内部类 内部类是在类的内部再定义一个完整的类 编译后,生成独立的字节码文件 内部类可以直接访问外部类的私有成员,而不破坏封装性。 可为外部类提供必要的内部组件。 //外部类 public class Animal{ //内部类 class Dog{ } } 成员内部类 在类的内部定义,与变量实例,实例方法同级别的类。 外部类的一个实例部分,创建内部类对象,必须先创建外部类对象。 当外部类跟内部类存在重名属性时,内部类方法会
2022-04-04 22:06:20
495
原创 Java入土---异常
异常 程序在运行过程中,遇到一些意外,统称为异常(exception) 异常分为 检查性异常 运行时异常 错误ERROR [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJjleUHa-1648125170108)(…/box/比特截图2022-03-17-15-01-42.png)] 从图中不难看出,所有的异常都是Throwable的子类。 error,是由虚拟机抛出,大多数其错误与代码编写者所执行的操作无关。 Java虚拟机运行错误,当jvm不在有继续执行的操作所需
2022-03-24 20:35:04
427
原创 Java入土---面向对象(OOP)
面向对象(OOP) 面向对象的本质是以类的方式组织代码,以对象的组织(封装)数据。 面向对象有三大特征:封装,继承,多态。 对象与类的关系 类是抽象的数据类型,是对某一事物的整体描述。 对象是抽象概念的具体实例,例如张三是人的具体。 具体理解,还需要在代码中去理解。 这里尽量用简单且少的代码去理解对象与类; 对象的创建 要想有对象,就得现有类,对象是类的实例化。 使用new关键字创建对象, 在实践中要注意,在一个项目应该只存在一个main方法!! Student student = new Student(
2022-03-24 19:54:32
3851
原创 Java入土----数组
数组 数组概述 数组是相同数据类型的有序集合,是相同类型的若干数据,按照一定先后次序排列而成,每一个数据称为数组的元素,通过下标来寻找数组 例如一个球队,就是一个数组,而里面的队员,就是元素,队号就是下标,通过队号来找人。 使用数组,可以更好的组织数据来进行使用。 数组声明创建 使用之前必须声明创建数组。 类型 名字 = 变量值 //创建数组,两种方法 int [] a = new int [10] //为数组创建10字节的空间 int [] b = new int {1,2,3} //直接进行数
2022-03-19 14:31:25
242
原创 Java入土---方法
方法 什么是方法 Java方法是语句的集合,他们一起执行一个功能。 方法是解决一类问题的的步骤的有序组合 包含于类或对象中 在程序中被创建,在其他地方被引用 通过定义,实现一个功能 一个方法只实现一个功能(原则性问题) 定义及调用 Java的方法类似于其他语言的函数。 方法包含一个方法头和一个方法体,方法还包含: 修饰符,例如public,static, 返回值类型,void,int,String,char等 方法名(遵循命名规则) 参数类型(可以不含任何参数),包括实参跟形参,形参调用后会销毁 方
2022-03-18 21:35:18
265
原创 Java入土---流程控制
Java流程控制 用户交互Scanner Java给我们提供了一个工具类,可以获取用户的输入,通过包java.util.Scanner,来获取用户的输入 基本语法: 创建一个scanner的对象,用来接收用户的输入 Scanner scanner = new Scanner(system.in); 使用.next()来接收用户的输入 String s = scanner.next(); 可以使用hasNext()与hasNextLine()来判断是否有用户输入. Scanner的进阶应用 nex
2022-03-18 17:25:06
353
原创 操作系统---(二)进程的描述与控制
进程的描述与控制 为了提高系统的吞吐量和资源利用率,引入了进程的概念,独立运行的单位指进程。进程是一个十分重要的概念 前驱图和程序执行 早期的操作系统是顺序执行的,仅当前一个程序执行完,才执行下一个操作。 前驱图 I代表输入,C代表计算,P代表输出,输入计算再输出,一直重复。 并发执行的前驱图 这样,I2与C1就可以同时执行。 由于引进了并发执行,程序的并发执行具有以下特征: 即间断性,失去封闭性,不可再现性。 进程描述 进程定义: 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
2022-03-15 21:30:09
4350
原创 Java入土---Java运行机制及IDEA的安装使用
Java运行机制及IDEA的安装使用 java程序运行机制 计算机高级语言分为编译型语言跟解释型语言,而java同时具有两者的特点. 可能对于新手来说,什么是编译,什么是解释; 简单来说,编译就是将代码语言整体完全翻译成机器可读懂的代码,再交托给机器运行,像java,c,c++等; 解释呢,就是我敲一行,翻译一行,机器执行一行,像python等. 相比较而言,编译型语言的运行速度更快. 而java是先用javac编译成字节码文件,也就是我们所说的.class文件,等到了操作系统平台这一步时,再将字节码文件进
2022-03-12 10:35:10
455
原创 Java入土---markdown使用技巧
markdown使用技巧 标题 1. “#” 为一级标题 2. “##” 为2级标题 3. 可一直往下曾增加,最多六级标题 字体 1. 加粗 **加粗** 加粗 2. 倾斜 *倾斜* 倾斜 3. 加粗+倾斜 ***加粗倾斜*** 加粗倾斜 4. 删除线 ~~123~~ 123 引用 加箭头有">",用于引用别人文章 123 分割线 --- ### 图片  超链接 [编辑超链接名称](超链接地址) 列表 "-" 加一
2022-03-10 16:52:26
564
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅