自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(195)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 Git基础操作:git stash 相关命令举例讲解

git stash 是 Git 提供的一个强大的工具,它允许你临时保存(或“暂存”)当前工作目录和索引(暂存区)的改动,从而可以切换分支或执行其他操作而不影响当前的工作状态。

2024-01-11 10:00:30 612

原创 “程序员35岁危机”,程序员危机的核心原因是年龄吗?

这篇文章讨论了程序员在当前时代面临的危机,主要源于年龄与技能的匹配问题。作者认为,35岁是一个重要的年龄节点,许多程序员在这个年龄段会感到焦虑,因为他们的工作经验似乎没有与之相匹配的增长。文章分析了个人焦虑的原因,包括自身年龄和圈子的影响,以及收入增长率放缓的恐慌。作者提到,个人收入增长率放缓可能是个人因素和外部环境因素的结果。外部环境因素包括程序员供给增多和市场需求减少,而程序员的供给已经过饱和,市场需求也开始下降。

2024-01-03 23:30:49 892

原创 Git基础操作:合并某个分支的一个目录到另一个分支

有的时候不小心在错误的分支A上开发了一点代码,也已经提交了;或者分支A原计划先上线的,但是业务调整需要插一个需求进来,但是插进来的需求中有一部分代码在分支A中已经写过了。

2023-11-27 14:34:28 462

原创 利用ssh端口转发

localhost:80 是目标地址和端口,这里的 localhost 是相对于SSH服务器来说的,所以 localhost:80 表示SSH服务器上的80端口。这个命令是利用了ssh的端口转发功能,SSH 命令的 -L 选项可以创建一个在本地机器上的端口转发,可以把本地的一个端口的流量转发到远程的一个端口。你的本地机器IP是192.168.1.100,你有一个远程服务器,假设IP是 203.0.113.0,上面运行了一个web服务在 80 端口。8080 是你本地机器上监听的端口。

2023-11-20 23:42:55 331

原创 Git常见问题:git pull 和 git pull --rebase二者区别

总之,git pull 和 git pull --rebase 都可以将远程的更改合并到本地分支,但它们的合并方式不同。这意味着,如果在本地和远程分支上有新的提交,git pull 会创建一个新的提交(称为 “merge commit”),该提交将两个分支的历史合并在一起。由于这样的合并方式,你的 Git 提交历史可能会变得非线性,包含许多分叉和合并。git rebase:将本地分支上的提交 “重放”(重新应用)在远程分支上,而不是创建一个新的合并提交。这可以使你的提交历史保持线性,不包含分叉和合并。

2023-09-04 17:44:39 2091

原创 java进程引发的内存泄露问题排查分析

java进程引发的内存泄露问题排查分析

2023-04-27 20:27:51 3127 3

原创 hive基础: sql处理树状结构,扁平展示,以及节点打标

背景:部门表是树状结构需求1: 将每个部门的所有的父级节点水平展示出来需求2: 为每个部门打标归类,父级任意一级节点中含有1的归类成'aaaa',父级任意一级节点中含有2的归类成'bbbb',否则归类成'其它';

2023-04-17 21:23:05 711

原创 hive基础: sql 查询数据去重小技巧

【代码】hive sql 去重小技巧。

2023-03-17 10:42:25 675

原创 Git常见问题:Your branch and ‘xxx/xxx‘ have diverged

Your branch and ‘xxx/xxx‘ have diverged

2023-03-09 12:17:20 1859

原创 一文搞懂什么是SaaS、BaaS、PaaS和IaaS

saas,baas,paas,laas

2023-03-06 14:01:29 719

原创 【Java并发工具类】Semaphore适用场景介绍

基于Semaphore我们可以做什么1.限流器使用场景2.用信号量实现互斥锁

2023-02-17 16:39:31 137

原创 长期主义就是坚持重复的做一件事?

“长期主义”最近这个词比较热,个人在阅读文章时经常会遇到,说得俗一点,“长期主义”这个词有些泛滥成灾了,也引发了我个人的一些思考:长期主义等于坚持?长期主义等于重复的做一件事?大家口中的长期主义,到底多长时间才算长期?

2023-02-17 16:36:45 161

