自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap

java中HashMap的用法在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。java集合学习(2):Map和HashMapMap接口java.util 中的集合类包含 Java 中某些最常用的类。最常用的集合类是 List 和 Map。Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复,并.

2021-10-01 14:13:10 985

原创 前缀和:空间换时间的技巧

LeetCode 例题精讲 | 18 前缀和:空间换时间的技巧在设计算法时,时间复杂度始终是我们关注的重点。我们需要让算法的时间复杂度尽可能低,追求运行效率。有些时候,我们可以通过增加空间占用的方式减少算法的运行时间,这便是空间换时间。动态规划就是一类空间换时间的算法。动态规划通过保存所有子问题的计算结果,可以避免子问题的重复计算。这种方法的代价是DP 数组占用了较多的空间。前缀和同样也是一种空间换时间的技巧,只不过我们使用的不是 DP 数组...

2021-09-28 23:38:55 362

原创 剑指 Offer 32 – II. 从上到下打印二叉树

剑指 Offer 32 - II. 从上到下打印二叉树 II和上道题目剑指 Offer 32 – I. 从上到下打印二叉树相似,都是需要层次遍历二叉树,不同的是,需要将同一层的元素放在一个数组中。为了将同一层的元素放到一个数组汇总,需要记录每一层的元素个数,可以直接通过队列的长度来获取。// 登录 AlgoMooc 官网获取更多算法图解// https://www.algomooc.comclass Solution { public List<List<In.

2021-09-26 21:55:03 145

原创 剑指 Offer 32 - I. 从上到下打印二叉树【LinkedList 】

剑指 Offer 32 - I. 从上到下打印二叉树LinkedList详解LinkedList同时实现了List接口和Deque对口,也就是收它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(stack),这样看来,linkedList简直就是无敌的,当你需要使用栈或者队列时,可以考虑用LinkedList,一方面是因为Java官方已经声明不建议使用Stack类,更遗憾的是,Java里根本没有一个叫做Queue的类(只是一个接口的名字)...

2021-09-26 20:47:59 133

原创 剑指 Offer 28. 对称的二叉树

剑指 Offer 28. 对称的二叉树// 登录 AlgoMooc 官网获取更多算法图解// https://www.algomooc.comclass Solution { public boolean isSymmetric(TreeNode root) { // 边界情况 if(root == null) return true; // 递归判断左子树和右子树是否对称 return isSymmetriacalCo

2021-09-26 19:56:14 47

原创 剑指 Offer 系列面试题 27. 二叉树的镜像。

题目链接剑指 Offer 27. 二叉树的镜像// 登录 AlgoMooc 官网获取更多算法图解// https://www.algomooc.comclass Solution { public TreeNode mirrorTree(TreeNode root) { // 当节点为空时,直接返回 if(root == null) return null; // 设置一个临时的节点 tmp 用来存储当前节点的左子树 .

2021-09-26 19:24:30 60

转载 leetcode刷题剑指 Offer 59 – I. 滑动窗口的最大值 “空间换时间”

LeetCode 上的剑指 Offer 系列**面试题 59 – I. 滑动窗口的最大值 **一、题目描述给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 想要找出当前窗口里面的最大值,自然而然的想法就是遍历窗口中的所有元素,从中选出最大值,这样的复杂度是O(k*n)级别,复杂度有点高。在剑指 Offer 59. 队列的最大值...

2021-09-25 22:47:54 62

转载 java stack api

刷题用到Java Stack 栈 常用方法剑指 Offer 30. 包含min函数的栈

2021-09-25 16:32:51 538

转载 LinkedList

Java编程拾遗『容器——LinkedList』_卓立的博客-程序员信息网ArrayList的一些特性,比如支持随机访问,插入和删除效率偏低。本篇文章来看一下List基于链表的实现LinkedList的一些细节,每一种实现都是有它特定的使用场景的,而LinkedList就可以解决ArrayList上述插入删除效率低下的问题。LinkedList是基于双向链表实现的,声明如下:public class LinkedList<E> extends Abstra...

2021-09-24 20:57:17 178

原创 【leetcode】165. 比较版本号

