自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

那些年的代码

梅花香自古寒来

  • 博客(1299)
  • 资源 (3)
  • 收藏
  • 关注

原创 java字符串原理及其效率

java字符串类基本特点String类是final的,不可继承 String类源码实现通过字符数组实现,长度不可改变 可以通过String str = "123"来创建一个String对象 通过+可以将两个String对象串联,生成新的字符串 java运行时会维护一个字符串池,String池会保存程序运行中产生的各种字符串,这些字符串内容不能相同字符串创建的几种方式使用new...

2019-12-26 17:47:14 196

原创 shell中使用expect命令进行远程执行命令脚本

expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程。注意:1、脚本的执行方法与bash shell不一样,比如:expect example.sh2、向一个脚本传递参数时,bash shell是使用$1,$2...来接收参数的;而expect则将脚本的执行参数保存在数组$argv中,在脚本中一般将其赋值给变量:set 变量名 [lindex $arg...

2019-10-24 14:11:01 1025

原创 Linux搭建简单的http文件服务器

为了让自动化脚本可以通过wget来下载安装包,需要在集群中的某个节点部署一个http文件服务器在Ubuntu中通过apt-get install apache2安装apache2 CentOS7中通过yum install httpd安装httpd apache2的配置文件是/etc/apache2/apache2.conf httpd的配置文件是/etc/httpd/conf/...

2019-10-17 17:15:49 2515 1

原创 为什么mysql事务回滚后,自增ID依然自增

因为innodb的auto_increament的计数器记录的当前值是保存在存内 存中的,并不是存在于磁盘上,当mysqlserver处于运行的时候,这个计数值只会随着insert改增长,不会随着delete而减少。而当mysqlserver启动时,当我们需要去查询auto_increment计数值时,mysql便会自动执行:SELECT MAX(id) FROM 表名FOR UPDATE;...

2019-10-12 18:30:40 322

原创 Spring注解validated

spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。比如,我们判断一个输入参数是否合法,可以用如下方式一 基础使用因为spring-boot已经引入了基础包,所以直接使用就可以了1 首先在controller上声明需要对数据进行校验@RequestMapping(value="/url.json",method= {R...

2019-10-09 10:31:41 644

原创 Java学习之反射机制及应用场景

转载:https://www.cnblogs.com/whoislcj/p/6038511.html什么是Java反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制。反射机制提供了哪些功能? 在运行时判定任意一个对象所属...

2019-09-19 10:14:09 103

原创 Linux下rpm及yum安装jdk

笔者使用的Linux操作系统为CentOS7,Linux中有三种安装jdk的方式,在这里笔者主要介绍两种方式,即rpm和yum安装及卸载jdk,还有一种是直接从官网下载 tar.gz 压缩文件上传到Linux操作系统后解压配置环境变量即可,是最简单的一种方式,在这笔者不多做介绍。rpm安装JDK官网下载JDK1.7:http://www.oracle.com/technetwork/ja...

2019-09-02 10:00:15 161

原创 Node.js 安装及环境配置之 Windows 篇

一、安装环境1、本机系统:Windows 10 企业版(64位)2、Node.js:node-v8.9.4-x64.msi(64位)二、安装Node.js步骤1、下载对应自己系统对应的 Node.js 版本,地址:https://nodejs.org/zh-cn/2、选安装目录进行安装3、环境配置4、测试三、前期准备1、Node.js简介  Node.js® 是一个...

2019-08-16 10:34:46 131

原创 搭建vue开发环境的步骤

相信很多人在刚开始学习vue这个框架的时候,在最开始搭建开发环境的时候,都会遇到一些大大小小的坑,我之前在学习angular的时候搭建过一次,过了一个月后在搭建第二次的时候,竟然有一些混乱,所以今天想整理出来;vue现在在前端,相对于算是现在前端工程师都比较常用的框架之一,他和angular有一些相似之处,所以用过angular的伙伴们,再来学习vue应该不会感觉太难;一:在搭建vue的开...

2019-08-15 18:59:57 220

原创 Redis进阶实践之七Redis和Lua初步整合使用

一、引言 Redis学了一段时间了,基本的东西都没问题了。从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当中,来扩展其功能。lua脚本是用C语言写的,体积很小,运行速度很快,并且每次的执行都是作为一个原子事务来执行的,我们可以在其中做很多的事情。由于篇幅很多,一次无法概述全部,这个系列可能要通过多篇文章...

2019-08-14 15:25:48 127

原创 CentOS配置Redis环境变量

1、测试:在任何位置登录redisredis-cli指定服务器ip(不指定时,默认本机)redis-cli -h 127.0.0.1指定端口(不指定时,默认6379)redis-cli -h 127.0.0.1 -p 6378 2、配置环境变量(1)找到redis的安装目录find /usr/local -name "redis*"...

2019-08-14 14:40:51 1491

原创 Linux下设置和查看环境变量

Linux的变量种类按变量的生存周期来划分,Linux变量可分为两类:1 永久的:需要修改配置文件,变量永久生效。2 临时的:使用export命令声明即可,变量在关闭shell时失效。设置变量的三种方法1 在/etc/profile文件中添加变量【对所有用户生效(永久的)】用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久...

2019-08-14 14:37:39 482

原创 Redis安装完后redis-cli无法使用(redis-cli: command not found)

之前安装redis后客户端无法使用,即redis-cli执行后报找不到的错误。这主要是安装redis的时候没有把客户端装上,在StackOverFlow上找到了一种只安装redis cli的方法,这里跟大家分享下。wget http://download.redis.io/redis-stable.tar.gz(下载redis-cli的压缩包)tar xvzf redis-stable.ta...

2019-08-14 11:53:25 3731

原创 Redis报错:-bash: redis-cli: command not found

同样,安装redis后,使用redis-cli指令报错:sudo cp src/redis-cli /usr/local/bin/将redis-cli拷贝到bin下,让redis-cli指令可以在任意目录下直接使用

2019-08-14 11:52:45 2359 1

原创 redis lua查询和删除keys

eval "return redis.call('keys',KEYS[1])" 1 adv* eval "return redis.call('keys',KEYS[1])" 1 *eval "return redis.call('keys',ARGV[1])" 0 a*eval "return redis.call('del',unpack(redis.call('key...

2019-08-13 18:56:41 2611

原创 redis的通配符和批量删除Key

1.DEL 直接加键名称DEL key1 key2 key3127.0.0.1:6379> DEL site_msg_99973 false site_msg_99974 false site_msg_99979false2. 批量删除key可用keys ‘str*’ 列出要删除的key,接linux管道删除(linux命令行执行)根据通配符查看待删除的k...

2019-08-13 18:52:13 1070

原创 使用IDEA工具配置和运行vue项目(详细其中的坑)

刚来公司实习发现公司的前端使用的是vue,之前根本就没有听说过。然后一上来就需要看代码,but but 就是没有文档什么的东西,就需要自己去研读,我就想去运行其中的前端和后端联调起来方便理解,结果在配置和运行中出现了很多挫折,我就想写一下方便大家不去采坑,直接运行好一、在IDEA中配置vue插件点击File-->Settings-->Plugins-->搜索vue...

2019-08-13 14:55:14 992

原创 Redis 模糊查询删除操作

创建一条测试 数据 查询创建:set name xiaoming查询:get name 1、模糊搜索查询Redis 模糊搜索keys *select 22、删除指定key :# 删除所有以user开头的key 可以这样实现:# redis-cli keys "user*"1) "user1"2) "user2"# redis-cli keys "...

2019-08-12 10:38:48 2762

原创 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我...

2019-06-11 11:17:08 104

原创 Mybtais判断为空

最近项目开发中遇到一种查询条件为0的情况,但是过程一波三折,经过大佬提示得以解决,同时也发现了Mybatis对于参数0需要不同的处理。于是空闲后自己写了个例子测试一下。以此记录,方便查找。经测试得出:参数为Integer类型的0时,Mybtais会自动识别为‘’(空字符串)。想要使Integer的0符合条件则应该去掉该判断,但是空字符的情况从而也会被忽略,这应该也是开发时应该注意的。处理第一种 就是根据上面测试结果将n!=‘’条件去掉。第二种 将参数改为字符串类型,同样可以避免该问题,而.

2022-03-14 20:10:00 3034

原创 java怎么根据用户设定的时间执行定时任务

package com.yytx.cloud.qa.manager.timer;import com.alibaba.fastjson.JSON;import com.yytx.cloud.common.qa.entity.QaTaskEntity;import com.yytx.cloud.common.redis.service.RedisCache;import com.yytx.cloud.qa.manager.task.controller.QaTaskController;impo.

2022-03-11 17:02:14 5072

原创 Http 错误:“status“:404,“error“:“Not Found“,“message“:“No message available”,”path“:““

在对代码进行调试的时候,前端页面报了一个错:1 {"timestamp":"2019-09-02T02:55:45.555+0000","status":404,"error":"Not Found","message":"No message available”,”path":"/order/createorder"}  这个 bug 出现的原因是因为犯了一个更加低级的错误。。。但是我觉得解决问题的分析思路还是可以借鉴的,这里总结一下。  前端页面显示错误信息,但是在我的后端程序中没有一个

2021-08-23 15:28:49 30938

原创 Java中StringUtils对String判断

public class StringUtilText24 { public static void main(String[] args) { boolean flag = StringUtils.isEmpty(null); System.out.println(flag); flag = StringUtils.isEmpty(""); System.out.println(flag);//注意在 StringUtils .

2021-05-24 15:31:51 318

原创 Java 8 lambda表达式中为什么要求外部变量为final

Java 8语言上的lambda表达式只实现了capture-by-value,也就是说它捕获的局部变量都会拷贝一份到lambda表达式的实体里,然后在lambda表达式里要变也只能变自己的那份拷贝而无法影响外部原本的变量;但是Java语言的设计者又要挂牌坊不明说自己是capture-by-value,为了以后语言能进一步扩展成支持capture-by-reference留下后路,所以现在干脆不允许向捕获的变量赋值,而且可以捕获的也只有“效果上不可变”(effectively final)的参数/局部变量。

2021-05-17 20:54:04 1048

原创 Initialization of bean failed; nested exception is java.lang.IllegalStateException: Encountered inv

2021-05-17 19:16:23 2315 1

原创 2021java面试实战

用友汽车子事务mybatis 防止sql注入,什么情况下用到$sql优化get post 区别vue生命周期vue data数据同步新功能开发是怎么开始的git怎么解决冲突中电金信:springboot项目用容器吗数据采集系统(心跳、怎么同步)session怎么共享怎么做到单用户在线索引(几种类型、全文索引)数据量少用建索引吗视图的作用springboot 处理异常线程的状态怎么启动线程死锁sleep wa...

2021-04-06 17:14:43 343

原创 mysql 批量插入受参数配置限制的解决 max_allowed_packet

mysql根据配置文件会限制server接受的数据包一般指单条大小。有时候大的插入和更新会受max_allowed_packet 参数限制,在复制时候也会受到影响,导致写入或者更新失败;可以通过更改mysql服务器max_allowed_packet配置项来更改此值mysql>show variableslike '%max_allowed_packet%';+--------------------------+------------+| Variable_name ...

2021-03-22 19:25:03 557

原创 window的mysql开机自动启动

问题:安装完MySQL后,虽然在“计算机--管理-服务”中,MySQL服务设置了“自动”,但是每次需要用到数据库,还是需要我去手动打开MySQL服务。解决办法:1.以管理员的身份打开cmd命令窗口2.切换到mysql的bin目录下3.输入 mysqld -nt --install ,再回车4.系统会提示 Service successfully installed.5.打开“计算机--管理-服务”6.查看MySQL服务,确保启动类型为“自动”7.开机重启,连接数据库

2021-03-18 15:20:18 5476

原创 什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推

聚集索引我们先建如下的一张表CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` varchar(10) NOT NULL COMMENT '学生姓名', `age` int(11) NOT NULL COMMENT '学生年龄', PRIMARY KEY (`id`), KEY `idx_name` (`name`)) ENGINE=InnoDB;1234567

2021-03-17 19:10:08 224

原创 车主帮和作业帮的面试总结(以后博客和公众号一起同步)

https://mp.weixin.qq.com/s/7XxeIM1Zqx_tKPNVf1.gcroot有哪些?a.虚拟机栈(栈桢中的本地变量表)中的引用的对象b.方法区中的类静态属性引用的对象c.方法区中的常量引用的对象d.本地方法栈中JNI的引用的对象2.full gc,Minorgc区别?Gc触发条件:系统调用system.gc();当年轻代需要回收时会触发Minor GC(也称作Young GC)。年轻代由Eden Space和两块相同大小的Su...

2021-01-19 22:39:36 182

原创 redis用法介绍

Jedis常用方法APIhttps://blog.csdn.net/zhangguanghui002/article/details/78770071https://blog.csdn.net/lxlcxlm/article/details/78592263Redis命令用scan代替keys、smembers等命令https://blog.csdn.net/keketrtr/article/details/78626131Java Spring 与 Redis 操作封...

2020-07-23 08:57:41 180

原创 Map.putAll()用法

mportJava.util.HashMap;public class Map_putAllTest {public static void main(String[] args){ //两个map具有不同的key HashMap map1=new HashMap(); map1.put("1", "A"); HashMap map2 = new HashMap(); map2.put("2", "B"); map2.put("3", "C"); map1....

2020-07-19 11:25:12 478

原创 Random,ThreadLocalRandom,SecureRandom的几点思考

Random,ThreadLocalRandom,SecureRandom是Java中的随机数生成器,其中ThreadLocalRandom是jdk7才出现的,是Random的增强版。在并发访问的环境下,使用ThreadLocalRandom来代替Random可以减少多线程竞争,最终保证系统具有更好的线程安全。 Random是线程安全的,但是多线程下可能性能比较低。 特别是在生成验证码的情况下,不要使用Random,因为它是线性可预测的。所以在安全性要求比较高的场合,应当使用Secu..

2020-07-18 15:57:05 361

原创 java8流的地址

https://blog.csdn.net/weixin_45531950/article/details/99664197

2020-07-09 18:46:21 177

原创 maven命令package、install、deploy

我们在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的。下面通过分别执行这三个命令的输出结果,来分析各自所执行的maven的生命周期。 通过三个命令的输出我们可以看出三者的区别在于包函的maven生命的阶段和执行目标(goal)不同。在我的上一篇文章https://blog.csdn.net/zhaojianting/article/detail

2020-07-02 17:44:22 308

原创 windows下设置redis开机自启动

windows: 在windows下安装目录下 打开命令窗口: redis-server.exe--service-install redis.windows.conf --loglevel verbose

2020-06-30 16:34:24 236

原创 mysql的安装参考

https://blog.csdn.net/qq_37598011/article/details/93489404https://blog.csdn.net/weixin_38003389/article/details/90696337https://www.cnblogs.com/fanshudada/p/9781794.html

2020-06-30 11:26:03 114

原创 service mysql启动失败unit not found

想利用 service mysql start 启动mysql数据库,但是发现出现错误:Failed to start mysql.service: Unit not found.1、查询/etc/init.d/下是否存在mysqlll /etc/init.d/ | grep mysql发现该目录下并没有mysql的文件,若存在,请备份一下2、查询mysql.serverfind / -name mysql.servermysql.server一般在你安装的mysql

2020-06-30 10:09:08 6774 2

原创 JAVA中Wait()与Notity()、同步队列与等待队列

1.Wait()与Notity()方法wait(): 持有锁的线程调用wait()方法后,会一直阻塞,直到有别的线程调用notify()将其唤醒notify(): 只能通知一个等待线程,唤醒任意一个处于wait线程notifyall():将等待队列中的所有线程唤醒,并加入同步队列同步(线程间的通信) object:wait()与notify()必须搭配synchronized使用,使用wait与notify有一个前提,必须在同步方法或同步代码快中使用,必 须拿到相应对象的锁才能调用...

2020-06-28 18:14:08 575

原创 Java8函数式编程

http://www.imooc.com/article/80653https://www.jianshu.com/p/f3c2c32d981f

2020-06-21 10:46:50 108

Java异常面试题.pdf

Java异常面试题

2021-04-07

设计模式面试题.pdf

设计模式面试题

2021-04-07

BIO,NIO,AIO,Netty面试题.pdf

BIO,NIO,AIO,Netty面试题

2021-04-07

空空如也

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

TA关注的人

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