自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三毛码代码

风儿哪儿吹,不要问跟风的人。

  • 博客(53)
  • 资源 (9)
  • 收藏
  • 关注

原创 队列: 排队买包子,还不允许插队的那种~

前言上一篇文章我们简单阐述了栈这个基本数据结构,我们知道了,栈最大的特点就是后进先出,以及入栈和出栈这两个基本的操作。今天我们再来学习与栈非常相似的另一个数据结构—队列,那么接下来我们看看队列到底是什么吧。队列是什么首先,当你看到队列这两个字的时候,你脑袋里面会不会联想到每天在早餐店排队买包子的场景呢?(什么?你不吃早餐),这个时候不考虑插队情况(拒绝插队,从你我做起)的话,那就是站在队列前面的人先买到包子,后来的人只能站在队尾等待,故先来的先买包子,也就是队列的先进先出。上面我们提到不能插队,这个

2021-08-01 23:52:09 329 1

原创 栈:一吃多就会吐的家伙~

前言前两篇文章中我们学习了线性表中的数组和链表,数组和链表是最基础的数据结构,很多数据结构的实现都是基于数据或链表的。那么今天我们一起学习一个非常简单的数据结构—栈。栈使用是非常广泛的,比如我们Java中函数的调用、浏览器中的前进与后退功能等都会用到栈。什么是栈先画张图,看看栈长什么样。如下图所示:从图中看到栈是有些特殊,对于栈的操作被限制只能在栈的一端(栈顶)进行,也就是不允许在栈的中间进行数据操作,只能在栈顶进行数据操作(也就是插入和删除数据)。思考:“受限制”的栈有什么用呢?特定的数

2021-07-25 22:38:57 128

原创 链表:想写好链表代码可真要下点功夫

前言上一篇文章我们探讨了数组这个非常基础的数据结构。对于数组,我们知道了数组在内存中是按照顺序存储并线性排列,所以具有“随机访问"的能力,但是对于删除和插入等操作却十分低效。今天我们一起探讨一个新的数据结构—链表,看看链表是什么?学习链表有什么用?链表是什么链表是一种非常重要的数据结构,应用的非常广泛,在写链表代码非常容易出错,所以面试中链表经常会被用来考察面试者的逻辑是否严谨。链表它不像数组,数组需要的是一块连续的内存空间来存储,而链表并不需要一块连续的内存你空间(也就是可连续也可不连续),它可

2021-07-19 15:04:51 104 4

原创 数组: 一种非常基础且重要的数据结构

前言数组是一种非常基础且重要的数据结构,很多复杂的数据结构都是基于数组实现的。深入理解数据的存储原理和特点,有利于我们在实际开发工作中,充分发挥数据的优势。数据是什么数组的定义:数组(Array)是一种线性表数据结构。它用一组连续的内存空间,存储一组具有相同类型的数据。在上面的定义中加黑的描述,我们可以发现数组的几个特点,分别是:线性表、连续的内存空间、相同类型的数据。如下图所示:数组因具有连续的内存空间的特点,让数据拥有非常高效率的“随机访问”,但也是因为要保持这个连续的内存空间,导致数组在删

2021-07-14 23:04:26 382 1

原创 MySQL中的隐藏列!_rowid

会决定将哪一个索引应用_rowid,那么当同时存在主键和唯一索引时,定义顺序会对其引用造成影响吗?按照下面的语句创建两个表,只有创建主键和唯一索引的顺序不同。

2022-07-19 22:40:48 3717 3

翻译 用于 MongoDB 的 Debezium 连接器

MongoDB的复制机制提供了冗余和高可用性,是在生产环境中运行MongoDB的首选方式。MongoDB连接器捕获副本集或分片集群中的更改。MongoDB副本集由一组服务器组成,这些服务器都具有相同数据的副本,并且复制可确保客户端对副本集主节点上的文档所做的所有更改都正确应用于另一个副本集的服务器,称为辅助节点。MongoDB复制的工作原理是让主节点在其oplog(或操作日志)中记录更改,然后每个辅助节点读取主节点的oplog并按顺序将所有操作应用于自己的文档。快照。...

2022-07-16 16:02:24 1122

