自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法刷题-Day06

算法刷题-Day061. 无重复字符的最长子串1. 无重复字符的最长子串题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。输入示例输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。思路讲解和代码实现package com.why.day05;import java.util.ArrayList;import java.util.List;/** * @ClassName:day06 *

2021-11-03 18:39:28 107

原创 算法刷题-Day05

算法刷题-Day051. 链表的中间节点2. 删除链表倒数第n个结点1. 链表的中间节点题目描述给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。输入示例输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4,

2021-11-02 18:17:46 195

原创 算法刷题-Day04

算法刷题-Day041. 反转字符串2. 反转字符串中的单词1. 反转字符串题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。输入示例输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]思路讲解和代码实现package com.why.day04;/** * @ClassName:Reverse

2021-11-01 15:32:12 129

原创 算法刷题-Day03

算法刷题-Day031. 移动零2. 两数之和II - 输入有序数组1. 移动零题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。输入示例输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路讲解和代码实现/** * 思路: * 1. 创建新数组arr * 2. 创建头指针start指向新数组头部 * 3. 创建尾指针end指向数组末尾

2021-10-31 13:37:09 132

原创 算法刷题-Day02

算法刷题-Day021. 有序数组的平方2. 旋转数组1. 有序数组的平方题目描述给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。输入示例输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]思路讲解和代码实现package com.why.day02;import java.util.Arr

2021-10-30 18:41:34 132

原创 算法刷题-Day01

算法刷题-Day011. 二分查找2. 第一个错误版本3. 搜素插入位置4. 使用到的判空类1. 二分查找题目描述给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入示例输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4思路讲解和代码实现package com.why.day01;

2021-10-29 19:27:14 83

原创 Java-控制流程

目录控制流程2.8.1 if,switch分支语句2.8.2 循环语句while循环do while循环for循环增强for循环控制流程2.8.1 if,switch分支语句if语法if(判断条件){ 执行语句}else{ 执行语句}switch语法switch(值){ case value1:语句 break; case value2:语句 break; default:语句}2.8.2 循环语句while循环当循环条件为真执行语句while(循环条件){ /

2021-05-27 11:36:34 85

原创 Java-输入输出

目录输入输出2.7.1 读取键盘输入2.7.2 格式化输出输入输出2.7.1 读取键盘输入构造一个Scanner对象Scanner scanner = new Scanner(System.in);使用scanner的类方法读取输入String s = scanner.nextLine();//读取控制台一行输入,返回一个字符串Scanner相关APIint i = scanner.nextInt();//读取一个整型数据scanner.nextDouble();//读

2021-05-27 11:24:18 75

原创 Java-字符串

目录字符串2.6.1 子串2.6.2 字符串拼接2.6.3 检测字符串是否相等2.6.4 空串和Null串2.6.5 字符串长度和字符串的字符2.6.6 String API2.6.7 构建字符串字符串从概念上讲, Java 字符串就是 Unicode 字符序列。在标准 Java 类库中提供了 一个预定义类,叫做 String。每个用双引号括起来的字符串都是 String类的一个实 例:String str = "hello";2.6.1 子串字串:是一个字符串的某些字段String类的su

2021-05-27 11:23:22 52

原创 Java数据类型

目录数据类型整型浮点类型char类型Unicode 和 char类型boolean类型变量变量初始化常量运算符数学函数与常量数值类型之间的转换强制类型转换结合赋值和运算符自增和自减运算符关系运算符、逻辑运算符和boolean运算符括号和运算符级别位运算符枚举类型数据类型Java是强类型语言,这意味着必须为每一个变量声明一种类型,共有8中数据类型:整型表示没有小数部分的值,如1,2,3等Java共有4种整型:类型存储需求取值范围int4字节-2 147 483 648 ~

2021-05-24 17:13:47 61

原创 Java注释

Java注释注释可以帮助我们良好的阅读程序,一个良好的注释往往能使得编程达到事半功倍的效果。注释不会出现在可执行程序中,只是一种对编写程序的说明单行注释//这是注释多行注释/** * 这是注释 */...

2021-05-24 17:10:53 52

原创 第一个Java程序-HelloWorld

第一个Java程序-HelloWorldpublic class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); }}逐行来分析这个程序public称为访问修饰符,其用于控制程序其他部分对这段代码的访问级别class表明Java程序中的全部内容都包含在类中。这里, 只 需要将类作为一个加载程序逻辑的容器,程序逻辑定义了应用程序的行为。

2021-05-24 17:07:17 81

原创 Java程序设计环境

目录Java程序设计环境**下载JDK****安装JDK,此处只介绍Windows下JDK的安装****集成开发环境**Java程序设计环境Java设计环境需要JDK,无论是windows、Linux还是Unix都有对应的JDK版本下载JDK设计人员可至Oracle官网自行下载 官方网站选择相应的JDK版本进行下载安装JDK,此处只介绍Windows下JDK的安装将下载的JDK安装包进行解压复制其文件路径.注意:文件路径应无中文路径右击此电脑,点击属性,进入控制面板的系统界面,点击高

