
工作经验积累
向上吧,少年!
这个作者很懒,什么都没留下…
展开
-
StringUtils工具类
Apache commons-lang3 工具包。百度搜索,要是想使用StringUtils工具类,需要导入依赖<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version></dependency>导入依赖后,在idea中的方法输...原创 2021-08-03 18:14:47 · 495 阅读 · 0 评论 -
git遇到的已经提交到远程分支的代码需要回滚怎么办
git遇到的已经提交到远程分支的代码需要回滚怎么办,我先git reflog然后git reset --hard 索引到想要的版本,然后git push origin 远程分支名但是报错git push origin 远程分支名。。。error: failed to push some refs to 'ssh://git@xxx'hint: Updates were rejected because the tip of your current branch is behindhint原创 2021-08-03 17:42:58 · 460 阅读 · 0 评论 -
idea中根据打开的类快速找到右侧文件目录位置
参考链接:https://blog.youkuaiyun.com/wildwolf_001/article/details/81354161原创 2021-07-21 11:29:00 · 841 阅读 · 0 评论 -
0708git
今天学习一个过去不知道的命令git cherry-pickgit cherry-pickgit cherry-pick(拣选)拣选会提取某次提交的补丁,之后尝试将其重新应用到当前分支上。这种方式在你只想引入特性分支中的某个提交时很有用。参考博客:https://www.cnblogs.com/fengkunangel/p/10545119.html如果我们和团队成员在不同的分支开发一个功能的不同模块,如果我们在自己的分支上有用到同事分支的一些实现,那么这个时候我们可以用git cherry.原创 2021-07-08 18:00:21 · 64 阅读 · 0 评论 -
0707git
一、git diff查看工作区变动二、git stash我用命令"git checkout master"从自己的开发分支切换到master遇到了一些问题,提示Please commit your changes or stash them before you switch branches.于是学习一下stash参考博客:https://www.cnblogs.com/tocy/p/git-stash-reference.html1、git stash会把所有未提交的修改(包括暂存原创 2021-07-07 15:12:04 · 67 阅读 · 0 评论 -
0706git
git pull示意图:https://blog.youkuaiyun.com/weixin_39540725/article/details/110660899git命令log与reflog的比较:在博客https://blog.youkuaiyun.com/u013252047/article/details/80230781中说git log 命令可以显示所有提交过的版本信息git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)这个博客写得模糊不清,原创 2021-07-06 15:35:41 · 94 阅读 · 0 评论 -
springmvc的controller是线程安全的吗
参考:https://blog.youkuaiyun.com/qq_28163175/article/details/90247794Spring的controller默认是Singleton的,这意味着每一个request过来,系统都会用原有的instance去处理,这样导致两个结果:一是我们不用每次创建Controller,二是减少了对象创建和垃圾收集的时间;由于只有一个Controller的instance,当多个线程调用它的时候,它里面的instance变量就不是线程安全的了,会发生窜数据的问题。原创 2021-07-06 13:02:12 · 612 阅读 · 0 评论 -
0625的积累
返回上/下个光标地方:Ctrl+Alt+小键盘← 和 Ctrl+Alt+小键盘→文件左右切换:Alt+小键盘← 和 Alt+小键盘→查看哪里调用过方法 可以Ctrl+左键Shift+Enter 在当前行的下方开始新行Ctrl+向左箭头 将光标移至前一个单词Ctrl+向上箭头 屏幕向上滚动一行Ctrl+W 选中整个单词Ctrl+Shift+U 切换大小写 Ctrl+Shift+F有几个选项:Match case:是否匹配大小写Words:是否是一个单词Regex:通过...原创 2021-06-26 10:33:10 · 56 阅读 · 0 评论 -
git0625
今天git主要学习git reset比较好的博客:https://www.cnblogs.com/pansidong/p/8716226.htmlhttps://www.jianshu.com/p/c2ec5f06cf1ahttps://www.cnblogs.com/virgosnail/p/11585202.html原创 2021-06-25 14:38:15 · 62 阅读 · 0 评论 -
Java8 Stream
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。生成流:List strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");List filtered = strings原创 2021-06-23 17:25:35 · 114 阅读 · 0 评论 -
maven的package与install命令区别
packagepackage是把jar打到本项目的target下,install时把target下的jar安装到本地仓库。Eu原创 2021-06-18 18:22:13 · 105 阅读 · 0 评论 -
Jackson之ObjectMapper对象的使用
转载:https://blog.youkuaiyun.com/qq_41834086/article/details/111152470Jackson之ObjectMapper对象的使用Jackson是一个处理JSON的类库Jackson ObjectMapper类是使用Jackson解析JSON最简单的方法。Jackson ObjectMapper可以从字符串、流或文件解析JSON,并创建Java对象或对象图来表示已解析的JSON。将JSON解析为Java对象也称为从JSON反序列化Java对象。.转载 2021-06-10 10:17:21 · 271 阅读 · 0 评论 -
2021-05-08
来源:blog.youkuaiyun.com/lq18050010830/article/details/89845790雪花算法是开源的分布式id生成算法,其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上保持自增的。这 64 个 bit 中,其中 1 个 bit 是不用的,然后用其中的 41 bit 作为毫秒数,用 10 bit 作为工作机器 id,12 bit 作为序列号。SnowFlake算法的优点:(1)高转载 2021-05-08 14:31:45 · 64 阅读 · 0 评论 -
一个线程OOM后,其他线程还能运行吗?
发生OOM后的线程一般情况下会死亡,也就是会被终结掉,该线程持有的对象占用的heap都会被gc了,释放内存。因为发生OOM之前要进行gc,就算其他线程能够正常工作,也会因为频繁gc产生较大的影响。...原创 2021-05-07 12:29:15 · 357 阅读 · 0 评论 -
AtomicStampedReference
使用AtomicStampedReference解决CAS机制中ABA问题我们看到构造函数需要传人初始引用initialRef和时间戳initialStamppublic boolean compareAndSet(V expectedReference, V newReference, int expectedStamp,原创 2021-04-27 12:59:34 · 89 阅读 · 0 评论 -
脏读、不可重复读、幻读
在关系型数据库中,多个事务并发操作数据库,如果没有有效的机制进行避免就会导致出现脏读,不可重复读,幻读。脏读1、事务a修改了数据,事务b可以读取到,但是由于某种原因,事务a回滚了,那么事务b读取的数据就是脏数据。这种读取到另一个事务未提交的数据的现象就是脏读。2、不可重复读事务b读取了两次数据,在这两次读取的过程中事务a修改了数据,导致事务b在这两次读取出的数据不一致。这种在同一个事务中,前后两次读取的数据不一致的现象就是不可重复读3、幻读事务b前后两次读取同一个范围的数据,转载 2021-04-26 19:56:47 · 136 阅读 · 0 评论 -
读《Java开发手册》笔记
今天读了《阿里巴巴Java开发手册》,有一些收获,记录下来:1、SQL性能优化的目标:至少要达到range级别,要求是ref级别,最好是consts。2、不要使用count(列名)来替代count(*),count(*)是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。count(*)会统计值为NULL的行,而count(列名)不会统计此列为NULL值的行。3、不得使用外键与级联,一切外键概念必须在应用层解决。4、如果需要存储表情,那么选择utf8mb4进行原创 2021-04-25 21:22:24 · 66 阅读 · 0 评论 -
idea调试基础
以下参考:https://blog.youkuaiyun.com/minkeyto/article/details/81489041这篇博客只介绍最基本的idea调试技巧:8个按钮,从左到右依次如下:1、Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。2、Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。3、 Step Into (F7):步入,如果当前行有方法,可以进入方转载 2021-04-23 10:57:56 · 134 阅读 · 0 评论 -
LinkedList 中add 和 offer 的区别
我们先来看源码,public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable可以看出,LinkedList实现了List和Deque接口。那什么时候使用add,什么时候使用offer呢?使用的时候看应用场景 作为List使用时,采用add/原创 2021-04-22 21:27:31 · 1180 阅读 · 0 评论 -
idea的pom文件导入jar包问题
刚开始是这样<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId></dependency>发现导入不了,后来百度了好久,始终解决不了,最后才知道没加版本号<dependency>原创 2021-04-13 14:34:22 · 167 阅读 · 0 评论 -
@JsonProperty相关
记录一个问题现在是这样的,我请求一个url,获得一个json字符串形式的实体,返回中有一个字段是isDirectory,我现在需要写一个VO来接收返回的json字符串形式的实体,但是字段isDirectory我不能在VO中定义为isDirectory,否则会报错,至于为什么报错,因为什么报错,在这先不表,记住一点就是,Java开发手册里也提到了这一点,就是布尔类型的字段不要以is开头,否则会出错。这个时候我就把isDirectory字段在VO中写成了isdirectory,但是现在出现了问题,无论原创 2021-04-01 17:09:06 · 145 阅读 · 0 评论 -
不要把boolean类型的属性的名称定为以is开头
在《Java开发手册》中有一条【强制】POJO类中的任何布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误。反例:定义为booleanisSuccess的属性,它的方法也是isSuccess(),RPC框架在反向解析的时候,“以为”对应的属性名称是success,导致属性获取不到,进而抛出异常。private boolean isSuccess;public boolean isSuccess() { return isSuccess;}public void se.原创 2021-03-19 16:40:29 · 438 阅读 · 0 评论 -
No serializer found for class and no properties discovered to create BeanSerializer
今天用浏览器请求接口,控制台报错com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.bonc.alluxio.vo.ConfigCheckErrors and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature原创 2021-03-19 14:46:28 · 2025 阅读 · 0 评论 -
idea拉取GitLab中出的问题
想把gitlab上的代码拉到我本地idea中,提示让我输入账号密码,试了几次都不对,于是我采用了在GitLab中配置ssh key的方式,具体怎么做很简单,https://www.cnblogs.com/hafiz/p/8146324.html参考上面博客中的二、解决方案就可以了。...原创 2021-03-11 13:17:32 · 803 阅读 · 0 评论 -
IDEA报错:Project ‘org.springframework.boot:spring-boot-starter-parent:2.3.6.RELEASE‘ not found
今天开发<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.3</version> </parent>我本来用的是2.4.3,leader让我用2.3.6.RELEA原创 2021-03-10 18:01:59 · 34970 阅读 · 18 评论 -
优秀博客汇总
这篇博客我会把平时任务写得很好的博客给记录下来:深入浅出数据库索引原理:cnblogs.com/aspwebchh/p/6652855.html原创 2021-03-01 10:29:46 · 74 阅读 · 0 评论 -
如何将idea中的项目上传到码云
1、首先在idea中安装插件gitee2、VCS-import into version control-share project on gitee3、登录码云账号(邮箱)和密码原创 2021-02-27 21:27:35 · 240 阅读 · 0 评论 -
Git和Github
Git是分布式版本控制系统的典型代表版本控制系统应该具有什么功能?1、协同修改,也就是多个人可以并行修改同一份文件,而且不产生冲突。2、数据备份,能够保持之前提交的版本以及相关信息。3、版本管理,在保存每一个版本信息的时候,不保存重复数据,以节约存储空间,SVN采用的是增量式的管理方式,Git采用的是文件系统快照的方式。4、权限控制5、分支管理使用Git我们本地就保存了完整的版本历史。...原创 2021-02-28 10:31:05 · 82 阅读 · 0 评论 -
Hadoop是什么,以及Hadoop和Spark的关系
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。HDFS是一个分布式文件系统,对数据进行分布式储存和读取。可以把HDFS理解为一个分布式的,有冗余备份的,可以动态扩展的用来存储大规模数据的大硬盘。MapReduce是一个计算框架:MapReduce的核心思想是把计原创 2021-02-22 15:04:31 · 392 阅读 · 0 评论 -
hive
什么是hive?下面来看百度百科对hive的解释:hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对原创 2021-02-22 11:02:15 · 68 阅读 · 0 评论 -
java开发中钱用什么类型?
我们开发的项目有可能会涉及到钱,那么钱应该用什么数据类型呢?我们大多数人都会认为应该用double,那么是这样吗?看下面的例子为什么会这样呢?因为float和double都是浮点数, 都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 往往难以确定。所以说,float和double都是不能用来表示精确的类型的;金额必须是完全精确的计算, 故不能使用double或者float, 而应该采用java.math.BigDecimal.decimal小数金钱.原创 2021-02-20 14:38:09 · 5597 阅读 · 5 评论 -
iTerm2安装与设置
作为软件工程师,我们总是需要经常与终端打交道,在windows系统中,xshell很受欢迎,在macOS系统中,iTerm2比较受欢迎,下面我们就来学习一下iTerm2的使用。我们先来学习几个比较常用的快捷键1、在iterm2中,选中某个路径或者某个词汇,iterm2就会自动复制。2、command + enter 进入与返回全屏模式3、command + t 新建标签4、command + f 查找5、command + d 水平分屏6、command + shift + d原创 2021-02-07 14:56:59 · 2146 阅读 · 0 评论 -
REST
什么是REST?知乎上有人概括地很精辟:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口)Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。比如:api.qc.com/v1/friends: 获取某人的好友列表;用.原创 2021-02-03 20:24:48 · 114 阅读 · 0 评论 -
PID
任务管理器中的PID(Process Identification)是指进程识别号,也就是进程标识符。操作系统里每打开一个程序都会创建一个进程ID,即PID。原创 2021-02-02 12:54:19 · 172 阅读 · 0 评论 -
Shell
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell.Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shel.原创 2021-02-01 09:40:32 · 133 阅读 · 0 评论 -
ps -ef | grep
ps命令的作用是显示进程信息|管道,表示ps和grep命令同时执行grep 命令是查找(Global Regular ExpressionPrint),能使用正则表达式搜索文本,然后把匹配的行显示出来;ps命令有一些参数:-e : 显示所有进程-f : 全格式-h : 不显示标题-l : 长格式-w : 宽输出a :显示终端上的所有进程,包括其他用户的进程。r :只显示正在运行的进程。u :以用户为主的格式来显示程序状况。x :显示所有程序,不以终端机来区分...原创 2021-01-29 16:31:06 · 163 阅读 · 2 评论 -
mac终端ssh连接远程服务器
前提:要有你需要连接的服务器的ip,端口号,服务器上的账户和密码1、首先打开终端,然后输入sudo su - 回车进入根目录2、然后输入:ssh -p 端口号 服务器用户名@ip (例如ssh -p 22 userkunyu@119.29.37.63)回车,到这会让你输入yes或者no来确认是否连接,输入yes回车3、然后输入在服务器上的用户密码回车4、到此进入的是你在服务器上的账户的目录,即为连接成功最后输入sudo su -进入服务器的根目录,进行操作...原创 2021-01-29 09:58:13 · 575 阅读 · 0 评论