翻译 MySQL 的 Debezium 连接器-中文版

MySQL 有一个二进制日志(binlog),它按照提交到数据库的顺序记录所有操作。这包括对表模式的更改以及对表中数据的更改。MySQL 使用 binlog 进行复制和恢复。Debezium MySQL 连接器读取 binlog,为行级、、和操作生成更改事件,并将更改事件发送到 Kafka 主题。客户端应用程序读取这些 Kafka 主题。由于 MySQL 通常设置为在指定时间段后清除 binlog,因此 MySQL 连接器会对您的每个数据库执行初始一致快照。MySQL 连接器从创建快照的位置读取 binlo

2022-07-16 15:58:33 2359

原创 FastJson简明上手教程~

简单介绍下~FastJson是阿里开源的JSON解析库,它可以解析JSON格式的字符串,支持将JAVA Bean序列化JSON字符串,也可以从JSON字符串反序列化到JavaBean。相比其他JSON库而言,FastJson的性能还是不错的,目前在日常开发中使用也非常广泛,且上手也非常简单,支持的功能也非常完备,比如支持泛型、支持流处理超大文本、支持枚举、支持序列化和反序列化扩展。前戏很重要!引入FastJson依赖<dependency> <groupId>c

2022-01-03 16:22:39 439

原创 非常棒!终于明白了 Map 桶中超过 8 个才转为红黑树!

前言HashMap在实际开发过程中是使用频率最高的用于映射(键值对)处理的数据类型。在JDK1.8中对HashMap底层的底层实现进行了大幅度地优化,比如引入红黑树的数据结构和扩容的优化等等。本文主要分析一下为什么 Map 桶中超过 8 个才转为红黑树? 面试中这个问题也是经常会提起的,接下来我们一起学习吧~什么是“拉链法”?在JDK 1.8 的 HashMap 和 ConcurrentHashMap 都有这样一个同样的特点,那就是最开始的Map是空的,因为里面没有任何元素,往里放元素时会

2021-07-02 22:39:22 516 7

原创 来不及解释!Linux常用命令大全,先收藏再说

前言一提到操作系统,我们首先想到的就是windows和Linux。Windows以直观的可视化的方式操作,特别适合在桌面端PC上操作执行相应的软件。相比较Windows来说,Linux的很多管控都需要用命令来操作。Linux命令行方式的操作,特别是在服务器端编程、管理、运维方面,都非常的简单、短小、精悍。短短一行组合命令,即可完成在Windows需要各种加工、整合的复杂高效的功能操作。 不信,下面全都是。关机/重启/注销常用命令作用shutdown -h now即刻关机s

2021-07-02 19:15:54 234

原创 看完这篇后,别再说你不懂JVM类加载机制了~