2021-05-24 17:05:44 77

原创 Java概述

目录Java概述Java特性Java概述Java是一门广泛应用的编程语言,和所有编程语言一样,翻译人类的指令给计算机,让计算机执行复杂问题的工具。类似于日常生活中的英语,汉语,都是一种解释说明。计算机底层使用机器语言执行指令。Java特性Java 的设计者已经编写了颇有影响力的“ 白皮书”,用来解释设计的初衷以及完成的情 况,并且发布了一个简短的摘要, 这个摘要用下面 11 个关键术语进行组织:1 ) 简单性 2 ) 面向对象 3 ) 分布式4 ) 健壮性 5 ) 安全性

2021-05-24 17:03:30 51

原创 Spring Boot自定义starters

目录八、Spring Boot自定义starters1. 导入依赖2. 编写自动配置3. 模式4. 创建空项目5. 自定义Starter5.1 why-spring-boot-starter设置5.2 why-spring-boot-autoconfig中的设置5.3 将自动配置模块和启动器模块导入Maven仓库引用自定义的Starter八、Spring Boot自定义starters**starters:**场景启动器1. 导入依赖<dependency> <groupI

2021-05-24 16:50:53 102

原创 Spring Boot与数据访问

目录六、Spring Boot与数据访问1. 简介2. Spring Boot整合JDBC3. Spring Boot整合Druid数据源4. Spring Boot整合MyBatis4.1 创建MyBatis基础环境4.2 使用MyBatis操纵数据库4.2.1 Mybatis注解版4.2.2 Mybatiss使用配置文件版Spring Boot整合JPA1. JPA简介2. 使用基本步骤六、Spring Boot与数据访问1. 简介Spring Boot对于数据访问层,无论是SQL(关系型)还

2021-05-24 16:48:10 143

原创 Spring Boot与Docker

目录五、Spring Boot与Docker1. Docker简介2. Docker核心概念3. Docker环境准备3.1 安装linux虚拟机3.2 linux虚拟机安装Docker4. Docker常用操作命令4.1 镜像操作4.2 容器操作4.3 Docker 安装MySQL五、Spring Boot与Docker1. Docker简介Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker允许用户将基础设施(Infrastru

2021-05-24 16:47:00 131

原创 Spring Boot与Web开发

目录四、Spring Boot与Web开发1. Spring Boot对静态资源的映射规则2. 模板引擎2.1 引入Thymeleaf2.2 Thymeleaf使用 & 语法3 . Spring MVC自动配置原理3.1 Spring MVC -Auto ConfigurationSpring MVC自动配置3.2 扩展SpringMVC3.3 全面接管Spring MVC4. 如何修改Spring Boot的默认配置5. RestfulCRUD程序实例5.1 默认访问到首页5.2 国际化5.3 登

2021-05-24 16:45:46 390

原创 Spring Boot集成日志

目录三、Spring Boot集成日志1. 日志框架2. SLf4j使用2.1 如何在系统中使用SLf4j2.2 遗留问题3. Spring Boot与日志关系4. 日志使用4.1 默认配置4.2 自定义日志配置5. 切换日志框架5.1 log4j日志框架的使用5.2 logback切换log4j示例三、Spring Boot集成日志1. 日志框架是否还在使用System.out.println(“”)打印程序运行时状态及关键数据?这样是否会显得不够专业?此时日志框架应运而生,将所有的打印信息写

2021-05-24 16:43:30 164

原创 Spring Boot配置文件

二、Spring Boot配置文件1. 配置文件Spring Boot使用一个全局配置文件,配置文件名固定application.propertiesapplication.yml配置文件存放路径配置文件是放在src/main/resources目录或者类路径/config下配置文件作用.yml是YAML语言的文件,以数据为中心,比json,xml等更适合做配置文件参考语法规范全局配置文件可以对一些默认配置值进行修改YAML配置端口号:server: port: 80

2021-03-09 16:02:07 97

原创 Spring Boot - HelloWorld

4. Spring Boot - HelloWorld功能浏览器发送Hello请求,服务器接受请求并处理,响应HelloWorld字符串步骤创建maven工程maven工程创建完成导入SpringBoot相关依赖<parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot&

2021-03-08 14:53:07 93

原创 Spring Boot入门

一、Spring Boot入门1. Spring Boot简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。官方网站:https://spring.io/projects/spring-boot优点:快速

2021-03-08 14:49:13 140 2

原创 数据结构 —— 哈希表

十一、哈希表(散列)应用场景有一个公司,当右新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址…),当输入该员工id时,要求查到该员工索引信息要求:不适用数据库,尽量节省内存,速度越快越好基本介绍也叫散列表,是根据关键码值二直接进行访问的数据结构。也就是说,它通过把关键码值映射到一个表中一个位置来访问记录,以加快查找速度。这个映射函数叫散列函数,存放记录的数组叫做散列表实现缓存层定义哈希表可以自己实现缓存层:数组+链表数组+二叉树11.1 使用哈希表管理雇员信息需

2020-12-31 15:21:28 154

