自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git clone时出现gnutls_handshake() failed: The TLS connection was non-properly terminated.

重置代理,解决git config --global --unset https.https://github.com.proxygit config --global --unset http.https://github.com.proxy

2021-07-28 18:10:31 2101 3

原创 NIO的多线程优化

单线程会浪费多核的优势单线程如果在某一业务上花费时间过长,会影响其他业务的处理

2021-06-16 17:29:00 451

原创 NIO基础

non-blocking io 非阻塞IO1.三大组件1.1Channel&BufferChannel:双向通道,可读可写 Buffer:huu'an'chon

2021-06-15 12:31:20 325

原创 spring笔记

1.下载spring52.创建普通Java项目3.导入spring jar包Corn :beans,core,context,expression4.创建普通的类,类中创建普通方法(eg:user类)5.创建spring配置文件,在配置文件中配置创建的对象(1)xml配置文件6.测试代码...

2021-04-29 12:37:45 142

原创 读《redis设计与实现》笔记--redis数据结构

redis五大数据结构:string,hash,list,set,zset(有序集合)redis底层数据结构:简单动态字符串(SDS),链表,字典,跳表,整数集合,压缩列表底层数据结构详解:1.简单动态字符串:类似于c的结构体,但是SDS拥有记录已用长度(len)与剩余空间长度(free),当空间不足时会进行扩容。SDS最后会保存一个空字符所以SDS获取字符串长度的时间复杂度为o(1),SDS自动扩容也不会像C一样产生溢出利用未使用空间,SDS拥有空间预分配和惰性空间释放两种优化方法。

2021-04-12 00:08:18 98

原创 多线程下实现自增的几种方式