165. 比较版本号示例 1:输入:version1 = "1.01", version2 = "1.001"输出:0解释:忽略前导零,"01" 和 "001" 都表示相同的整数 "1"注意分割字符串String[]v1=version1.split("\\.");//记得加\\模拟根据题意,对字符串进行分割,诸位比较「修订号」大小即可。对于缺省的修订号位置,使用00进行代指。class Solution { public int co...

2021-09-08 23:23:41 63

原创 剑指 Offer II 038. 每日温度

剑指 Offer II 038. 每日温度解法一:暴力解解法二:利用单调栈class Solution { public int[] dailyTemperatures(int[] arr) { Stack<Integer> stack = new Stack<>(); int N = arr.length; int[] ans = new int[N]; //单调栈 f..

2021-09-07 15:26:13 50

原创 【leetcode】704. 二分查找

704. 二分查找class Solution { public int search(int[] nums, int target) { int left=0,right=nums.length-1,mid=left+(right-left)/2; while(left<=right){ if(nums[mid]==target){ return mid; }

2021-09-06 12:47:54 75

原创 剑指 Offer 18. 删除链表的节点

剑指 Offer 18. 删除链表的节点侵删一、题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.定位到目标节点后(即val==5的值的节点),需要修改这个节点,题目的要求是删除,对于链表中的每个节点来说,它都有前驱和后继两个节点

2021-08-05 21:56:37 49

原创 剑指 Offer 22 . 链表中倒数第 k 个节点

剑指 Offer 22 . 链表中倒数第 k 个节点侵删非常详细如果题目中出现了倒数这个关键字,十有八九可以借助双指针来处理。本题解题思路如下:1、初始化两个指针former和latter,一开始都指向链表的头节点 2、前指针former先向前走 k 步 3、两个指针former和latter同时向前移动,直到前指针former指向NULL 4、最后返回latter。。。。。。。...

2021-08-05 20:44:21 49

原创 J2EE / TOMCAT / TOMCAT系列教材 (一)- 教程

J2EE / TOMCAT / TOMCAT系列教材 (一)- 教程侵删Tomcat是常见的免费的web服务器.Tomcat 这个名字的来历,Tomcat是一种野外的猫科动物,不依赖人类,独立生活。 Tomcat的作者,取这个名字的初衷是希望,这一款服务器可以自力更生,自给自足,像Tomcat这样一种野生动物一般,不依赖其他插件,而可以独立达到提供web 服务的效果。tomcat为什么把那个文件取名为catalina内部寓意就是tomcat的脚本文件,寄寓,是个小岛的名字,开发者曾在..

2021-08-03 00:04:08 162

转载 JAVA 框架 / MYBATIS / MYBATIS系列教材 (十二)- 注解 - 通过注解方式实现增删改查 CRUD

侵删JAVA 框架 / MYBATIS / MYBATIS系列教材 (十二)- 注解 - 通过注解方式实现增删改查 CRUD步骤1:先运行,看到效果,再学习 步骤2:模仿和排错 步骤3:把XML方式的CRUD修改为注解方式 把XML方式的CRUD修改为注解方式步骤4:Mapper接口 新增加接口CategoryMapper ,并在接口中声明的方法上,加上注解对比配置文件Category.xml,其实就是把SQL语句从XML挪到...

2021-08-01 20:45:17 123

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (十一)- 动态SQL - MYBATIS BIND 标签例子

侵删JAVA 框架 / MYBATIS / MYBATIS系列教材 (十一)- 动态SQL - MYBATIS BIND 标签例子步骤1:先运行,看到效果,再学习 步骤2:模仿和排错 步骤3:bind标签 MyBatis动态sql之bind标签在进行模糊查询时,如果使用“${}”拼接字符串,则无法防止 SQL 注入问题。如果使用字符串拼接函数或连接符号,但不同数据库的拼接函数或连接符号不同。例如MySQL的 concat 函数、Oracle 的连接符号“...

2021-08-01 20:13:42 119

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (十)- 动态SQL - MYBATIS FOREACH 标签例子

侵删JAVA 框架 / MYBATIS / MYBATIS系列教材 (十)- 动态SQL - MYBATIS FOREACH 标签例子步骤1:先运行,看到效果,再学习 步骤2:模仿和排错 步骤3:foreach标签 假设有这样1个需求:根据传入的用户id集合查询出所有符合条件的用户,此时我们需要使用到Sql中的IN,如 id in (1,1001)。mybatis的foreach标签经常用于遍历集合,构建in条件语句或者批量操作语句。作用:foreac...

2021-08-01 19:52:47 88

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (九)- 动态SQL - MYBATIS CHOOSE WHEN OTHERWISE 标签例子

侵删JAVA 框架 / MYBATIS / MYBATIS系列教材 (九)- 动态SQL - MYBATIS CHOOSE WHEN OTHERWISE 标签例子步骤1:先运行,看到效果,再学习 步骤2:模仿和排错 步骤3:if else Mybatis里面没有else标签,但是可以使用when otherwise标签来达到这样的效果。Mybatis choose (when, otherwise)标签choose标签是按顺序判断其内部when标签中的te...

2021-08-01 19:37:27 105

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (八)- 动态SQL - MYBATIS WHERE SET TRIM 标签例子

侵删JAVA 框架 / MYBATIS / MYBATIS系列教材 (八)- 动态SQL - MYBATIS WHERE SET TRIM 标签例子步骤1:先运行,看到效果,再学习 步骤2:模仿和排错 步骤3:基于上一个知识点进行 基于上一个知识点if 标签进行步骤4:多条件的矛盾 如果要进行多条件判断,就会写成这样:<select id="listProduct" resultType="Product">select * ...

2021-07-31 23:35:55 122

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (七)- 动态SQL - MYBATIS IF 标签例子

侵删JAVA 框架 / MYBATIS / MYBATIS系列教材 (七)- 动态SQL - MYBATIS IF 标签例子步骤1:先运行,看到效果,再学习 步骤2:模仿和排错 步骤3:基于前面的教程上进行 步骤4:执行不同的条件限定,需要准备两条sql语句 假设需要对Product执行两条sql语句,一个是查询所有,一个是根据名称模糊查询。那么按照现在的方式,必须提供两条sql语句:listProduct和listProductByName然后在...

2021-07-31 20:45:56 109

原创 关系数据库中的关系指什么

关系数据库关系模型结构1、单一的数据结构----关系(表文件)。关系数据库的表采用二维表格来存储数据,是一种按行与列排列的具有相关信息的逻辑组,它类似于Excel工作表。一个数据库可以包含任意多个数据表。在用户看来,一个关系模型的逻辑结构是一张二维表,由行和列组成。这个二维表就叫关系,通俗地说,一个关系对应一张表。2、元组(记录)。表中的一行即为一个元组,或称为一条记录。3、属性(字段)。数据表中的每一列称为一个字段,表是由其包含的各种字段定义的,每个字段描述了它所含有的数据的意义,数据

2021-07-31 19:40:32 13058

原创 [廖雪峰-SQL教程]2.关系模型

关系模型侵删关系数据库是建立在关系模型上的。而关系模型本质上就是若干个存储数据的二维表,可以把它们看作很多Excel表。表的每一行称为记录(Record),记录是一个逻辑意义上的数据。表的每一列称为字段(Column),同一个表的每一 行记录都拥有相同的若干字段。关系数据库的表和表之间需要建立“一对多”,“多对一”和“一对一”的关系,这样才能够按照应用程序的逻辑来组织和存储数据。在关系数据库中,关系是通过主键和外键来维护的。我们在后面会分别深入讲解。主键...

2021-07-30 22:05:05 742

原创 [廖雪峰-SQL教程]1.关系数据库概述和安装MySQL

1.关系数据库概述1.1为什么需要数据库?关系数据库概述如果每个应用程序都各自写自己的读写数据的代码,一方面效率低,容易出错,另一方面,每个应用程序访问数据的接口都不相同,数据难以复用。所以,数据库作为一种专门管理数据的软件就出现了。应用程序不需要自己管理数据,而是通过数据库软件提供的接口来读写数据。至于数据本身如何存储到文件,那是数据库软件的事情,应用程序自己并不关心:┌──────────────┐│ application │└──────────────┘...

2021-07-29 23:35:56 317

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (五)- 基础 - 多对一

侵删JAVA 框架 / MYBATIS / MYBATIS系列教材 (五)- 基础 - 多对一步骤3:多对一关系 MySql外键一对一,一对多,多对多表关系多对一就是一对多吗?查找表关系一定要换位思考,就是要站在两张表角度全部考虑完毕才能下结论,否则无法的出正确答案。单向的多对一,就是一对多的外键关系。一对多:简单举个例子:比如说一个公司里面有很多部门,而且有很多员工分别在不同的部门里,我们可以先站在员工的角度看是否能多个员工同属于一个部门,也就是说一个部门是...

2021-07-28 23:22:48 76

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (四)- 基础 - 一对多

侵删JAVA 框架 / MYBATIS / MYBATIS系列教材 (四)- 基础 - 一对多步骤1:分类和产品的一对多关系 步骤2:表结构 步骤3:准备数据 步骤7:Product实体类 步骤8:修改Category实体类 步骤9:暂时无需 Product.xml 步骤10:修改Category.xml 步骤11:测试运行TestMybatis ...

2021-07-28 21:27:43 69

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (三)- 基础 - MYBATIS 多条件查询和模糊查询实例

侵删JAVA 框架 / MYBATIS / MYBATIS系列教材 (三)- 基础 - MYBATIS 多条件查询和模糊查询实例步骤4:模糊查询 1. 修改Category.xml,提供listCategoryByName查询语句select * from category_ where name like concat('%',#{0},'%')concat('%',#{0},'%')这是mysql的写法如果是oracle,写法是select * from ca...

2021-07-28 20:38:55 191

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (二)- 基础 - CRUD

JAVA 框架 / MYBATIS / MYBATIS系列教材 (二)- 基础 - CRUD侵删步骤4:配置文件Category.xml 首先一次性修改配置文件Category.xml,提供CRUD对应的sql语句。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybat...

2021-07-28 19:24:21 123

原创 JAVA 框架 / MYBATIS / MYBATIS系列教材 (一)- 基础 - 入门教程

JAVA 框架 / MYBATIS / MYBATIS系列教材 (一)- 基础侵删1.为什么需要Mybatis为什么需要Mybatis Mybatis就是帮助程序猿将数据存入数据库中 , 和从数据库中取数据 . 传统的jdbc操作 , 有很多重复代码块 .比如 : 数据取出时的封装 , 数据库的建立连接等等... , 通过框架可以减少重复代码,提高开发效率。 MyBatis 是一个半自动化的ORM框架 (Object Relationship Mapping) -

2021-07-28 14:56:03 132

转载 前端部分 / AJAX / AJAX 教程

前端部分 / AJAX / AJAX 教程侵删前端部分/AJAX/AJAX 教程通过AJAXAsynchronousJavaScriptAndXML 实现异步刷新示例1:用于用户名校验的页面 示例2:不使用AJAX 通过刷新页面验证账号是否存在 示例3:使用AJAX 通过无刷新验证账号是否存在 前端部分/AJAX/分步解析步骤1:AJAX 请求和相应图示步骤2:创建XHR 创建XHR对象...

2021-07-27 23:12:18 123

转载 前端部分 / JSON / JSON系列教材

前端部分 / JSON / JSON系列教材侵删前端部分/JSON/JSON系列教材 (一)- 教程JSON JavaScript 对象表示法(JavaScriptObjectNotation) 是一种存储数据的方式。用来表示对象的,一种表示对象的形式示例1:创建JSON对象 var gareen = {"name":"盖伦","hp":616};这样就创建了一个JSON 对象JSON对象由名称/值对组成 名称和值之间用冒号:隔开名称必须用双引...

2021-07-27 16:22:20 72

原创 前端部分 / HTML DOM / HTML DOM系列教材

侵删前端部分 / HTML DOM / HTML DOM系列教材 前端部分/HTML DOM/HTML DOM系列教材 (一)- DOM 教程DOM 是Document Object Model( 文档对象模型 )的缩写。DOM是把html里面的各种数据当作对象进行操作的一种思路。比如一个超链,作为一个DOM对象,就可以使其隐藏,修改其href指向的地址。示例1:节点概念DOM把所有的html都转换为节点整个文档是一个节点元素是节点元素属性是节点...

2021-07-27 15:19:36 50

原创 前端部分 / JAVASCRIPT / JAVASCRIPT系列教材 (二十五)- BOM

侵删前端部分 / JAVASCRIPT / JAVASCRIPT系列教材 (二十五)- BOM前端部分/JAVASCRIPT/JAVASCRIPT系列教材 (二十五)- BOM - JAVASCRIPT WINDOW对象BOM即 浏览器对象模型(Browser Object Model)浏览器对象包括Window(窗口)Navigator(浏览器)Screen (客户端屏幕)History(访问历史)Location(浏览器地址)从 Window(窗口)开始讲起示例1...

2021-07-27 00:33:27 65

原创 前端部分 / JAVASCRIPT / JAVASCRIPT系列教材 (十九)- 对象

侵删前端部分 / JAVASCRIPT / JAVASCRIPT系列教材 (十九)- 对象 前端部分/JAVASCRIPT/JAVASCRIPT系列教材 (十九)- 对象 - JAVASCRIPT 数字对象详解JavaScript中的对象是有着属性和方法的一种特殊数据类型。常见的对象有数字Number,字符串String,日期Date,数组Array等。注:这里讲的Number是对象Number,和基本数据类型中的基本类型Number是不一样的Number。示例1:...

2021-07-27 00:23:02 60

原创 前端部分 / JAVASCRIPT / JAVASCRIPT系列教材 (一)- 语言基础

侵删前端部分 / JAVASCRIPT / JAVASCRIPT系列教材 (一)- 语言基础前端部分/JAVASCRIPT/JAVASCRIPT系列教材 (一)- 语言基础 - JAVASCRIPT 入门教程示例3:语言基础,BOM和DOM完整的javascript由语言基础,BOM和DOM组成。只有通过javascript操作DOM对象的时候,才会带来很好的实用效果,而本章节只会涉及到语言基础和BOM部分,DOM部分另外记录。前端部分/JAVASCR...

2021-07-27 00:05:18 123

原创 前端部分 / CSS / CSS系列教材 (十九)- 布局

前端部分/CSS/CSS系列教材 (十九)- 布局 - 如何进行绝对定位详解绝对定位属性:position值: absolute通过指定left,top绝对定位一个元素1:绝对定位属性:position值: absolute设置了绝对定位的元素,相当于该元素被从原文档中删除了所以”正常文字4“会紧接着出现在 ”正常文字2“后面,而不会留下空档...

2021-07-26 22:06:22 97

原创 前端部分 / CSS / CSS系列教材- 基础

侵删前端部分 / CSS / CSS系列教材 记录想记录的。前端部分/CSS/CSS系列教材 (一)- 基础 - 什么是 CSS2:使用css使用css 给每一个单元格加上背景颜色只需要在最前面写一段css代码,所有的单元格都有背景颜色了这是一种分层设计的思想,css把和颜色,大小位置等信息剥离到<style>中,而html只用关心提供什么样的内容就行了。前端部分/CSS/CSS系列教材 (二)- 基础 - 语法前端部分...

2021-07-25 21:52:42 119

原创 前端部分 / HTML / HTML系列教材

侵删前端部分 / HTML / HTML系列教材 前端部分/HTML/HTML系列教材 (一)- 概念 - 系列教材 第一段HTML代码前端部分/HTML/HTML系列教材 (二)- 概念 - 用记事本写HTML前端部分/HTML/HTML系列教材 (三)- 概念 - 显示中文问题中文乱码问题可以在浏览器上设置编码方式为GB2312或者在html的最前面加上编码设置<head><meta http-equiv="Co...

2021-07-25 00:35:44 388

原创 Java学习路线

狂神说-Java学习路线

2021-07-23 19:16:05 129

转载 JAVA 高级 / 反射机制 / 反射机制系列教材 (五)- 有什么用

侵删JAVA 高级 / 反射机制 / 反射机制系列教材 (五)- 有什么用反射非常强大,但是学习了之后,会不知道该如何使用,反而觉得还不如直接调用方法来的直接和方便。通常来说,需要在学习了Spring的依赖注入,反转控制之后,才会对反射有更好的理解,但是刚学到这里的同学,不一定接触了Spring,所以在这里举两个例子,来演示一下反射的一种实际运用。步骤1:业务类2:非反射方式当需要从第一个业...

2021-07-23 13:50:26 47

空空如也

空空如也

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

TA关注的人

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