自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (1)
  • 收藏
  • 关注

原创 mac安装jdk8

如果你是第一次配置环境变量,可以使用“touch .bash_profile” 创建一个.bash_profile的隐藏配置文件。如果你是为编辑已存在的配置文件,则使用"open -e .bash_profile"命令;使用终端命令/usr/libexec/java_home -V。注意:jdk路径、版本号按自己的配,不要全部copy进去。JAVA_HOME的路径就是3.1找到的jdk安装目录。如果现在版本号就是刚才下载的,就证明配置成功。oracle官网下载或从下面链接获取。按照安装指示安装即可。

2024-10-19 19:40:42 2366

原创 maven下载依赖的问题--知道真相的我眼泪留下来

用Idea发现,总是下载依赖失败,最近才发现是这个鸡肋的设置项。一定不要勾选他!!!!

2021-04-16 17:52:00 296

原创 SpringBoot集成MyBaits-plus使用方法

一、导入依赖<!--mp--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version></dependency><dependency> <groupId>

2021-04-16 17:00:36 426 1

转载 前后端项目如何解决跨域问题

摘要跨域资源共享(CORS)是前后端分离项目很常见的问题,本文主要介绍当SpringBoot应用整合SpringSecurity以后如何解决该问题。什么是跨域问题CORS全称是Cross-Origin Resource Sharing,意思是跨域资源共享。当一个资源去访问另一个不同域名或同域名不同端口的资源时,就会发出跨域请求。如果此时另一个资源不允许其进行跨域资源访问,那么访问的那个资源就会遇到跨域问题。跨域问题演示及解决我们使用mall项目的源代码来演示一下跨域问题。此时前端代码运行在809

2021-04-15 15:36:55 1914

原创 Spring Boot+Vue从零开始搭建系统(一):项目前端_Vuejs环境搭建

前言最近开始做毕设了,准备做一个系统,准备用SpringBoot+Vue实现,今天get了vuejs环境的搭建,肥肠简单啦~一、安装Node.js1、自行下载安装哈~下载地址:https://nodejs.org/en/2、验证一下安装好了嘛~cmd打开命令行窗口,输入以下命令验证Node.js是否安装成功node -vnpm包管理器是集成在Node.js中了,所以在安装Node.js的时候就已经自带了npm,输入npm -v可得到npm的版本。npm -v顺便把npm更新到最新版

2021-04-05 19:42:09 341

原创 idea使用阿里云maven镜像无法下载依赖

