- 博客(47)
- 资源 (1)
- 收藏
- 关注
原创 Linux端口号开放
文章目录一、查看开放的端口二、开放端口三、重启防火墙一、查看开放的端口firewall-cmd --list-all二、开放端口sudo firewall-cmd --add-port=80/tcp --permanent三、重启防火墙service firewalld restart
2022-05-05 14:51:53
1106
原创 Linux安装node环境
在Linux服务器上安装node环境文章目录Node中文网站一、查看服务器的版本二、下载相应的文件三、通过xftp传送到Linux并解压四、确认文件是否完整五、建立软连接,变为全局六、检查是否安装成功Node中文网站http://nodejs.cn/download/一、查看服务器的版本uname -a 查看对应的版本备注:x86_64表示64位系统, i686 i386表示32位系统二、下载相应的文件三、通过xftp传送到Linux并解压tar -xvf node-v16.
2022-05-05 11:13:06
821
原创 Spring-AOP-自定义日志模块
文章目录自定义日志开发自定义注解类配置织入点(以上面自定义注解为表示)环绕增强保存日志合体自定义日志开发场景:如果项目中的一些修改记录比较重要,需要记录下来,可以直接自定义日志的开发。自定义注解类@Target(ElementType.METHOD)//作用于方法上@Retention(RetentionPolicy.RUNTIME)//注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;@Documented//标记注解public @interface MyLog
2022-03-18 14:16:18
732
原创 JVM入门
文章目录JVMJVM的体系结构类加载器双亲委派机制好处沙箱安全机制native程序计数器方法区栈堆新生区、老年区、永久存储区永久存储区(元空间)堆内存调优在一个项目中,突然出现了OOM故障,那么该如何排除GC的算法有哪些?引用计数法(很少使用)复制算法标记清除标记压缩标记清除压缩JVMJVM的体系结构类加载器我们在IDE中编写的Java源代码被编译器编译成.class的字节码文件。然后由我们得ClassLoader负责将这些class文件给加载到JVM中去执行。双亲委派机制当一个.cla
2022-03-16 13:43:55
162
原创 JAVA高级-JUC
文章目录JUC一、什么是JUC线程与进程JUC一、什么是JUC在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。JUC就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包,JDK1.5 开始出现的。线程与进程...
2022-03-14 10:47:32
1101
原创 Spring
文章目录SpringSpring5 框架概述IOC底层原理Bean 管理(基于 xml 方式)Bean 管理(FactoryBean)Bean 管理(bean 作用域)Bean 管理(bean 生命周期)Bean 管理(基于注解方式)基于注解方式实现对象创建基于注解方式实现属性注入完全注解开发AOP底层原理AOP(术语)连接点切入点通知切面相同的切入点抽取JdbcTemplate(略)事务操作(完全注解声明式事务管理)SpringSpring5 框架概述1、Spring 是轻量级的开源的 Java
2022-03-12 09:00:00
390
原创 Mysql高级-执行过程
文章目录Mysql执行过程连接层服务层连接器查询缓存(8.0取消)分析器优化器执行器更新语句的执行redo logbinlog两阶段提交orderby执行过程count(*)执行过程Mysql执行过程连接层系统(客户端)访问 MySQL 服务器前,做的第一件事就是建立 TCP 连接。服务层Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、
2022-03-11 09:00:00
181
原创 Mysql高级-索引
文章目录Mysql索引优点缺点底层实现B+树聚簇(聚集)和非聚簇(非聚集)索引聚簇索引非聚簇索引(回表)创表创建索引创建普通索引创建唯一索引创建主键索引创建单列索引创建组合索引创建全文索引已存在的表上创建索引使用ALTER TABLE语句创建索引使用CREATE INDEX创建索引删除索引使用ALTER TABLE删除索引使用DROP INDEX语句删除索引适合创建索引①字段的数值有唯一性的限制②频繁作为 WHERE 查询条件的字段③经常 GROUP BY 和 ORDER BY 的列④UPDATE、DELE
2022-03-10 09:00:00
593
原创 JAVA高级-集合
文章目录集合Collection接口Collection常用方法Iterator迭代器foreach 循环遍历集合元素ListList接口方法ArrayList源码分析LinkedList源码分析Vector源码分析Set 接口HashSet源码分析LinkedHashSet源码分析TreeSet源码分析Map集合Map接口和Collection接口是所有集合框架的父接口:1.Collection接口的子接口包括:Set接口和List接口2.Map接口的实现类主要有:HashMap、TreeMa
2022-03-09 13:42:00
570
原创 JAVA高级-IO流
文章目录IOFile 类的使用File类的获取功能File类的重命名功能File类的判断功能File类的创建功能File类的删除功能Java IO原理流的分类FileReaderFileWriterFileReader和FileWriter实现复制FileInputStream和OutputStreamt同理指定路径下文件的复制处理流之一BufferedInputStream和BufferedOutputStream处理流之一BufferedReader和BufferedWriter处理流之二转换流Inpu
2022-03-08 11:30:00
235
原创 JAVA多线程
程序、进程和线程的区别 程序:为了完成特定任务,用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程:是程序的一次执行过程,或是正在运行的一个程序。 线程:CPU调度的最小单位。简而言之,一个程序至少有一个进程,一个进程至少有一个线程.并行与并发的区别 并行:多个CPU同时执行多个任务。比如:多个人同时做不同的事。并发:一个CPU(采用时间片)同时执行多个任务。一个人做多个事。文章目录创建线程的四种方法方法一(继承于Thread类)方法二(实现Runnable接口)方法三(实.
2022-03-07 16:25:02
277
原创 Redis6
这里写自定义目录标题Redis介绍Redis安装Redis键(key)Redis字符串(String)Redis列表(List)Redis集合(Set)Redis哈希(Hash)Redis有序集合Zset(sorted set)导出导入Redis介绍非关系型的数据库,以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。Redis是单线程+多路IO复用技术多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,
2022-03-07 11:21:32
414
原创 LetCode#21将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
LetCode#21将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。思路:两个有序的链表,建立一个新的链表,然后定义一个头指针指向这个链表,然后循环遍历,直到有一个链表为空。内部逻辑还是很简单的,就是比较两个链表的内的值比大小,看代码就容易知道了!代码: public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode listNode = new Li
2021-11-15 11:21:58
1409
原创 LetCode#83(JAVA)存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。 返回同样按升序排列的结果链表。
删除排序链表中的重复元素题目存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。举例思路:题目中给了链表有序,所有很容易想到从头开始遍历,如果指向的下一个和当前的值相同,就指向下下一个,一次循环,直到最后!代码 public ListNode deleteDuplicates(ListNode head) { if (head == null) { .
2021-09-28 18:13:26
528
原创 LetCode#69(JAVA)给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去.
69. Sqrt(x)题目给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sqrtx著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。例子:思路:这题最先想到的是暴力法(习惯了),后来想想这种
2021-09-28 17:38:34
2282
原创 Linux入门
入门概述先删库rm-rf /*`后跑路。。。。。。。。。。。。.学到Springboot后面开始需要把项目搭建到服务器,后面Redis、docker等等都用到Linux,其实也不用学的多深,大概了解其实就够了,如果是专业运维的话,要学的挺深,这边只到会下载环境,一些常见的指令的使用,对于JAVA开发是完全够用了。一、Linux介绍(跳过)Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux 是一套免费使用和
2021-09-16 18:54:54
400
原创 LetCode#66(JAVA)给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数存放在数组的首位, 数组中每个元素只存储单个数。
66. 加一题目给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/plus-one著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。举例:思路:其实这题目刚开始就看不懂,我看了好多被人的解释我才明白,所以我就大概就是一下吧,这个
2021-09-16 10:46:03
484
原创 LetCode#58(JAVA)给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
58. 最后一个单词的长度题目给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。举例:思路:这题主要考察的就是字符串的相关知识点,其实我第一想到的就是string.split()这个方法,以空格分割,然后把最后一个长度返回就行了,然后第二个办法就是从后往前查到第一个空格结束,返回长度就行了!法一:public int lengthOfLastWord(String s) {try
2021-09-15 10:20:32
2637
原创 LetCode#53(JAVA)给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
53. 最大子序和题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。举例思路:最优解其实使用到动态规划,这里动态规划还不是很会,所以就用最暴力的解法,从头遍历到最后,保存最大值,最后输出最大值。代码: public int maxSubArray(int[] nums) { int max=Integer.MIN_VALUE; for (int i = 0; i < nums.length; i
2021-09-15 09:50:36
1877
原创 LetCode#35(JAVA)给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
35. 搜索插入位置题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/search-insert-position著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。举例:思路:如果没有要求时间复杂度,这题直接暴力解决就好了,但是有时间复杂度
2021-09-14 17:40:38
811
原创 LetCode#28(JAVA)实现 strStr() 函数。 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置
28. 实现 strStr()题目:实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。来源:力扣(L
2021-09-14 17:20:44
1480
原创 LetCode#27(JAVA)给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使
27. 移除元素题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。来源:力扣(LeetCode)链接:https://leetcode-cn
2021-09-14 11:15:58
419
原创 LetCode#26(JAVA)给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地
LetCode#26删除有序数组中的重复项题目给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝 int
2021-09-14 10:58:05
1134
1
原创 ⑨算法与数据结构-java-哈希表
⑨哈希表看一个实际需求,google公司的一个上机题:有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址…),当输入该员工的id时,要求查找到该员工的 所有信息.要求: 不使用数据库,尽量节省内存,速度越快越好=>哈希表(散列)哈希表的基本介绍散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的
2021-09-07 18:01:33
65
原创 ⑧算法与数据结构-java-查找算法
⑦查找算法查找算法介绍在java中,我们常用的查找有四种:1) 顺序(线性)查找2) 二分查找/折半查找3) 插值查找4) 斐波那契查找线性查找算有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求:如果找到了,就提示找到,并给出下标值。代码:public class SeqSearch { public static void main(String[] args) { int[] arr = { 10, 99
2021-09-07 15:23:32
85
原创 ⑦算法与数据结构-java-排序算法
⑦排序算法排序算法的介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。常见的排序算法分类(见下图):算法的时间复杂度度量一个程序(算法)执行时间的两种方法事后统计的方法1)这种方法可行,但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二
2021-09-04 15:51:05
104
原创 ⑥算法与数据结构-java-递归
⑥递归递归应用场景看个实际应用场景,迷宫问题(回溯), 递归(Recursion)递归的概念简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归调用机制我列举两个小案例,来帮助大家理解递归,部分学员已经学习过递归了,这里在给大家回顾一下递归调用机制1)打印问题2)阶乘问题//输出什么?public static void test(int n) {if (n > 2) { test(n - 1);
2021-09-02 20:12:37
115
原创 ⑤算法与数据结构-java-栈
⑤栈实际需求请输入一个表达式计算式:[722-5+1-5+3-3] 点击计算【如下图】请问: 计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 - 5,但是计算机怎么理解这个算式的(对计算机而言,它接收到的就是一个字符串),我们讨论的是这个问题。-> 栈栈的介绍1)栈的英文为(stack)2)栈是一个先入后出(FILO-First In Last Out)的有序列表。3)栈(stack)是限制线性表中元素的插入和删除只
2021-09-02 19:27:29
116
原创 ④算法与数据结构-java-链表
④链表单向链表链表是有序的列表,但是它在内存中是存储如下小结:1)链表是以节点的方式来存储,是链式存储2)每个节点包含 data 域, next 域:指向下一个节点.3)如图:发现链表的各个节点不一定是连续存储.4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定使用带head头的单向链表实现 –水浒英雄排行榜管理1)完成对英雄人物的增删改查操作, 注: 删除和修改,查找可以考虑学员独立完成,也可带学员完成2)第一种方法在添加英雄时,直接添加到链表的尾部3)第二种方
2021-09-02 18:56:54
86
原创 Git操作教程-(全)
最最最最最简单的方式让你学会使用Git新手们推荐一个学习git的好地方:Learn Git Branch一、Git概述Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。 Git 易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。其性能优于 Subversion、CVS、Perforce 和ClearCase 等版本控制工具。①git工作机制二、Git安装(略)基本傻瓜式安装,网上百度一堆,尽量节省空间,
2021-08-23 17:50:14
8152
原创 ⑤Mysql基础-其他(视图)-完结
Mysql基础视图一、含义mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成。好处:1、简化sql语句2、提高了sql的重用性3、保护基表的数据,提高了安全性二、创建create view 视图名as查询语句;三、修改方式一:create or replace view 视图名as查询语句;方式二:alter view 视图名as查询语句四、删除drop view 视图1,视图2,…;五、查看desc 视图名
2021-08-21 15:04:08
72
原创 ④Mysql基础-TCL语言
Mysql基础一、含义事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行二、特点(ACID)A 原子性:一个事务是不可再分割的整体,要么都执行要么都不执行C 一致性:一个事务可以使数据从一个一致状态切换到另外一个一致的状态I 隔离性:一个事务不受其他事务的干扰,多个事务互相隔离的D 持久性:一个事务一旦提交了,则永久的持久化到本地三、事务的使用步骤 ★了解:隐式(自动)事务:没有明显的开启和结束,本身就是一条事务可以自动提交,比如insert、upda
2021-08-21 14:37:35
59
原创 ③Mysql基础-DDL语言
Mysql基础库的管理一、创建库create database 【if not exists】 库名【character set 字符集名】;二、修改库alter database 库名 character set 字符集名;三、删除库drop database 【if exists】 库名;表的管理一、创建表 ★create table 【if not exists】 表名(字段名 字段类型 【约束】,字段名 字段类型 【约束】,。。。字段名 字段类型 【约束】)二
2021-08-21 14:33:47
94
原创 ②Mysql基础-DML语言
Mysql基础插入插入方式一语法:insert into 表名(字段名,…) values(值,…);特点:特点:1、要求值的类型和字段的类型要一致或兼容2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致但必须保证值和字段一一对应3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值①字段和值都省略②字段写上,值使用null4、字段和值的个数必须一致5、字段名可以省略,默认所有列插入方式二语法:insert into 表名 set 字段=值,字
2021-08-21 01:16:36
85
原创 ③算法与数据结构-java-队列
③队列实际需求队列的一个使用场景银行排队的案例:队列的介绍1.队列是一个有序列表,可以用数组或是链表来实现。2.遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出3.示意图:(使用数组模拟队列示意图)数组模拟队列1 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。2因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front会随着
2021-08-21 00:02:15
98
原创 ②算法与数据结构-java-稀疏数组
②稀疏sparsearray数组-java实际需求基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1、记录数组一共有几行几列,有多少个不同的值2.、把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模互相转换思路代码public class SparseArray { // 先创建一个原始的二维数组11*11 // 0表时没有棋子,1表时黑子 2表时蓝子 public static void
2021-08-20 20:17:14
80
原创 ①算法与数据结构-java版本-介绍
算法与数据结构介绍数据结构和算法的重要性1、算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算2、一般来讲 程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序,再深入的思考一下,这些计算框架和缓存技术, 它的核心功能是哪个部分呢?3、 拿实际工作经历来说, 在Unix下开发服务器程序,功能是要支持上千万人同时在线, 在上线前,做内测,一切OK,可上线后,服务器就支撑不住了, 公司的CTO对代码进行优化,再次上线,坚如磐石。你就能感受到程序是有灵魂的,
2021-08-20 19:53:09
126
原创 ①Mysql基础-DQL语言
Mysql基础MySQL基础目录Mysql简介1. 1数据库的好处1、可以持久化数据到本地2、结构化查询1.2 数据库的常见概念★1、DB:数据库,存储数据的容器2、DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB3、SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言1.3数据库存储数据的特点1、数据存放到表中,然后表再放到库中2、一个库中可以有多张表,每张表具有唯一的表名用来标识自己3、表中
2021-08-20 16:26:55
120
原创 springboot项目创建报错Process finished with exit code 0,不能连接到http://start.spring.io,以及连接超时错误 解决方法
Idea创建springboot项目报错Process finished with exit code 0创建Spring Boot不能连接到http://start.spring.io 等问题到这里不要选择这个而是选择下面的:http://start.aliyun.com速度很快,调试也没有问题,本人遇到这些问题,查了很多,其实springboot项目创建有时候网不好也会影响创建,比如时间超时,你一直创建,运气好就能成功,用阿里云的这个,速度很快,基本没什么问题!有问题欢迎指正!...
2021-07-03 00:06:50
263
web投票系统包含所有报告.zip
2021-06-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人