原创 UML之类图,继承,实现,聚合,组合

UML之类图,继承,实现,聚合,组合

2022-08-11 22:36:41 3679

原创 Maven依赖仲裁

影响依赖的标签都有,依赖的作用域都有哪些,Maven仲裁机制原则,依赖传递原则

2022-07-05 23:33:50 695

原创 自己动手实现javap

纸上得来终觉浅,绝知此事要躬行,今天就动手实现一个jdk自带的工具javap- 阅读本文可以带你完整的自己实现javap的全部功能- 本文只提到了核心代码,完整代码git地址请访问:https://github.com/lzc-alioo/itstack-demo-jvm- 项目访问入口类是com.lzc.wuxin.Jad1,com.lzc.wuxin.Jad2,将分别代表javap,javap -v的实现逻辑,如果你在运行过程中有任何问题欢迎留言,看到后一定为你解答,同时如果你发现代码的缺陷,

2022-04-17 21:44:28 502

原创 Git高级操作:变更git仓库地址

有时候公司仓库地址变化了,或者从GitHub仓库克隆了一个开源项目,后来想修改下,但是代码不能直接提交到别人的项目中,打算克隆到自己github仓库下再进行修改,便可以通过下面的命令直接修改

2022-04-04 20:53:56 630

原创 Git高级操作:git设置别名,研发提效必备技能( git alias)

以这个命令为例```git status```经过上面设置以后,直接运行 git st 就和 git status 有一样的效果了,其它的就不一一举例了

2022-03-28 10:22:30 1014

原创 在jar目录中搜索jar包里的文件

在jar目录中搜索jar包里的文件

2022-01-07 15:09:32 2372

原创 vi vim快捷键

vi vim 快捷键

2021-12-19 15:51:00 230

原创 JavaAgent的那点秘密

JavaAgent的那点秘密前言大家都知道Java文件编译成Class文件之后才能在Jvm中运行的,而Class文件自有一套规范:不必一定是Java文件经由javac编译产生;其它编程语言也可以直接生成Class文件交由Jvm运行;既然其它语言都可以生成Class文件,理论上Java语言自己是不是也可以修改/篡改Class文件呢?答案是肯定的。那么是否有这方面的需求呢(用Java语法去直接修改Class文件)我举个例子:需要去增强别人的二方包,需要针对其中大量的方法进行增强程序运行期间

2021-10-31 20:43:22 345

原创 Git基础操作:git只删除远程文件

比如我使用idea进行开发,不小心将.idea目录提交到远程仓库了,即使后增加了.gitignore忽略此目录,但是之前已经提交到仓库的文件是不管用的,按照下面命令即可只删除远程仓库的文件夹git rm -r --cached .idea //--cached不会把本地的.idea删除git commit -m 'delete remote .idea dir'git push -u origin master...

2021-10-25 11:08:33 289

原创 去除网页水印

按f12打开开发者工具面板,定位div,一般是找到外层的div(水印所在的最外层div),找到它的style=“background: url(data:image/png;base64,iVBORw0K…) left top repeat;”,把这一大坨delete掉,就可以了。

2021-08-18 21:07:09 8409 3

原创 Git基础操作:git merge之后如何回滚

git merge这个命令大家都会用了,但是有时候执行完merge发现一堆冲突后悔了,这个时候该怎么办呢?mac@localhost$ git merge master Auto-merging javademo/src/main/java/a/b/c/Hello.javaCONFLICT (content): Merge conflict in javademo/src/main/java/a/b/c/Hello.java...Automatic merge failed; fix conf.

2021-08-17 16:17:08 7297

原创 Redis 主从数据不一致有哪些场景以及如何解决

主从切换生产环境的主从间的数据复制通常都是异步进行的,当进行failover时,可能会出现在数据没有完全同步到从库的情况下进行了主从切换解决方案:• 【择优选择】主从切换时优先选择同步进度更加靠前的节点,尽可能的减少数据丢失• 【缩短主库持久化的周期性间隔】主从延迟主从延迟带来的现象主要有以下2种情况主库有从库没有主库没有从库却有上述情况1大家都好理解,这里我重点介绍下情况2.主库没有从库却有的情况,举个例子,当一个key设置过期时间比如1分钟,expire 60 到redis中过期时