错误显示如下:Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.2.4.RELEASE from/to alimaven (http://maven.aliyun.com/nexus/content/groups/public/): Transfer failed for http://maven.aliyun.com/nexus/content/groups/public/org/s

2021-02-13 21:50:54 6585 2

原创 什么是微服务

什么是微服务?微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的API进行通信的小型独立服务组成。这些服务由各个小型独立团队组成。微服务架构有别于更为传统的整体式方案,可将应用拆分成多个核心功能,每个功能都能被称为一项服务,可以单独构建和部署,这意味着各项服务在工作(和出现故障)时不会相互影响。

2020-12-19 14:18:18 697 1

原创 Redis安装

Redis安装使用以下命令下载,提取和编译Redis:$ wget https://download.redis.io/releases/redis-6.0.9.tar.gz$ tar xzvf redis-6.0.9.tar.gz$ cd redis-6.0.9$ makesrc 目录 中现在提供了已编译的二进制文件 。使用以下命令运行Redis:$ cd src$ ./redis-server您可以使用内置客户端与Redis进行交互:$ ./redis-cli127.0.0.

2020-12-18 20:48:43 173 1

原创 LeetCode 941. 有效的山脉数组【easy】

题目描述:给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < ... A[i-1] < A[i]A[i] > A[i+1] > ... > A[A.length - 1]思路:双指针双指针,一个指向第一个元素,一

2020-11-03 19:48:40 163

原创 LeetCode 617. 合并二叉树【easy】

题目描述:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例:输入: Tree 1 Tree 2 1 2

2020-11-02 17:45:27 168

原创 LeetCode 461. 汉明距离【easy】

题目描述:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。思路:用位运算区分出不同的位统计不同位的个数那么如何区分出不同的位?这里肯定用的是位运算。位运算包括(与、或、非、异或)依次看一下位运算:与运算1 &

2020-11-02 17:41:14 231

原创 查看Linux系统日志-cat/less/more命令

1.看一下/var目录下存的什么Linux系统日志存放在 /var目录下,我们先来看一下这个目录都有什么所有服务的登文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读的邮件的默认存放地点为/var/spool/mail。2.主要看一下/var/logs目录我们来看一下/var/logs目录下都有什么3.以yum.log这个日志文件为例讲解一下cat/more/less/grep的使用可以看到最后一个文件是yum

2020-10-16 20:16:21 973

原创 HTTP/1.0和HTTP/1.1的区别

HTTP1.1 新改动1. 持久连接:2. 管线化理论3. 增加Host字段4. 支持断点传输⭐⭐⭐无论是HTTP1.0还是HTTP1.1都会出现队头阻塞的情况HTTP2.0的改动1.多路复用2. 二进制分帧3. 头部压缩4.服务器推送HTTP1.1 新改动持久连接请求管道化增加Host字段支持断点传输1. 持久连接:HTTP1.0最显著的特点是短连接,每次与服务器的交互都要重新开一个连接。而HTTP是基于TCP协议的,每次连接都要经历三次握手,四次挥手,慢启动…是非常消.

2020-10-15 21:59:06 402

原创 堆栈的区别

1. 物理地址堆的物理地址分配是不连续的,所以性能慢。在GC的时候也要考虑到不连续分配,所以有各种算法。比如,标记清除,复制,标记压缩,分代。栈的物理地址分配是连续的。所以性能快。2.内存大小堆因为是不连续的,所以分配的内存是在运行期确认的,因此大小不固定,堆的大小远大于栈的大小。栈是连续的,所以分配的内存大小在编译器就确定了,大小是固定的。3.存放内容堆存放的是对象的实例和数组。所以堆更关心的是数据的存储。栈存放的是局部变量,操作数栈,更关心程序方法的执行。4. 共享性栈是线程私有的

2020-10-13 13:22:10 532

原创 Java深拷贝和浅拷贝的区别

浅拷贝:只是增加了一个指针指向已存在的内存地址深拷贝:增加了一个指针并且申请了一块新的内存,使得增加的指针指向这个新的内存。在使用深拷贝的情况下,释放内存的时候不会释放同一块的内存的错误。...

2020-10-13 13:16:06 168

原创 Java有了GC为什么还会出现内存泄漏问题

Java有了GC为什么还会出现内存泄漏问题?1. 静态集合类泄漏静态集合类像HashMap,Vector等的使用最容易出现内存泄漏,静态变量的声明周期与应用程序一直,所有的对象Object也不能内释放,因为被其他对象引用着。2. 单例造成的泄漏单例对象在初始化后将在JVM的整个生命周期中存在(以静态变量的方式),如果单例对象持有外部的引用,那么这个对象将不能被JVM正常回收,导致内存泄漏。3.各种连接数据库连接,网络连接,IO连接等没有显式调用close()关闭,会导致内存泄漏。4.监听器的使

2020-10-13 12:57:55 2006

原创 【shell编程】目录文件计数

一、目录文件计数我们要实现一个脚本,它会对PATH环境变量中定义的目录里的可执行文件进行计数。首先,查看一下PATH环境变量$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binPATH中的每个路径由冒号分隔。要获取可在脚本中使用的目录列表,就必须用空格来替换冒号。现在你会发现sed编辑器用一条简单表达式就能完成替换工作。$ echo $PATH | sed 's/:/ /g'/usr/local/sbi

2020-10-11 21:18:23 2241

原创 【面试必考系列】进程间通信方式

一个进程的用户空间之间是相互独立的,但他们共享内核空间,所以进程间通信必须通过内核。1. 管道分为匿名管道,命名管道1.1 匿名管道也就是ps -ef | grep 3306 这种的,这个管道的作用是前一个输出作为下一个的输入,我们可以得出以下结论:管道的传输是单向的,如果想要相互通信,要建立两个管道。它是没有名字的,也叫匿名管道,用完就销毁。如何实现进程通信的:子进程拷贝了父进程的fd描述符,父子进程拥有相同的变量,只能实现单向通信。局限性:只能存在于父子进程之间1.2 命名管

2020-10-11 11:31:19 959

原创 多线程实现同步的实现方法

1. synchronized关键字在Java语言中,每个对象都有一个对象锁与之关联,该锁表明一个对象在任何时候只能被一个线程拥有,当一个线程调用对象的一段snychronized代码时,会首先获取对象的锁,然后去执行相应的代码,执行完毕后,释放锁。synchronized有两种用法(方法和代码块),还可用于静态方法,实例,类synchronized方法当一个方法体规模非常大时,使用同步方法会大大影响程序的执行效率,所以Java提供了同步块。synchronized块synchronized

2020-10-08 14:40:30 1110

原创 MyISAM和InnoDB的区别

1. 查看MySql数据库物理文件存放位置2. MyISAM存储引擎特点MySql默认是InnoDB引擎,这里创建一个表设置存储引擎为Myisma然后查看数据库表文件可以看到数据文件和索引文件是分开存储的,平均分布I/O,获得更快的速度。特点:不支持事务,不支持外键约束,但支持全文索引只支持表级锁定,虽然可以让锁实现的成本很小,但大大降低了并发性能。读写相互阻塞:读取的时候阻塞写入,写入的时候阻塞读取,但读取时不会阻塞其他读取。不缓存数据文件,只缓存索引文件。读取速度较快,占用资

2020-10-06 23:38:34 263 1

原创 用两个栈模拟一个队列的push和pop操作

思路:push操作:只需将元素放入S1即可pop操作:将S1的元素挨个出栈,放入S2中,将S2 的栈顶元素弹出,就是队列的出队操作。注意:如果S2不为空,直接弹出就好了public class leetcode_07 { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void

2020-10-02 15:38:08 324

原创 剑指offer 替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public static String replaceSpace(StringBuffer str) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < str.length(); i++) { char

2020-10-01 14:28:29 116

原创 SpringBoot项目前后端数据交互流程

面试被问到前后端数据如何交互的,以自己的项目为例,简单介绍一下。用户触发点击事件<div> <div> <input type="button" value="创作数量排行榜" onclick="creationRanking('content')"> <input type="button" value="诗词用词云图" onclick="cloudWorld('content')"> </d

2020-09-24 00:32:12 3810

原创 LeetCode 226. 翻转二叉树

class Solution { public TreeNode invertTree(TreeNode root) { if(root==null){ return null; } //交换左右节点 TreeNode temp = root.left; root.left = root.right; root.right = temp; //递归 .

2020-09-23 00:20:39 134

转载 图解SQL

SELECTWHEREORDER BYgroup byUNIONINTERSECTEXCEPT 或者 MINUSJOIN关系模型由数据结构、关系操作、完整性约束三部分组成。????????????关系模型中的数据结构就是关系表,包括基础表、派生表(查询结果)和虚拟表(视图)。常用的关系操作包括增加、删除、修改和查询(CRUD),使用的就是 SQL语言。其中查询操作最为复杂,包括选择(Selection)、投影(Projection)、并集(Union)、交集(Intersection)、差集(Exc

2020-09-22 22:15:47 327

原创 【面试必考系列】合并两个有序链表

1、递归法//1、递归法 public ListNode mergeTwoLists (ListNode l1, ListNode l2) { // write code here if(l1==null){ return l2; } if(l2==null){ return l1; } //注意等号别忘了 if(l1.val<=l

2020-09-21 21:16:39 136

原创 【面试必考系列】判断环形链表

public boolean hasCycle(ListNode head) { //快慢指针,如果满快指针先到达末尾,证明无环 if(head==null|| head.next==null){ return false; } ListNode slow = head; ListNode fast = head.next; while (slow!=fast){ ...

2020-09-21 20:39:46 158

原创 LeetCode 572. 另一个树的子树

给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。class Solution { public boolean isSubtree(TreeNode s, TreeNode t) { if(s==null || t==null){ return false; } //如果t就是s本身

2020-09-21 16:41:03 136

原创 LeetCode 100. 相同的树

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p==null && q==null){ return true; } if(p!=null && q!=null &&

2020-09-21 16:04:15 204

原创 求第k 层节点个数

/** * 求第k 层节点个数 * 思路:左子树第K层+右子树第K层 递归 * */ int getKLevelSize(Node root,int k){ if(root == null){ return 0; }else if(k==1){ return 1; }else { return getKLevelSize(root.left,

2020-09-21 15:26:52 211

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

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。int getHight(Node root){ if(root==null){ return 0; } int left = getHight(root.left); int right = getHight(root.right); return Math.max(le

2020-09-21 15:25:45 159

原创 求二叉树叶子节点的个数

static int leafSize = 0; //求叶子节点的个数 遍历思路 左孩子=右孩子=null int getLeafSize(Node root){ if(root ==null){ return 0; } if(root.left==null && root.right == null){ leafSize++; } getLeafS

2020-09-21 14:39:51 310

原创 求二叉树节点个数的两种方法

static int size = 0; //求节点个数 思路一:前序遍历 public void getSize(Node root){ //求节点个数,前序遍历,只要root!=null size++ if(root==null){ return ; } size++; getSize(root.left); getSize(root.right); }

2020-09-21 14:39:05 2196

原创 二叉树的三种遍历方式(递归)

递归法public class Leetcode_94 { class TreeNode{ int val; TreeNode left; TreeNode right; public TreeNode(int val){ this.val = val; } public TreeNode(int val,TreeNode left,TreeNode right){

2020-09-21 14:38:04 154

原创 八大黑盒测试方法总结【超详细】

一、等价类划分法1.定义2. 划分等价类2.1 有效等价类2.2 无效等价类3. 划分等价类的标准4.划分等价类的方法5.设计测试用例6. 三角形实例二、边界值分析法1. 定义2. 与等价划分的区别3.边界值分析方法的考虑4. 常见的边界值5.边界值分析6.基于边界值分析方法选择测试用例的原则7. 实例说明8、三角形问题的边界值分析测试用例三、错误推测方法1. 定义2. 错误推测方法的基本思想:四、因果图方法1.定义2.因果图法产生的背景:3.因果图介绍4. 因果图概念5. 采用因果图法设计测试用例的步.

2020-09-20 23:53:23 45503 2

原创 计算机网络面试题整理

计算机网络面试题整理1. OSI、TCP/IP、五层协议的体系结构?2. IP地址的分类3. TCP与UDP的区别?4. TCP如何实现数据的可靠性?4.1 校验和4.2. 序列号4.3. 确认应答4.4 超时重传4.5 连接管理4.6 流量控制4.7 拥塞控制5. TCP协议如何提高传输效率?5.1. 滑动窗口5.2. 那么如果出现了丢包,如何进行重传?这里分两种情况。5.3. 延迟应答5.4. 捎带应答6. 三次握手7、四次挥手8.在浏览器中输入一个www.baidu.com后执行的全部过程?8.1

2020-09-20 18:54:05 460

原创 IP地址和MAC地址的区别

1、MAC不可改变,IP可改变对于网络上的某一设备,如一台计算机或一台路由器,其IP地址是基于网络拓扑设计出的,同一台设备或计算机上,改动IP地址是很容易的(但必须唯一),而MAC则是生产厂商烧录好的,一般不能改动。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址不可由本地连接内的配置进行修改。如果一个计算机的网卡坏了,在更换网卡

2020-09-20 16:26:37 774

原创 剑指 Offer 04. 二维数组中的查找

题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定 tar

2020-09-20 14:48:10 143 1

原创 剑指offer 03.数组中重复的数字

题目描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3思路一:将数组元素挨个存入set集合中,检查是否包含这个元素,如果不包含就添加,当存不进去时就是重复的元素。class Solution { public int findRepeatNumb

2020-09-20 14:06:42 163

原创 LeetCode 22.黑白方格画

题目描述:小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案思路:假设选择了a行b列,那么此时所图的格子个数sum=(a+b)n-ab,a*b是重复的格子数。选择a行的组合数就是C 

2020-09-20 13:39:28 476

TrafficLight.pdsprj

基于52单片机的交通信号灯的proteus仿真原理图。主要组成部分有单片机,振荡电路,复位电路,数码管显示电路,LED显示电路。将文章中的C语言代码在keil中生成code.hex文件,加载在protues仿真软件中即可进行仿真,实现简单的红绿灯功能。

2019-12-29

空空如也

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

TA关注的人

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