- 博客(64)
- 收藏
- 关注
原创 异常处理(try,catch,finally)
Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws。
2022-08-08 12:07:51 844 2
原创 ArrayList 和 LinkedList 区别
在增加时,ArrayList 将新的元素添加的指定的位置时,会将插入位置后的元素依次向后复制,添加速度慢;在查询时,ArrayList 直接根据下标获取,和数组的长度无关,查询速度快;而 LinkedList 则是将原来的 p.next 变为了p.next.next,就实现了删除,而且速度更快。LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。对于随机访问,ArrayList要优于LinkedList;..
2022-08-08 11:19:50 236
原创 LinkedList 底层学习
LinkedList 也是 List 接口下的实现类,它的底层是双向链表。通过源码可以看到,LinkedList 实现了 Deque ,所以我们可以将 LinkedList 看成一个队列或者是一个栈。Node 节点包含前驱、后继、值。我们可以看出这是一个双向链表。在 LinkedList 中使用 add() 方法,我们涉及不到扩容问题,只需要改变指针的位置,就可以一直添加。源码:如上图,先用 l 记录尾结点,然后构造新的节点,将 l.nest 指向新节点。...
2022-08-06 21:05:09 242
原创 ArrayList 底层学习(初始容量为10?每次扩容1.5倍?)
ArrayList 是 List 接口下的实现类,它的底层是数组,可以自动扩容。它的底层数组如下:Arraylist():构造的是一个初始容量为10的空列表ArrayList(int initialCapacity):构造的是一个指定初始容量的一个空列表从源码可以看到,赋予底层 elementData 的是一个空数组,那我们为什么说它的默认容量为10呢?因为 ArrayList 起初创建的是一个空数组,在第一次调用add()方法时为初始数组扩容,因此初始容量变成了10。add()中调用了 ensure
2022-08-06 19:36:40 1028
原创 mysql 锁机制
事务在修改数据之前,需要先获取响应的锁;获得锁之后,事务便可以修改数据;该事务操作期间,这部分数据是锁定的,其他事务如果需要修改数据,需要等待当前事务提交或回滚后释放锁。
2022-07-10 16:57:55 367
原创 mysql 事务
事务就是一次数据库操作中的若干单元的管理。事务管理的目标是完整性,一次中的若干操作要么都执行成功,要么都执行失败。原子性就是要保证一次操作中的多条语句要么都执行,要么都不执行。隔离性就是要控制多个事务在并发读写时互不影响。隔离级别有四种:持久性就是将数据持久化到硬盘中,不可回滚。一致性就是保持数据操作的完整性。一个事务可以读取到另一个事务未提交的数据。可能出现的问题:一个事务只能读取另一个事务已经提交的数据。解决了脏读问题,但是会存在不可重复读问题。同一个事务中,多次读取相同的数据,返回的结果是一样的。避免
2022-07-10 16:43:29 1007
原创 mysql 高级(进阶学习)
视图就是将某个查询语句存储在数据中,并为其命名,视图中并不存储数据,数据还是在基本表中存储。定义视图使用视图删除视图存储过程就是把一段处理逻辑存入到数据库中,使用是就由 JDBC 调用即可。调用存储过程可以减少应用程序和数据库交互次数,在数据库内部执行,执行效率高。存储事先需要定义,有三种参数类型:in 入参(接收调用者传入的数据)out 返回(向调用者返回数据)inout (既可以接收调用者传入的数据,也可以向调用者返回数据)函数是一个特殊的存储过程。存储过程不仅有输入参数,还有输出参数,但是没有返回值,
2022-07-05 17:51:22 1552
原创 mysql 索引
聚簇索引: 找到了索引就找了数据 例如innodb引擎,索引和数据在同一个文件中,找到索引就可以找到数据(使用主键作为条件查询,使用其他的列查询,查询结果只有自己)非聚簇索引: 找了索引,还需要回表查询(例如myisam引擎中 索引和数据在不同的两个文件中 找到索引,在需要去存储数据的文件中查找)innodb非聚簇: 使用其他列作为查询条件,查询结果除了本列还有其他列内容,这种情况需要通过该列先找到主键,再通过过主键再次回表查询数据 ...
2022-07-04 17:00:46 444 1
原创 mysql 事务四种隔离级别
事务就是一次数据库操作中的若干单元的管理。事务管理的目标是完整性,一次中的若干操作要么都执行成功,要么都执行失败。原子性就是要保证一次操作中的多条语句要么都执行,要么都不执行。隔离性就是要控制多个事务在并发读写时互不影响。持久性就是将数据持久化到硬盘中,不可回滚。一致性就是保持数据操作的完整性。mysql 数据提供了4种不同级别的隔离级别,实际开发中就需要根据不同的场景需要选择不同的隔离级别。除了串行化以外,其他级别都会存在某种问题。..................
2022-06-16 17:19:34 253
原创 JVM概述
JVM概述为什么要学习jvm?首先是面试的需要,其次是学习理解更高层次的内容,再者就是架构级别的需要。jvm的作用把一套程序,在不同的平台上运行(一次编译,到处运行)可以实现自动内存管理自动的垃圾回收jvm的位置jvm是运行在操作系统之上的,与硬件没有直接的交互。jvm整体结构分4大块类加载系统(ClassLoader)负责从硬盘中读取字节码文件运行时数据区(Runtime Data Area)存取运行时的数据方法区,堆,栈,本地方法栈,程序计数器执行引擎(
2022-05-24 21:19:48 116
原创 LeetCode -202 快乐数
简单题编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是快乐数就返回true ;不是,则返回 false 。链接LeetCode -202 快乐数代码实现class Solution { public boolean isHappy(int n) { Set<
2022-05-22 15:27:53 889
原创 LeetCode -209 长度最小的子数组
难度:中等给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥target 的长度最小的连续子数组[numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回0。题目链接LeetCode -209 长度最小的子数组代码实现class Solution { //滑动窗口 public int minSubArrayLen(int target, int[] nums) {
2022-05-22 15:07:47 947
原创 LeetCode -242 有效的字母异位词
难度:简单给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。题目链接LeetCode -242 有效的字母异位词代码实现class Solution { public boolean isAnagram(String s, String t) { if(s==null||t==null){ return false;
2022-05-22 14:45:51 147
原创 LeetCode -349 两个数组的交集
难度:简单给定两个数组 nums1 和 nums2 ,返回它们的交集 。输出结果中的每个元素一定是唯一 的。我们可以不考虑输出结果的顺序 。题目链接LeetCode -349 两个数组的交集代码实现class Solution { public int[] intersection(int[] nums1, int[] nums2) { if (nums1 == null || nums2 == null) { return null;
2022-05-22 11:07:07 992
原创 LeetCode -167 两数之和 II - 输入有序数组
难度:中等给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。你可以假设每个输入 只对应唯一的
2022-05-17 21:17:28 297
原创 LeetCode -26 删除有序数组中的重复项
难度:简单给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。题目链接
2022-05-14 11:45:37 139
原创 Redis 初识
NoSQLNoSQL,Not Only SQL,泛指非关系型的数据库,区别于关系数据库。NoSQL有如下优点:易扩展数据之间无关系,这样就非常容易扩展,无形之间也在架构的层面上带来了可扩展的能力。高性能NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。灵活的数据模型NoSQL 无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。redis是什么Redis(Remote Dictionary Server )即
2022-05-13 21:13:07 210
原创 Linux 安装 redis
安装准备检查gcc版本,Redis6以上版本要求必须在5.3以上。gcc -v不能满足需求的情况如果不能满足需求,升级 gcc 步骤如下:yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash注: scl 命令启用只是临时的,退出 shell 或重启就会恢复原系统 gcc
2022-05-13 20:05:34 683
原创 java中的变量的数据类型
Java数据类型图:基本数据类型基本数据类型,也成内置类型,是可以在栈直接分配内存的。java是基于JVM的,所以其所占字节固定,与机器平台无关,所有地方统一占用内存的大小(除了boolean,以及byte/short/boolean数据的时候,每个单元所占的内存是有各个JVM自己实现的)。总共有四类八种数据类型。整型:全部是有符号类型byte1字节(8bit),高位为符号位,其余7位为数据位,范围:-2的7次方 ~ 2的7次方-1(1111,1111~ 0111,1111),即-128~1
2022-05-13 19:13:37 362
原创 nginx 配置文件
nginx 文件结构... #全局块events { #events 块 }http { #http 块 ... #http 全局块 server { #server 块 ... #server 全局块 location [PATTERN] #location 块 ... } location [PATTERN] { ... } } server{ }.....}全局块配置影响 nginx 全局的指
2022-05-12 21:07:14 312
原创 Nginx(了解)
概述高性能的 Web 和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。特点:内存少并发能力强(事实上 nginx 的并发能力在同类型的网页服务器中表现较好)中国大陆使用 nginx 的网站用户有:百度,京东,新浪,网易,腾讯,淘宝等。Nginx 专为性能优化而开发,性能是服务器最重要的考量,实现上非常注重效率,能经受高负载的考验,据报告能支持高达 50,000个并发连接数。在高连接并发的情况下,Nginx 是 Apache 服务器不错的替代品。Nginx 不仅
2022-05-12 20:59:01 161
原创 linux 部署 springboot
SpringApplication application = new SpringApplication(DemoApplication.class);application.addListeners(new ApplicationPidFileWriter(“/usr/app.pid”));application.run();
2022-05-12 20:40:13 305
原创 Linux 安装多 tomcat
复制配置,修改端口和对应目录手动运行命令开启1.vim /etc/profile在其中bai加入: ##########first tomcat########### CATALINA_BASE=/usr/local/tomcat CATALINA_HOME=/usr/local/tomcat TOMCAT_HOME=/usr/local/tomcat export CATALINA_BASE CATALINA_HOME TOMCAT_HOME ##########first
2022-05-12 20:07:59 211
原创 Linux 安装 nginx
安装gccyum -y install gcc automake autoconf libtool makeyum install gcc gcc-c++手动下载.tar.gz 安装包地址:http://nginx.org/en/download.htmlftp 上传到 linux 指定目录这里我依旧放在opt文件下解压nginx文件tar -zxvf nginx-1.20.1.tar.gz安装依赖yum -y install zlib zlib-devel ope
2022-05-12 18:54:06 162
原创 Linux 安装 mysql
添加 rpm 源,并且选择较新的源wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm这里我选择了一个空文件夹(opt)放入,和jdk,tomcat等放在一起,方便使用安装第一步下载的 rpm 文件yum install mysql80-community-release-el8-1.noarch.rpm安装成功就会显示 Complete!使用 yum 安装 mysqlyum insta
2022-05-11 20:24:02 573
原创 Linux云服务(初次接触,先连接上,感受一下)
Linux概述Linux 是一款操作系统,在unix基础上开发的,开源的,免费的,支持网络,多用户,多线程,多cpu…内核版本 一般所说的Linux,指得是内核版本,最核心的,与硬件交互的发行版本centos … 在内核版本上封装而来的,不同的发行版本命令略有不同。用途 作为服务器运行系统环境(服务器运维工程师) 嵌入式的开发(C语言)作为java开发人员,掌握基本命令,软件安装,配置,目录,java运行环境搭建。如何搭建Linux安装Linux,
2022-05-10 18:55:20 262
原创 LeetCode -682 棒球比赛
难度:简单你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x"+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。"D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效
2022-04-30 17:34:15 123
原创 LeetCode -203 移除链表元素
难度:简单给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。题目链接LeetCode -203 移除链表元素实现class Solution { public ListNode removeElements(ListNode head, int val) {ListNode dummyHead = new ListNode(Integer.MIN_VALUE); dummyHead.
2022-04-30 17:29:43 647
原创 【数据结构】查找表问题
两类查找表问题:查找是否存在:Set查找出现的次数:Map一、Set的使用LeetCode -349 两个数组的交集二、Map的使用LeetCode -350 两个数组的交集 II数据结构链表红黑树哈希表set< V >O(n)O(nlogn)O(1)Map< K,V >O(n)O(logn)O(1)Java中的Set-----(HashSet(jdk 8+ 数组+链表+红黑树) TreeSet) M
2022-04-30 10:03:37 131
原创 【数据结构】栈和队列
栈和队列一、栈 Stack1.栈也是一种线性数据结构规定只能从栈顶添加元素,也只能从栈顶取出元素。栈是一种后进先出的数据结构Last In First Out (LIFO)2.栈的具体实现Stack< E >viod push ( E )E pop( )E peek( )int getSize( )boolean isEmpty( )3.时间复杂度分析ArrayStack< E >void push(E) 0(1)均摊E pop( )
2022-04-02 23:52:42 708 1
原创 LeetCode -209 长度最小的子数组
难度:中等给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。题目链接LeetCode -209 长度最小的子数组java实现class Solution { public int minSubArrayLen(int target, int[] nums) { int
2022-04-01 20:24:28 456
原创 LeetCode -167 两数之和 II - 输入有序数组
难度:中等给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。你可以假设每个输入 只对应唯一的
2022-04-01 20:11:29 271
原创 LeetCode -283 移动零
难度:简单给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。题目链接LeetCode -283 移动零java实现遍历public void moveZeroes(int[] nums) { if (nums == null || nums.length == 0) { return; } //第一次遍历的时候,j指针记录非0
2022-03-31 23:42:30 179
原创 【数据结构】数组中的问题
常见的数组问题排序:选择排序、插入排序、堆排序、快速排序、归并排序二分查找法数据结构:栈、队列、堆(底层实现都是数组)…如何写出正确的程序example:二分查找法番外篇:二分查找法的思想在1946年提出的,第一个没有bug的二分查找法在1962年才出现。说明一个道理:真正的实现一个完全正确的算法是复杂的,只是思考算法的思想却是简单的。对于有序数列,才能使用二分查找法(排序的作用)代码实现// 二分查找法 public static int binarySe
2022-03-29 18:59:09 975
原创 LeetCode -88合并两个有序数组
难度:简单给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。题目链接LeetCode -88合并两
2022-03-29 10:28:10 91
原创 【数据结构】数组
数组从本质上讲,数组与顺序表、链表、栈和队列一样,都用来存储具有 “一对一” 逻辑关系数据的线性存储结构。只因各编程语言都默认将数组作为基本数据类型,使初学者对数组有了 “只是基本数据类型,不是存储结构” 的误解。不仅如此,数组和其他线性存储结构不同,顺序表、链表、栈和队列存储的都是不可再分的数据元素(如数字 5、字符 ‘a’ 等),而数组既可以用来存储不可再分的数据元素,也可以用来存储像顺序表、链表这样的数据结构。1、数组基础<1> 用来存储一组类型相同的数据<2> 在内
2022-03-29 00:00:11 422
原创 LeetCode -75颜色分类
难度:中等给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库的sort函数的情况下解决这个问题。题目链接LeetCode -75颜色分类java实现class Solution { public void sortColors(int[] nums) { if (nums == null || nums.le
2022-03-27 21:52:10 844
原创 LeetCode -27移除元素
难度:简单给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。题目链接LeetCode -27移除元素 java实现public class Solution27 { public int removeElement(int[] nums, int val) {
2022-03-27 21:44:14 376
原创 Vue 路由嵌套(children嵌套)
嵌套路由就是路由里面嵌套他的子路由,可以有自己的路由导航和路由容器(router-link、router-view)通过配置children可实现多层嵌套。app.vue<template> <div id="app"> <router-link to="/login">登录</router-link> <router-link to="/main">成功页面</router-link> <router-vie
2022-03-25 19:07:11 5637
原创 idea output窗口弹出悬浮的设置
output 窗口误操作,拉出来了,独立悬浮出来方法一:点击 restore layout 恢复方法二:可以按住Output拉回去
2022-03-24 22:17:25 1147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人