2021-05-11 10:25:49 1315

转载 redis常见问题和解决方案

持久化、主从问题(1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件(a) Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最好不要写内存快照。(b) Master AOF持久化,如果不重写AOF文件,这个持久化方式对性能的影响是最小的,但是AOF文件会不断增大,AOF文件过大会影响Master重启的恢复速度。Master最好不要做任何持久化工作,包括内存快照和AOF日志

2021-05-11 00:37:04 732

原创 Git基础操作:合并某个分支的一个commit到另一个分支

有的时候不小心在错误的分支A上开发了一点代码,也已经提交了,这个时候如果想把这部分代码移到正确的分支B上可以如下操作使用git log命令找到错误提交的那次commitidgit logcommit 8b19200eed045d5bef5b304c30eb76d74f3943ea (HEAD -> A, origin/A)Author: alioo <[email protected]>Date: 2021-03-08T21:45:40+08:00 取消没有必要的Recom

2021-03-08 22:33:25 955

转载 Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:$echo $$运行结果29949特殊变量列表变量 含义$0 当前脚本的文件名$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。$# 传递给脚本或函数的参数个数。$* 传递给脚本或函数的所有参数。$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与

2020-12-17 16:29:47 204

转载 HTTPS

本文首发于我的个人技术博客【看完还不懂HTTPS我直播吃翔】存在即合理http是非常常见的应用层协议,是超文本传输协议的简称,其传输的内容都是明文的。在这个混乱的世界,明文传输信息想想就可怕,网络“小混混”的手段远比我们这些凡人高明得多,他们有一万种方式劫持,篡改我们的数据。对于一个网站或者服务,如果你给你的用户两个选择:通讯数据明文传输,速度快;通讯数据加密传输,但是速度可能会稍微慢一点.我想,只要脑袋没有长歪的用户都宁愿牺牲一点速度去换取数据传输的安全。这样,https的存在就具备了合理性,

2020-12-08 16:31:29 458

原创 Wireshark抓包解释说明

Wireshark与对应的OSI七层模型TCP三次握手TCP三次握手的理论知识wireshark三次握手对应的报文情况图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。第一次握手数据包:客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图:点评:报文中有2个序列号,上面截图中写着是Seq=0,表示是相对的relative sequence number,其实真实的序列号Sequ

2020-12-06 13:58:25 6879

原创 分布式锁实现方案3、基于Redis的SET操作实现的分布式锁

在我的上一篇文章中,关于redis分布式锁的写法,释放锁还有些缺陷,细节见评论部分,本文进一步做了完善。分布式锁实现方案2、基于Redis的SET操作实现的分布式锁package me.ele.biz.alpaca.common.lock;import java.util.Collections;import java.util.concurrent.TimeUnit;import lombok.extern.slf4j.Slf4j;import me.ele.config.resourc

2020-11-08 18:02:32 181

原创 Mysql有则更新无则新增的几种方案

环境准备mysql版本:5.7.29测试表创建及初始化:--建表CREATE TABLE `test_user` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `uid` bigint(20) unsigned NOT NULL COMMENT '用户id', `name` varchar(128) NOT NULL COMMENT '用户名', PRIMARY KEY (`id`), UNIQ

2020-10-21 00:08:38 4674 1

原创 Git基础操作:git log简洁模式

这里采用了git alias方式git config --global alias.logp 'log --pretty=format:%cd:%cn:%h:%s'git config --list|grep aliasalias.st=statusalias.ck=checkoutalias.br=branchalias.cf=configalias.fc=fetchalias.brv=branch --valias.geturl=config --get remote.origin

2020-09-24 20:38:41 1031

原创 jdk8中list,map的stream常见操作

本文的知识点:map 与flatmap的区别从list中取出第一个元素,需要需要list为null,empty的情况package com.alioo.stream;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.Optional;import static java.util.stream.Col

2020-08-26 17:45:23 2181

原创 为什么有CompletableFuture

为什么有CompletableFuturejdk5时代引入了Future,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执行Futrue示例如下:ExecutorService es = Executors.newFixedThreadPool(1);Future<Integer> f = es.submit(() ->{ // dosomething lon

2020-08-10 21:45:11 504

原创 Java 能否自定义一个类叫 java.lang.ArrayList

关于这个问题,网上众说纷纭,类似的问题还有:java.lang.System,java.lang.String,java.lang.Math是否自己写一个jdk同名的类。大概的答案主要分成以下2派:可以,自定义classloader破坏双亲委派机制(由于系统自带的3个类加载器都加载特定目录下的类,如果我们自己的类加载器放在1个特殊的目录,那末系统的加载器就没法加载,也就是终究还是由我们自己的加载器加载。)点评:这个明显是没有实践过的一派人的发言,实践一下就会发现自定义classloader是行不通

2020-07-31 16:14:12 395 1

原创 sed替换、提取内容案例

sed替换这个命令可以看到替换后的内容,如果希望替换后的内容直接覆盖原文件,加上-i参数即可备注:mac与linux替换原文件略有区别,mac强制要求对原文件进行备份more tmp.txtabcdefhbhberfdhsfsed 's/b.*d/lzc/g' tmp.txtalzcefhlzchsfsed -i '' 's/b.*d/lzc/g' tmp.txtmore tmp.txtalzcefhlzchsfsed提取more tmp.txtabcdefhbhb

2020-07-24 11:35:42 807

原创 Git基础操作:push提交多个文件成功后如何撤销回退某个文件,回退代码到某次commit

之前写过类似的一篇文章 Git基础操作:push提交成功后如何撤销回退,回退代码到某次commit按照那个示例,把期间所有commitid下的文件都会回滚掉,但是如果只想将其中某个文件回滚可以下面的示例来搞。git log OneBean.javacommit 20ebdf62fdcd8cd7dba690b619c6bcb1d8329e28 (HEAD -> feature/mytestbanch)Author: aa <[email protected]>Date: Fri Jun 12

2020-06-12 18:26:02 3150

原创 ThreadPoolExecutor是如何处理任务的异常情况

本文因生产环境线程池某些场景下的任务异常后,日志文件中没有被记录进来产生的困惑引发的思考。当然如果所有异步的业务方法run里面都加上一层try…catch…就可以主动捕获所有的异常,也能够记录到日志文件中,然而总有一些人不漏掉了,今天分享下run方法如果不加try…catch…的后果测试调用execute//测试代码public static void testExecute() { ThreadPoolExecutor pool = new ThreadPoolExecutor(1, 1

2020-06-04 01:47:12 5373 1

原创 如何成为github开源项目的贡献者contributor

如果你对某个开源项目非常感兴趣,其中的issue你发现你会解决,或者发现了遗留下来的问题,而且你也想参与进来去改进它,那么接下来的内容就是告诉你如何成为一个contributor。1. 注册一个github帐号进入github.com官网,点击右上角 Sign up按钮一顿猛操作就可以了,不多说了,相信你能搞定。2. 将项目fork到自己帐号这里以 arthas项目为例,进入项目页https://github.com/alibaba/arthas,点击Fork按钮,Fork到自己的帐号下面fo

2020-05-22 20:34:33 9013

原创 【C++从入门到放弃】集合list,map的curd操作示例

#include <iostream>#include <vector>#include <map>void func(int &b) { b = b * b;}int main() { using namespace std; { vector <string> vec2; vec2.push_back("11"); vec2.push_back("22");.

2020-05-20 18:17:11 210

CSS参考手册-V4.2.4

非常全面的CSS参考手册,你值得拥有

2017-04-14

Servlet 中文乱码问题

1 GBK包含GB2312 即如果通过GB2312编码后可以通过GBK解码 反之可能不成立; 2 java nio charset Charset defaultCharset 获得平台默认字符编码; 3 getBytes 是通过平台默认字符集进行编码;

2014-10-20

CMPP2.0 CMPP3.0 接口协议

本规范规定了移动梦网短信业务开展过程中各网元(包括ISMG、GNS和SP)之间的消息类型和定义。 根据业务的发展,规范中的信令操作和参数将会做进一步的调整和增加。

2014-10-20

dtree 带复选框

提供的是思路 ,还有bug,要终结版请联系我

2010-03-24

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

TA关注的人

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