自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 gradle 报错Project ‘xxx‘ not found in root project ‘xxx‘.

具体原因是子项目和父项目都有setting.gradle文件,gradle多模块使用错误,删除子模块的setting.gradle即可。

2023-11-08 19:44:57 893

原创 【无标题】

在Vue.js中,created是一个生命周期钩子函数,它在Vue实例被创建后立即调用。在这个函数中,我们可以执行一些初始化操作,比如设置数据、创建组件、请求数据等等。

2023-11-08 15:00:56 95

原创 leetcode144 二叉树的前序遍历(非递归)

二叉树的前序遍历/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode ri

2022-03-06 11:53:28 296

原创 MYSQL 错误:IN AGGREGATED QUERY WITHOUT GROUP BY, EXPRESSION #1 OF SELECT LIST CONTAINS....

MYSQL 错误:IN AGGREGATED QUERY WITHOUT GROUP BY, EXPRESSION #1 OF SELECT LIST CONTAINS…当mysql的sql_mode是only_full_group_by的时候,在不使用group by 并且select后面出现聚集函数的话,那么所有被select的都应该是聚集函数,否则就会报错!tips:在select指定的字段要么就要包含在group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。...

2022-03-02 20:17:58 5057

原创 tail -f 多次grep过滤输出

对日志记录做多次grep过滤输出,格式如下:tail -f log | grep xxx | grep yyy发现grep失效,无法做正确输出。google研究了一下,原因如下:管道 | 是全缓冲的,一般来说buffer_size为4096,有些是8192。不管具体值多少,只有buffer_size满了,才会看到输出。在操作里 >>file 这个操作也是全缓冲的。调整如下tail -f log | grep --line-buffer xxx | grep --line-buffer

2022-02-22 20:51:12 3354

原创 详解HttpClient 新手入门必看

一、HttpClient简介官网:http://hc.apache.org/使用场景爬虫多系统之间接口交互二、jdk原生api发送http请求httpURLConnection<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13<

2022-02-20 19:51:20 452

原创 leetcode 165. 比较版本号 中等

给你两个版本号 version1 和 version2 ,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个 ‘.’ 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较 忽略任何前导零后的整数值 。也就是说,修订号 1 和修订号 001

2022-02-19 09:54:44 77

原创 leetcode6 Z 字形变换 java实现

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入:s = “PAY

2021-08-24 07:49:24 199

原创 leetcode3 无重复字符的最长子串 java实现

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列

2021-08-22 09:08:56 152

原创 The MySQL server is running with the --read-only option so it cannot execute this statement

The MySQL server is running with the --read-only option so it cannot execute this statementmysql报错:The MySQL server is running with the --read-only option so it cannot execute this statement连到从库了。从库一般设置为只读。换个主库连接就好了...

2021-08-03 09:48:14 467

原创 【剑指offer】左旋转字符串