原创 数据结构 —— 查找算法

十、查找算法常用的查找算法:顺序(线性)查找二分查找/折半查找插值查找斐波那契查找10.1 线性查找一个数列可有序,可无序代码实现/** * 线性查找 * 这里是找到一个即返回 * @param arr 查找的数据数列 * @param val 需要查找的值 * @return */public static int seqSearch(int[] arr,int val){ //线性查找是逐一比对,发现相同值,返回下标 for (int i = 0;

2020-12-31 15:20:18 195

原创 数据结构 —— 八大排序算法

九、排序算法(Sort Algorithm)9.1 排序算法介绍和分类将一组数据,依指定顺序进行排列排序的分类内部排序指将需要处理的所有数据都加载到内部存储器中进行排序外部排序数据量过大,无法全部加载到内存中,需借助外部存储进行排序常见的排序算法9.2 冒泡排序(Bubble Sort)基本思想通过对待排序序列从前向后(从下表较小的元素 开始),依次比较相邻元素的值,若发现逆序,交换相邻元素的值基本代码public static void bubbleSorting(

2020-12-31 15:18:37 242

原创 数据结构 —— 算法复杂度

八、算法复杂度8.1 算法时间复杂度度量一个程序执行时间的两种方法事后统计的方法两个问题:相对设计的算法的运行行能进行评测,需要实际运行程序所得时间的通缉令依赖于计算机的硬件、软件等环境因素事前估计法通过分析某个算法的时间复杂度来判断那个算法更优时间频度一个算法花费的时间与算法中语句的执行此时成正比,语句执行次数叫时间频度(语句频度),记为T(n)对于时间频度,可以忽略常数项,低次项和系数时间复杂度算法中的基本操作语句的重复执行次数时问题规模n的某个函数用T(n)表

2020-12-31 15:17:30 149

原创 数据结构 —— 递归算法

七、递归(Recursion)回溯算法**概念:**方法自己调用自己有助于编程者解决复杂问题递归调用机制Java有三个分区,栈,堆,方法区当程序执行到一个方法是开辟一个独立空间,在栈之中每隔空间的数据(局部变量)是独立的打印问题public static void test(int n){ if (n>0){ test(n-1); } System.out.println("n = "+n);}阶乘问题public static

2020-12-31 15:16:41 333 1

原创 数据结构 —— 栈

六、栈(Stack)6.1 实际需求计算722-5+1-5+3-3对于计算机而言,其接收到的就是一个字符串计算机底层如何计算获得结果?6.2 栈的介绍栈是一个先入后出的有序列表栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶,另一端为固定的一端,称为栈底。最先放入的元素在栈底,最后放入的元素在栈顶删除元素从栈顶开始删除6.3 栈的应用场景子程序调用:在跳往子程序前,会将下个指令的地址存在堆栈中,直到子程序执行完

2020-12-31 15:15:44 84

原创 数据结构 —— 链表

五、链表(Linked-List)5.1 单链表链表(linked list)有序列表,但是存储不连续特点:以节点形式存储每个节点包括data域,next域:指向下一节点链表的各个节点不一定时连续存放的链表分带头节点的链表和无头节点的链表,根据实际需求确定5.1.1 应用实例使用带head节点的单向链表实现——水浒英雄排行榜管理完成对英雄人物的增删改查操作添加时两种方法,直接添加至链表尾部,或插入至指定位置分析:创建英雄节点(class,存放信息),创建头节点时,不存放

2020-12-31 15:13:27 97

原创 数据结构 —— 队列

队列(Queue)队列的应用场景银行排队案例,买票案例队列概述队列是一个有序列表,可以用数组或是链表来表现遵循先进先出的元组队列的实现方式数组形式代码实现package com.why.data_structure.queue;import java.awt.*;import java.util.Arrays;import java.util.Scanner;/** * @Description TODO 用数组模拟队列 * @Author why * @Date

2020-12-31 15:12:11 51

原创 数据结构 —— 稀疏数组

三、稀疏数组稀疏数组的应用场景问题:五子棋程序,存盘退出和续上盘的功能定义:二维数组很多值都是默认值0,或者大多数值都相同,这些数据没有意义,该数组可用稀疏数组保存。处理方法:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素 的行列及值记录在一个小规模的数组中,从而缩小程序的规模举例用二维数组记录行列值稀疏数组思路分析二维数组转稀疏数组遍历原始二维数组,得到有效数据的个数sum根据sum创建稀疏数组aparseArr int【sum+1】将二维数组的有效数据存入到

2020-12-31 15:10:36 80

原创 数据结构概述

数据结构概述数据结构和算法的关系数据结构时一门研究组织数据方式的学科程序 = 数据结构 + 算法数据结构线性结构:最常用的数据结构,数据元素之间存在一对一的线性关系两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中存储的元素是连续的链式存储的线性表叫链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息线性结构常见的有:数组、队列、链表和栈非线性结构:包括:二维数组,多维数组,广义表,树结构,图结构...

2020-12-31 15:08:04 35

空空如也

空空如也

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

TA关注的人

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