前情回顾:i++操作并不是原子操作,因此多线程下会达不到预期的效果,需要通过加锁或AtomicInteger或LongAdder等方法来实现。i++可以分为三步我们通过实验来观察实现i++操作的方式。下面实验中通过继承Thread实现了多线程错误方法:1.多线程下直接进行自增操作public class byte1 extends Thread{ static int a = 0; @Override public void run() { for(int .

2021-04-05 11:32:17 2286 2

原创 Leetcode--781.森林中的兔子

森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在answers数组里。返回森林中兔子的最少数量。示例:输入: answers = [1, 1, 2]输出: 5解释:两只回答了 "1" 的兔子可能有相同的颜色,设为红色。之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。设回答了 "2" 的兔子为蓝色。此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。因此森林中兔子的最少数量是 5: 3 只回..

2021-04-04 13:56:09 71

原创 浅析ThreadLocal

线程本地变量每个线程独立拥有,线程存在,ThreadLocal就一直存在。使用场景:spring 事务里面有m方法,m调用了m1,m2,比如m1,m2都去访问数据库如果分别建立两个数据库连接,事务是不支持的,所以用ThreadLocal连接。线程里面有map,存的时候把 threadLocal当key,要存的值当value可以看出threadLocal中map的Entry居然继承了弱引用上面回收时,弱引用被回收之后,map中这条记录的key==null,但是这条记录删

2021-04-02 16:07:04 63

原创 Java四种引用

强引用:没有使用时调用System.gc()会回收eg:M m = new M(); m=null;System.gc();软引用:内存不够时就回收作用:一般使用在缓存时,比如把一些图片存储,内存不够时就自动回收弱引用:垃圾回收机制发现就回收作用:一次性使用虚引用:引用了get它的值也是null作用:管理堆外内存os从网卡读数据,jvm从os读,之后jvm如果要从网络上写出数据jsm先给os,再给网卡jvm->os这个复制过程可以省略,NIO提供了堆

2021-04-02 15:09:50 67

原创 synchronized与volatile

synchronized实现过程:1.Java代码:synchronized2.字节码层级:monitorenter,monitorexit3.执行过程中自动升级(偏向->自旋->重量级锁)4.cpu汇编层级:lock comxchg上图为双核cpu的内部构造,两个核共享一个三级缓存超线程:一个ALU对应多个PC,一个核里面有两个pc,线程切换时不用存之前线程的数据,直接两个pc记录运行到哪了,切换节约时间。从主存读数据的时候,按块读(局部性原理)这个块叫

2021-04-02 10:58:28 81

原创 对象在内存中的存储布局

对象头包含:markword(和锁相关的信息) 8字节class pointer(说明对象属于哪个类),jvm指针八字节,但是默认压缩,所有4个字节对象体包含:instance word实例数据(例如int,这就占四个字节,long就占八个)padding 对齐,整体不能被八整除,就补齐八,为了提高效率查看对象在内存中的情况,先导入classLayout jar包下载地址:https://repo.maven.apache.org/maven2/org/openjdk/jol/.

2021-03-31 21:40:41 86

原创 CAS

cas:Compare and Swap,即比较再交换。对CAS的理解,CAS是一种无锁算法,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。CAS(比较并交换)是CPU指令级的操作,只有一步原子操作,所以非常快。而且CAS避免了请求操作系统来裁定锁的问题,不用麻烦操作系统,直接在CPU内部就搞定了。最底层是lock cmpxchg指令,这个cpu做修改的时候不允许其他cpu操作...

2021-03-31 21:38:24 77

原创 学习《图解HTTP》有感

HTTP协议的出现主要是为了解决文本传输的难题(大家互相共享文件没有一个规范),最初的设计理念是:借助多文档之间的关联形成超文本,成为相互参阅的WWW(万维网)计算机和网络设备要通信,如何探测设备,怎么开始通信,什么语言,什么时候结束通信,一系列都要有规范,统称为TCP/IP协议族(包含HTTP,TCP,IP,UDP,DNS)与互联网相关的协议加起来统称为TCP/IP,也有其他两种定义,这里不赘述。TCP/IP协议按层次分为应用层,传输层,网络层,数据链路层分层的好处:1.每层有修改只修改某

2021-01-31 12:31:31 189

原创 Leetcode--329. 矩阵中的最长递增路径

给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =[ [9,9,4], [6,6,8], [2,1,1]]输出: 4解释: 最长递增路径为[1, 2, 6, 9]。示例 2:输入: nums =[ [3,4,5], [3,2,6], [2,2,1]]输出: 4解释: 最长递增路径是[3, 4, 5, 6]...

2020-11-16 21:39:58 90

原创 Leetcode--450. 删除二叉搜索树中的节点

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

2020-11-16 20:41:30 75

原创 解决问题 com.alibaba.fastjson.JSONObject cannot be cast to xxx

{ "msg": "success", "code": "success", "data": [ { "create_time": "2020-11-09 11:54:08", "exec_status": "正常", "host_id": 1527414, "id": 3136268, "ip": "10.127.22.132", .

2020-11-09 16:12:25 41207 3

转载 剑指 Offer 68 - II. (二叉树)二叉树的最近公共祖先

题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点

2020-11-06 11:30:34 93

转载 centos 安装MySQL报错You could try using --skip-broken to work around the problem You could try running:

centos安装MySQL报错You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigestwget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpmrpm -ivh mysql-community-release-el7-5.noarch.rpmyum ins.

2020-10-29 20:19:40 1487 2

原创 Leetcode--763. 划分字母区间

字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入:S = "ababcbacadefegdehijhklij"输出:[9,7,8]解释:划分结果为 "ababcbaca", "defegde", "hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。提示:S的..

2020-10-22 21:44:56 309

原创 RequestMapping注解的继承问题

@RequestMapping注解被用来注明访问路径,例如:@RequestMapping("/data")@RequestMapping("/user/list")在写代码的时候遇到了there is already xxxx been method的错误,显示之前已经被注入,发现是父类中有相同的RequestMapping注解由此可以看出RequestMapping是可以被继承的,此时需要将父类的该方法覆盖(重写该方法),就可以使当前的RequestMapping生效下表参考

2020-10-21 14:49:27 3401 1

转载 获取axios的return值

因axios返回值是异步操作,获取返回值时,请求操作还未完成,就已经执行了赋值,导致结果位undefined。错误示例如下: 1 2 3 4 5 6 7 8 9 10 functionGetData(){ letdata; axios.get(请求地址,{params:param}).then(res=>{ ...

2020-10-15 19:40:57 5790

原创 创建SpringBoot项目时出现Cannot resolve plugin org.springframework的解决方法

原因是添加依赖时未添加版本号解决方法:在pom.xml文件中的依赖添加版本号原来: <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin><plugin>

2020-10-13 18:09:12 9760 1

原创 idea中每次push/pull都需要输入账号密码

在terminal中输入git config --global credential.helper store之后再输入一次账号密码以后就可以免输入账号密码了

2020-10-13 14:13:11 1513

原创 burp的intruder报错Payload set 1: Invalid number settings

使用burp对某一参数进行测试时,当类型为numbers时,报如下错误:解决方法:先点击Go back之后:在Decimal,Hex两个选项之间来回点就好了

2020-09-29 15:35:03 1151

原创 Kubernetes原理浅析

传统部署时代:早期,组织在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况,结果可能导致其他应用程序的性能下降。一种解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源利用不足而无法扩展,并且组织维护许多物理服务器的成本很高。虚拟化部署时代:作为解决方案,引入了虚拟化功能,它允许您在单个物理服务器的 CPU 上运行多个虚拟机(VM)。虚拟化功能允许应用程序在 VM ..

2020-09-28 16:48:06 161

原创 sqlmap的简单用法

sqlmap 是一个开源渗透测试工具,它可以自动检测和利用 SQL 注入漏洞并接管数据库服务器。它具有强大的检测引擎,同时有众多功能,包括数据库指纹识别、从数据库中获取数据、访问底层文件系统以及在操作系统上带内连接执行命令。安装完python,sqlmap以后就可以进行使用简单使用:知道库名之后:爆破表名python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-11/index.php?id=1 --dbms MYSQL -D 库名 -

2020-09-28 14:38:43 119

原创 Spring --getBean用法

1.在初始化时保存ApplicationContext对象2.通过Spring提供的utils类获取ApplicationContext对象3.继承自抽象类ApplicationObjectSupport4.继承自抽象类WebApplicationObjectSupport5.实现接口ApplicationContextAware6.通过Spring提供的ContextLoader来说一下实现接口的方法:@Componentpublic class example im.

2020-09-08 14:08:58 625

原创 maven加载报错:Unable to reload Maven project

2020-09-03 19:11:01,123 [9336900] ERROR - #org.jetbrains.idea.maven - Cannot reconnect. java.lang.RuntimeException: Cannot reconnect. at org.jetbrains.idea.maven.server.RemoteObjectWrapper.perform(RemoteObjectWrapper.java:82) at org.jetbrains.ide.

2020-09-03 20:26:59 4528 1

原创 centos 7 网络设置与图像化界面下载

①打开虚拟机的设置,找到网络设置。再启用网卡1,选择连接方式为Host-only,界面名称选择VirtualBox Host-Only Ethernet Adapter,设置如下图提示:1.对虚拟机网络设置,需要先关闭虚拟机;2.这里采用Host-Only模式是为了给虚拟机设置一个固定IP,让主机与虚拟机网络相通。②再启用网卡2,连接方式选择网络地址转换(NAT)即可,如下图提示:1.到这里两块网卡就设置完毕了,可以启动虚拟机,进一步配置;2.这里采用网络地址转换(NAT)模式,

2020-09-01 21:08:09 206

原创 render字符串拆分加链接

"render": function(data, type, row, meta) { if(data!=null && data.length>0){ var result=""; var dataIdArray = data.split(","); for(var configIdIndex = 0;configIdIndex<dataIdArray.length;configIdIndex++){ var dat.

2020-08-27 15:16:01 353

转载 select2实现全选

实现select2全选所有的选项传入select2的Id即可。//select2全选所有的选项function chooseSelect2All(select_id) { //document的对象,可以取到option var item = document.getElementById(select_id)//$('#'+select_id); //jquery的对象,用来指定select2控件的选择项 var item_jq = $('#'+select_id

2020-08-27 13:42:42 1832

原创 修改类名后依旧按照原先的类名进行加载

在springMvc+Mybatis的项目里面修改了一个类名,之后编译的时候报出了以下的错误试过 clean也没有作用黑色涂鸦部分为原先的类名删掉target文件夹解决了问题原因是target会保存之前编译好的路径,编译时如果再根据之前的路径去寻找,一定是没有对应的类的...

2020-08-11 15:59:14 270

原创 insert和insertSelective区别

在数据库中给一些字段设置了默认值调用mybatis逆向工程生成的insert方法保存时并没有给这些字段传值,insert的结果却是这些字段的值依旧为null之后查看源码发现insert方法会给所有字段赋一次值,因此即便未传该字段的值,也会给该字段赋值,并且赋了空值调用insertSelective方法可以避免这个问题,insertSelective只给有接收到参数的字段进行赋值...

2020-08-10 11:54:31 251

原创 前端调用后端接口的错误(400)

前端调用后端接口时,浏览器debug出现Failed to load resource: the server responded with a status of 400 (Bad Request)之后debug还会出现出现问题的url这种问题一般是前后端参数不一致的问题比如user类,里面包含属性id,name,age,gender等参数前端发送的json格式而后端接收的时候使用user类型接收,就会出现这个错误需要先以json格式进行接收,之后进一步的将其转化为user类型的数据

2020-08-07 11:10:33 8654

原创 Mybatis中example的使用

Mybatis有很简单的方式来完成sql语句的编写如下:int id = 2;ClusterExample ClusterExample = new ClusterExample();ClusterExample.Criteria criteria = ClusterExample.createCriteria();//增加条件,对应为where,下面这行代码可以理解为where id = 2criteria.andIdEqualTo(id);//下面语句可以理解为select * from.

2020-08-06 14:59:54 300

原创 selectByExample和selectByExampleWithBLOBs的区别

1、问题描述: 在mybatis逆向工程生成的代码中会有selectByExample 和selectByExampleWithBLOBs 两个方法,这个两个方法有何区别?2、问题解析:1>两个方法的返回的resultMap 不同selectByExample 方法返回:BaseResultMapselectByExampleWithBLOBs 方法返回:ResultMapWithBLOBsResultMapWithBLOBs 定义时,继承了BaseResult...

2020-08-06 14:58:47 1798

原创 浅析Serverless

近两年来,Serverless 概念在开发者中交流的越来越多,主题分享呈现爆发趋势。有人说:Serverless 正在改变未来软件开发的模式和流程,它就是云计算的未来。在一个应用中包含了多个功能,如订单创建、订单查询和订单修改等。应用数据存储在外部数据库中。数据库和应用一样,也部署在数据中心的主机上,由用户负责运维。开发人员进行业务开发时,需要关心很多和服务器相关的服务端开发工作,比如存储和计算资源、缓存、消息服务、数据库,以及防止服务器被安全攻击,负载均衡和横向扩展能力,考虑服务器容灾稳定性等非专

2020-07-31 15:19:47 180 1

原创 域名,ip,mac地址

域名:由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。mac地址:物理地址、硬件地址,用来定义网络设备的位置。IP地址:指互联网协议地址,是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。所以MAC地址是不可改变的,IP地址是可以更改的。由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设

2020-07-16 15:09:30 1802

转载 URI与URL

统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来。拿人做例子,假设这个世界上所有人的名字都不能重复,那么名字就是URI的一个实例,通过名字这个字符串就可以标识出唯一的一个人。现实当中名字当然是会重复的,所以身份证号才是URI,通过身份证号能让我们能且仅能确定一个人。那统一资源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做类比,就可以有:动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人可以看到,这个字符串同样标...

2020-07-16 10:36:03 132

原创 Leetcode--96. 不同的二叉搜索树(java)

给定一个整数 n,求以1 ...n为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 ...

2020-07-15 22:24:41 133

空空如也

空空如也

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

TA关注的人

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