描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列 S,请你把其循环左移 K 位后的序列输出(保证 K 小于等于 S 的长度)。例如,字符序列S=”abcXYZdef”,要求输出循环左移 3 位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!示例1输入:“abcXYZdef”,3返回值:“XYZdefabc”代码:package Offer;/** * 左旋转字符串 * <p>

2021-06-18 00:37:13 116

原创 【剑指offer】第一个只出现一次的字符

描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)示例1输入:“google”返回值:4package Offer;import java.util.HashMap;import java.util.Map;/** * 描述 * 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置,

2021-06-17 00:17:12 86

原创 【剑指offer】翻转单词序列

描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。示例1输入:“We Are Happy”复制返回值:“We%20Are%20Happy”代码public class JZ2_replaceSpace { public static String replaceSpace(String s) { StringBuilder sb = new String

2021-06-12 16:14:12 179

原创 Fiddler-抓取手机app数据包

1.Andriod配置方法1)确保手机和Fiddler所在主机在同一个局域网中2)获取Fiddler所在主机的ip地址,通过cmd命令进入命令编辑器,输入ipconfig -all,找到IPv4地址,记下该地址3)对手机所连接的无线网络进行设置,点击WLAN,长按与Fiddler所在主机在同一个局域网的wifi,长按点击【修改网络】,选中【显示高级选项】,代理设置为手动,输入代理服务器的主机名和端口后保存。代理服务器的主机名即2)中的IPv4地址,端口为Fiddler上配置的端口(默认为8888),

2021-04-13 21:45:51 718

原创 使用 JSONPath 解析 JSON内容 详细

JSONPath的介绍:JsonPath 是一种简单的方法来提取给定JSON文档的部分内容。JsonPath表达式总是以与XPath表达式结合使用XML文档相同的方式引用JSON结构。JsonPath中的“根成员对象”始终称为$,无论是对象还是数组。JsonPath 对应的maven包<dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path&lt

2021-03-16 21:04:48 1251

原创 入门算法:小和问题 之归并排序思想 java语言

题目在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。例子[1,3,4,2,5]1左边比1小的数:没有3左边比3小的数:14左边比4小的数:1,32左边比2小的数:15左边比5小的数:1,3,4,2所以小和为1+1+3+1+1+3+4+2=16解题思路如果直接用两层for循环扫,时间复杂度是O(n^2),但是可以通过归并排序的方法将时间复杂度降到O(nlogn).如果不了解归并排序算法的可以先看看这篇博客:https://blog.csdn.n

2021-03-01 00:53:09 183 1

原创 面试常见几种排序算法 Java代码总结

以下所有swap方法里面的代码都与如下代码等价:int tenp = arr[i];arr[i] = arr[j];arr[j] = temp;mid = (left + right) / 2;与如下代码等价:mid = left + ((right - left) >> 2);left + right 可能会造成溢出,不安全,但是right - left不会造成溢出,且位运算速度比四则运算快很多,右移相当于除以2一、冒泡排序public static void bub

2021-03-01 00:40:19 281 2

原创 idea编译报错处理:No tests found for given includes spring boot项目单元测试使用junit,使用idea运行时候发生报错:No tests found

idea编译报错处理:No tests found for given includesspring boot项目单元测试使用junit,使用idea运行时候发生报错:No tests found for given includes,详细内容如下所示:这是由于点击单元测试使用了idea的按钮时候,idea默认使用了gradle的测试运行期,如果gradle的编译脚本没有进行相关配置,则会发生上述报错。这里有两种解决方法:1-gradle编译脚本添加test编译器配置,如下所示test {

2020-12-16 14:22:36 12803 3

原创 java线程池

https://www.cnblogs.com/franson-2016/p/13291591.html

2020-11-24 14:25:17 64

原创 长连接和短连接的区别

短连接连接->传输数据->关闭连接比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。具体就是 浏览器client发起并建立TCP连接 -> client发送HttpRequest报文 -> server接收到报文->server handle并发送HttpResponse报文给前端,发送完毕之后立即调用socket.close方法->client接收response报文->client最终会收到serv

2020-11-13 15:31:47 143

原创 CAS机制

一、启动两个线程,每个线程中让静态变量count循环累加100次。最终输出的count结果一定是200吗?因为这段代码是非线程安全的,所以最终的自增结果很可能会小于200。我们再加上synchronized同步锁,再来看一下。二、加了同步锁之后,count自增的操作变成了原子性操作,所以最终输出一定是count=200,代码实现了线程安全。虽然synchronized确保了线程安全,但是在某些情况下,这并不是一个最优的选择。关键在于性能问题。三、synchronized关键字会让没有得到锁资源的线程

2020-11-13 15:22:04 97 2

原创 java实现计算匹配

package com.hikvision.ipsc.convergence.demo.test;/** * @date 2020/11/13 * @description */import java.util.HashMap;import java.util.Map;import java.util.Stack;/** * @version 1.0 * @date 2020/11/13 9:59 * 描述: * 给定一个字符串,其中的字符只包含三种括号:花括号{ }、中括号[

2020-11-13 14:32:44 330

原创 tomcat是什么?

Tomcat是web容器。在进行web项目开发的时候,经常需要http协议,也就是基于请求和响应,比如你在百度输入一行内容搜索,那么百度服务器如何处理这个请求呢?它需要创建servlet来处理,servlet其实就是java程序,只是在服务器端的java程序,servlet通过配置文件拦截你的请求,并进行相应处理,然后展示给你相应界面。那么servlet如何创建?这时候就要用到tomcat了。这就是tomcat的意义!tomcat是一个中间件,在B/S架构中,浏览器发出的http请求经过tomcat中间件

2020-11-12 21:15:51 2160

转载 Java中Builder模式的实现详解

在设计模式中对Builder模式的定义是用于构建复杂对象的一种模式,所构建的对象往往需要多步初始化或赋值才能完成。用对象作为参数,返回这个对象所赋值的build().建造者模式的优缺点优点在建造者模式中, 客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者, 用户使用不同的具体建造者即可得到不同的产品对象可以更加精细地控制产品的创建过程

2020-11-05 10:47:12 500

原创 java 实现 最长公共子序列

package shousi;/** * 求最长公共子序列(LCS) 动态规划 */public class Test50 { public static String findLCS(String a,String b) { int alen = a.length(); int blen = b.length(); int[][] dp = new int[alen + 1][blen + 1]; for(int i = 0;i <= alen;i++) {

2020-11-01 17:27:53 578 4

原创 java 用链表实现队列

package shousi;/** * 用链表表示队列 */public class Test49 { private int size; private Node head;//头节点 private Node tail;//尾节点 public Test49(){ //初始化 size = 0; head = null; tail = null; } class Node{ public Object data;// 每个节点的数据 pub

2020-10-31 18:53:05 254

原创 Spring 中@NotNull, @NotEmpty和@NotBlank之间的区别是什么?

Spring 中@NotNull, @NotEmpty和@NotBlank之间的区别是什么?@NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0)。@NotEmpty://CharSequence, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。@NotBlank://String 不能是 null 且去除两端空白字符后的长度(trimmed

2020-10-19 20:18:35 148

原创 java实现 leetcode 177 Excel表序列号

题目描述:给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: “A”输出: 1示例 2:输入: “AB”输出: 28示例 3:输入: “ZY”输出: 701解题思路:字符串遍历,进制转换初始化结果 ans = 0,遍历时将每个字母与 A 做减法,因为 A 表示 1,所以减法后需要每个数加 1,计算其代表的数

2020-10-18 14:46:18 362 4

原创 java实现leetcode155 最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,

2020-10-17 20:30:21 114

原创 java实现leetcode83 删除排序链表中的重复元素

删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3/** * 方法一:直接法 时间复杂度:O(n)O(n),因为列表中的每个结点都检查一次以确定它是否重复, 所以总运行时间为 O(n)O(n),其中 nn 是列表中的结点数。 空间复杂度:O(1)O

2020-10-12 00:50:29 186

原创 com.netflix.client.ClientException: Load balancer does not have available server for client

com.netflix.client.ClientException: Load balancer does not have available server for client…其实不是什么太大的问题,一开始是因为请求的服务没起,后来启动服务,还是报错,就重启了请求的服务,就好使了。

2020-10-10 18:55:25 1841

原创 @Aspect 注解使用详解

AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在spring AOP中业务逻辑仅仅只关注业务本身,将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑

2020-10-10 11:09:24 660

原创 IDEA 查看项目编码

2020-10-09 14:44:52 4437

原创 java.nio.charset.MalformedInputException: Input length = 1

出现这个异常,多数是SpringBoot中的yml文件编码问题,yml文件中有中文,比如注解。解决办法,将文件编码设置和项目编码一致。或者直接删除中文

2020-10-09 14:40:35 594

原创 session和cokie区别

cookie的引入:打开www.jd.com,未登录状态下,将一些商品加入购物车,关掉网页,再次访问www.jd.com,未登录购物车依旧有刚刚所添加商品,重启电脑,再次访问www.jd.com,未登录购物车依旧有刚刚所添加商品。上面的情景说明:刚添加到购物车的商品信息,是保存到了客户端的硬盘上。cookie简介:是一种进行网络会话状态跟踪的技术。会话是由一组请求与响应组成,是围绕着一件相关事情所进行的请求与响应。所以这些请求与响应之间一定是需要数据传递的,即是需要进行会话状态跟踪的。然而HTTP

2020-09-30 14:48:21 228

原创 kafka全面总结

一、基本概念1.为什么要用kafka:缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。解耦和扩展性:项目开始的时候,并不能确定具体需求。消息队列可以作为一个接口层,解耦重要的业务流程。只需要遵守约定,针对数据编程即可获取扩展能力。冗余:可以采用一对多的方式,一个生产者发布消息,可以被多个订阅topic的服务消费到,供多个毫无关联的业务使用。健壮性:消息队

2020-09-28 22:05:02 220

原创 Redis分布式锁的原理以及如何续期

Question:Redis锁的过期时间小于业务的执行时间该如何续期?Answer:只要客户端一旦加锁成功,就会启动一个watch dog看门狗,他是一个后台线程,会每隔10秒检查一下,如果客户端还持有锁key,那么就会不断的延长锁key的生存时间。默认情况下,加锁的时间是30秒,.如果加锁的业务没有执行完,那么到 30-10 = 20秒的时候,就会进行一次续期,把锁重置成30秒.那这个时候可能又有同学问了,那业务的机器万一宕机了呢?宕机了定时任务跑不了,就续不了期,那自然30秒之后锁就解开了呗.

2020-09-27 18:52:41 933

原创 Thinking in Java 第五章习题(初始化)

练习1:创建一个类,它包含一个未初始化的String引用。验证该引用被Java初始化成了null。class Test{ String s;}public class Initialization { public static void main(String[] args) { Test t=new Test(); System.out.println("s=: "+t.s); }}s=: null练习2:创建一个类,它包含一个在

2020-09-23 19:32:57 474

原创 MySQL Key值(PRI, UNI, MUL)的含义

PRI主键约束;UNI唯一约束;MUL可以重复。1.如果Key是PRI, 那么该列是主键的组成部分2. 如果Key是UNI, 那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL)3. 如果Key是MUL, 那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL如果对于一个列的定义,既是PRI,又是UNI,那么"desc 表名"的时候,显示的Key值按照优先级来显示 PRI->UNI->MUL那么此时,

2020-09-22 10:28:20 5625 1

原创 MySQL case when 使用

MySQL 的 case when 的语法有两种:1.简单函数CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END2.搜索函数CASE WHEN [expr] THEN [result1]…ELSE [default] END简单函数CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END: 枚举这个字段所有可能的值SELECT NAME '英

2020-09-21 10:12:46 199

空空如也

空空如也

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

TA关注的人

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