看完这篇后,别再说你不懂JVM类加载机制了~JVM 通过双亲委派模型进行类的加载,即当某个类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-54rvNYJw-1623817737129)(https://s.im5i.com/2021/04/16/GN0Do.png)]类加载器启动类加载器 (Bootst

2021-06-16 12:29:39 122

原创 Java方式利用DOM4J解析XML格式的数据

1. 引入DOM4J依赖 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency>2. DOM4J工具类本文中的例子是一个非常简单的例子,解析的xml格式的数据也是十分简

2020-10-14 17:24:02 246

原创 Java关键字理解

Java关键字理解引导语Java 中的关键字很多,大约有 50+,在命名上我们不能和这些关键字冲突的,编译会报错,每个关键字都代表着不同场景下的不同含义,接下来我们挑选 6 个比较重要的关键字,深入学习一下。1 static意思是静态的、全局的,一旦被修饰,说明被修饰的东西在一定范围内是共享的,谁都可以访问,这时候需要注意并发读写的问题。1.1 修饰的对象static 只能修饰类变量、方法和方法块。当 static 修饰类变量时,如果该变量是 public 的话,表示该变量任何类

2020-07-09 18:42:27 184

原创 SpringBoot+Mybatisg项目使用Generator自动生成代码

1.添加依赖—— 下 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version>

2020-06-29 18:54:33 261

原创 JVM内存区域详解

一 概述对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C++程序开发程序员这样为每一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。二 运行时数据区域Ja...

2019-08-24 21:30:34 272

原创 (非常详细+适合新手入门)基于IntelliJ IDEA SSM(Spring+Spring MVC+MyBatis)框架+Maven项目工程的环境搭建教程———码上 Java

一直都想写这个教程,是因为,之前在学习SSM框架的时候被网上很多教程“坑了”,明明按着教程一步一步来,可是启动Tomcat的时候还是出问题,不是启动不了就是404页面。不过搭建环境的教程的确不好写,因为环境本身就不是统一的,会让很多入门的新手们失去成就感,要知道敲代码敲的不是热爱,而是成就感啊。好了,咱们废话不多说,直接一步一步讲SSM框架的整合步骤~本教程的环境基于一下条件:1.Java 1...

2019-07-10 21:46:50 840

原创 你知道被中断的线程,运行状态发生了什么变化吗?

今天我们来一起聊一个问题: “被中断的线程,运行状态发生了什么变化”Java中的中断并不是说会把正在运行的线程终止,而是仅仅设置下线程的中断标志,列如下面的代码:package JavaDemo;/** * @program: JavaDemo * @description: * @author: 码上Java * @create: 2019-05-25 16:39 */pu...

2019-05-25 17:22:01 2396 1

原创 一个线程两次调用start()方法会出现什么情况?

今天我们来聊一聊线程,提起线程大家肯定都不陌生,它是J ava并发的基础元素,理解、操纵、诊断线程也是Java工程师的一门必修课,但是你真的掌握线程了吗?这里有一道经典的面试题:“一个线程两次调用start()方法会出现什么情况?谈谈线程的生命周期和状态转移。” 我们就以这道题目为切入点深入聊聊线程吧。典型回答Java的线程是不允许启动两次的,第二次调用必然会抛出IllegalThreadS...

2019-05-24 10:29:24 5514

原创 Java面试中碰到这样的MyBatis面试题,你会这样回答吗?

1、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的...

2019-05-21 18:40:43 1849

原创 剖析@ResponseBody注解作用和原理

@ResponseBody这个注解通常使用在控制层(controller)的方法上,其作用是将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。 假如是字符串则直接将字符串写到客户端,假如是一个对象,此时会将对象转化为json串然后写到客户端。...

2019-05-15 19:10:51 1260 1

原创 ==和equals的区别是什么?

==和equals的区别是什么?对于基本类型和引用类型==的作用效果是不同的,如下所示:· 基本类型:比较的是值是否相同;· 引用类型:比较的是引用是否相同;代码示例:/** * 采用字面值方式赋值 */String str1="abc";String str2="abc";System.out.println(str1==str2);System.out.println(s...

2019-04-13 16:10:34 2267

原创 如何实现链表的逆序?

如何实现链表的逆序?下面介绍了两种方法:1.就地逆序法 2.插入法单链表数据结构/** * @program: 算法与数据结构 * @description: 单链表数据结构 * @author: 粉刷匠 * @create: 2019-04-11 20:02 */public class LNode { int data; //数据域 LNode ne...

2019-04-11 20:45:36 4843 1

原创 IntelliJ Idea 常用快捷键

1. -----------自动代码--------常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码例如要输入for(User user : users)只需输入user.for+Tab再比如,要输入Date birthday = user.getBirthday();只需输入user.getBirthday()...

2019-04-07 21:27:06 751 2

原创 基于MVC设计模式实现简单的Javaweb-注册登录功能

首先,对于MVC设计模式千万不要想的太过复杂,不然真的很坑的。简单的理解就是:1.View-视图层 用户从视图层提交请求到Controller-控制层 。2.然后控制层接受到用户的请求会调用Model-模型层里面的方法访问数据库并且将返回的结果返回到控制层。3.控制层接受到模型层从数据库中访问的结果并处理,之后根据处理结果跳转当相应的视图层页面。这就是MVC 设计思...

2019-03-14 16:48:58 13314 20

原创 35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4 class Solution { ...

2019-02-03 19:16:50 300

原创 485. 最大连续1的个数

给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。 输入数组的长度是正整数,且不超过 10,000/** * 思路其实很简单,关键就是遍历整个数组的时候碰见0的情况,以及保存当前连续1的个数和让记录连续1的变量重...

2019-02-03 17:50:05 100

原创 976. 三角形的最大周长

给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。 示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8 //官方解答c...

2019-02-03 16:57:03 279

原创 104. 二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。 class Solution { public int max...

2019-02-03 14:52:34 88

原创 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4/** * 异或运算:任何一个数字异或它自己都等于0 * * 所以 遍历数字中的每一个元...

2019-02-02 13:21:19 124

原创 LeetCode450——删除二叉搜索树中的节点

Delete Node in a BST给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点; 如果找到了,删除它。说明: 要求算法时间复杂度为 O(h),h 为树的高度。示例:root = [5,3...

2019-02-01 18:52:49 244

原创 Insert into a Binary Search Tree 二叉搜索树中的插入操作

Insert into a Binary Search Tree给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。例如, 给定二叉搜索树: 4 / \ ...

2019-02-01 18:27:19 283

原创 Search in a Binary Search Tree 二叉搜索树中的搜索

给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,给定二叉搜索树: 4 / \ 2 7 / \ 1 3和值: 2你应该返回如下子树: 2 / \ 1 ...

2019-02-01 17:48:27 109

原创 169. 求众数

给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2package com.company;import java.util.HashMap;import ja...

2019-01-28 14:43:47 148

原创 724. 寻找数组的中心索引

给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释: 索引3 (nu...

2019-01-19 16:13:02 107

原创 至少是其他数字两倍的最大数

在一个给定的数组nums中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。示例 1:输入: nums = [3, 6, 1, 0]输出: 1解释: 6是最大的整数, 对于数组中的其他整数,6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1. 示例 2:输入: nums = ...

2018-12-22 21:58:45 502

原创 118. 杨辉三角

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]import java.util.ArrayList;import java.util.List;c...

2018-12-19 22:17:39 177

原创 561. 数组拆分 I

给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, 10000...

2018-12-18 23:18:26 98

原创 867.转置矩阵

给定一个矩阵 A, 返回 A 的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]] 提示:1 &lt;= A.l...

2018-12-18 21:48:43 182

原创 832.反转图像

给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0,...

2018-12-18 20:45:30 241

原创 hihocoder #1000 : A + B

时间限制:1000ms单点时限:1000ms内存限制:256MB描述求两个整数A+B的和输入输入包含多组数据。每组数据包含两个整数A(1 ≤ A ≤ 100)和B(1 ≤ B ≤ 100)。输出对于每组数据输出A+B的和。样例输入1 23 4样例输出37import java.util.Scanner;public class...

2018-12-12 21:55:50 203

基于SSM框架实现增删改查功能的一个小小系统

基于SSM框架实现增删改查功能的一个小小系统,你可以下载。如果你没有积分的话,你可以关注码上Java公众号 ,后台回复:crud 即可获取源码文件

2019-07-24

蓝桥杯历年真题

2013年到2017年蓝桥杯真题

2019-03-06

计算机网络课后答案完整版

计算机网络课后答案完整版计算机网络课后答案完整版

2019-01-01

基于UML物流信息管理系统建模分析

基于UML建模分析。其中包含用例图、类图、交互图、状态图、活动图、部署图等等

2018-11-19

基于JAVA实现的贪吃蛇小游戏(包含用户注册和登录)

基于Java实现的贪吃蛇小游戏,包含用户注册和登录功能,下载即可使用

2018-11-12

struts2、hibernate和spring框架整合所需的jar以及配置文档

ssh框架整合所需要的jar包以及核心配置文档、让你的ssh开发前奏打响

2018-10-22

基于Struts2、hibernate、spring实现的新闻后台管理系统

基于ssh框架实现的新闻信息管理系统,包含用户的注册登录以及新闻管理模块的实现等等

2018-10-22

新闻后台管理系统实训报告

该文档是实训之后的实验报告,上传平台目的是学习交流。基于ssh的新闻后台管理系统

2018-10-22

电影后台管理系统基于Struts2和Hibernate框架实现(包含数据库)

基于Struts2和Hibernate框架实现的电影后台管理系统,包含电影信息管理模块、新闻信息管理模块、个人信息管理等等

2018-10-22

空空如也

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

TA关注的人

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