自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

之前写过类似的一篇文章 Git基础操作:push提交成功后如何撤销回退,回退代码到某次commit 按照那个示例,把期间所有commitid下的文件都会回滚掉,但是如果只想将其中某个文件回滚可以下面的示例来搞。 git log OneBean.java commit 20ebdf62fdcd8cd...

2020-06-12 18:26:02 143 0

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

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

2020-06-04 01:47:12 148 0

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

如果你对某个开源项目非常感兴趣,其中的issue你发现你会解决,或者发现了遗留下来的问题,而且你也想参与进来去改进它,那么接下来的内容就是告诉你如何成为一个contributor。 1. 注册一个github帐号 进入github.com官网,点击右上角 Sign up按钮一顿猛操作就可以了,不多...

2020-05-22 20:34:33 121 0

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

#include <iostream> #include <vector> #include <map> void func(int &b) { b = b * b; } int main() { using namespace s...

2020-05-20 18:17:11 66 0

原创 Git基础操作:个别文件回滚到指定版本

发现某个文件被错误的提交了,这个文件还是和其它代码一起提交的,如何还原一下呢? 命令格式: git checkout commitid $mypath/$myfile 具体案例: git log $mypath/$myfile commit dfae8363665910df65409d29ff6...

2020-05-19 20:26:45 70 0

原创 Git基础操作:从指定远程分支中拉取新分支

以前的例子是这样了 git checkout -b 本地分支名 , 这种方式也会拉取新分支,只不过是从当前分支进行拉取 从指定远程分支中拉取新分支的示例如下: git checkout -b 本地分支名 origin/远程分支名

2020-05-19 16:45:58 66 0

原创 Git基础操作:删除错误提交到暂存区的内容

这里写自定义目录标题 这里以.mvn目录为示例,如果错误的将.mvn目录添加到git暂存区,可以通过如下命令来进行撤消。 git rm .mvn/ --cached -r

2020-05-17 20:04:49 55 0

原创 docker入门实践,自制镜像的2种方式

目前我知道的自制镜像有2种方式,根据容器制作镜像和根据Dockerfile制作镜像。 根据现成的容器制作镜像 适用于已经有一个现成的容器已经满足需求的情况 % docker ps -a CONTAINER ID IMAGE ...

2020-05-13 13:12:56 39 0

转载 JAVA 线程池ThreadPoolExecutor的五种状态

在 线程池成员变量 ctl 是一个 Integer的原子变量,用来记录线程池状态和 线程池中线程个数,类似于 ReentrantReadWriteLock 使用 一个变量来保存两种信息。 Integer 类型是 32 位二进制表示,则其中高 3 位用来表示线程池状态,后面 29 位用来记 录线程池...

2020-04-30 10:54:38 73 0

原创 SPI技术-JDK实现

SPI是什么 SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。 系统设计的各个抽象,往往有很多不同的实...

2020-03-03 23:33:04 72 0

原创 GC专题-查看日志

GC日志参数列表 -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式) -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05...

2020-02-26 18:58:11 98 0

转载 java String字符串在内存中的地址和指向问题

String str1 = “abc”; System.out.println(str1 == “abc”); 步骤: 栈中开辟一块空间存放引用str1, String池中开辟一块空间,存放String常量"abc", 引用str1指向池中String常量"abc...

2020-02-25 15:02:24 115 1

转载 Java String6,7,8,9区别 以及 有哪些方式可以提高性能

String 对象在jdk不同版本中的实现 String对象是 Java 中使用最频繁的对象之一,所以 Java 公司也在不断的对String对象的实现进行优化,以便提升String对象的性能,看下面这张图,一起了解一下String对象的优化过程。 在 Java6 以及之前的版本中 Strin...

2020-02-17 09:31:45 60 0

原创 java程序开启远程调试功能

代码就是最好的文档 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 几点说明: -agentlib:jdwp 这个是jdk自带的调试工具是jti,位于$JAVA_HOME/jre/lib/amd6...

2020-01-03 11:12:11 160 0

原创 GC专题-查看JVM使用的GC

一、设置垃圾收集器参数 我们设置JVM垃圾收集器参数时,一个参数就同时指定新生代老年代各自的垃圾收集器了。 -XX:+UseSerialGC,虚拟机运行在Client模式下的默认值,Serial+Serial Old。 -XX:+UseParNewGC,ParNew+Serial Old,...

2019-12-27 12:13:03 130 0

转载 如何保证消息队列的顺序性?

面试题 如何保证消息的顺序性? 面试官心理分析 其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题。 面试题剖析 我举个例子,我们以前做过一个 mysql binlog 同步的系统,压力还是非常大的,日同步数据要...

2019-12-17 11:53:49 79 0

原创 Jdk8 foreach语法需要break怎么办?

forEach里的return只相当于continue,没有break语法,在这里我总结了3种解决方案供你选择 exception , filter anyMatch //forEach里的return只相当于continue,没有break语法 //使用exce...

2019-12-16 13:25:19 110 0

原创 gdb生产环境实际案例调试

获取进程编号 ps aux | grep -v grep | grep dish_as_brpc www-data 18900 10.1 1.2 9162996 407160 ? Sl 14:42 1:29 ./bin/dish_as_brpc --flagfile=./co...

2019-11-21 15:28:42 128 0

转载 HTTPS的加密过程

HTTPS HTTPS即加密的HTTP,HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。 我们首先了解几个基本概念...

2019-11-14 14:52:48 46 0

原创 Git基础操作:本地分支和远程分支改名

相信聪明的你,直接看代码就能看懂 # 本地分支改名 git branch -m feature/add_header2 feature/add_header # 删除远程分支 git push origin :feature/add_header2 # 本地分支与远程分支关联,并push到远程 g...

2019-11-13 10:35:29 44 0

原创 jdk8之前版本中HashMap存在的问题剖析

一、put时存在丢失元素的问题 put方法逻辑说明 将新插入的元素放置到链表头部,原来的链表头部作为新元素的next节点 put关键代码块 void createEntry(int hash, K key, V value, int bucketIndex) { Entry<K,V...

2019-11-08 11:07:54 72 0

原创 java调用c++文件

网上有很多例子,参照着执行有时候相对路径问题经常卡住了,实战了一把通过后,特重新整理一份,供小白参考 首先需要有一个含有native方法的java类 vi /Users/mac/work/git/javademo/src/main/java/com/alioo/jni/JniDemo.java ...

2019-11-04 18:45:14 167 0

原创 在Java里体验一把协程Quasar

在还没有协程的时代 操作系统产生一个进程,进程再产生若干个线程并行的处理逻辑,线程的切换由操作系统负责调度。每个线程都有自己的栈 栈是否有一些默认值? 的确有默认值,不同的虚拟机不同的平台是不同的,想了解的可以看这里 https://docs.oracle.com/cd/E13150_01...

2019-09-19 19:50:49 148 0

原创 Mysql的explain官方文档翻译

原文地址: https://dev.mysql.com/doc/refman/5.7/en/explain-output.html#explain-extra-information 先复制进来,每天翻译一段,有兴趣的小伙伴可以一块加入进来翻译【日拱一卒】 The EXPLAIN statemen...

2019-08-26 21:47:09 222 0

原创 Mysql的explain之Extra字段讲解

认真阅读了一下explain之Extra字段,前2篇关于一道sql (select * from t where a=? and b>? order by c limit 0,100 ) 如何加索引的问题答案终于浮出水面 Using index 表示使用了覆盖索引,性能上会快很多 覆盖索引...

2019-08-24 17:29:52 478 0

原创 Mysql实战题目,如何加索引2?

Mysql实战题目,如何加索引2? 这一篇,较上一篇文章区别在于构造的数据内容发生了变化 实战题目 select * from t2 where a=? and b>? order by c limit 0,100 如何加索引 测试环境 mysql> select version()...

2019-08-24 17:13:17 169 0

原创 Mysql实战题目,如何加索引?

Mysql实战题目,如何加索引? 实战题目 select * from t where a=? and b>? order by c limit 0,100 如何加索引 测试环境 mysql> select version() ; +-----------+ | version() ...

2019-08-24 17:10:07 256 0

原创 HashMap/ConcurrentHashMap在单线程模式下的性能比较

起源 阅读源码发现jdk8中ConcurrentHashMap是基于synchronized来加锁实现多线程安全的,但是实现方式上与早期的HashTable又有了很大的区别,虽然都是使用synchronized来加锁,但是锁的粒度不一样,大致可以作如下理解: HashTable JDK1.0...

2019-08-20 10:25:49 1408 0

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

使用git log 查看提交历史日志,找到需要回滚的commit_id git log 退到/进到 指定commit的sha码 ( 退回后会保留commit_id的提交内容,在这次之后的内容都会丢掉 ) git reset --hard commit_id 再次push时需要使用 -f...

2019-07-26 15:14:06 714 0

转载 《MySQL实战45讲》读后感 34|到底可不可以使用join?

在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类: 我们 DBA 不让使用 join,使用 join 有什么问题呢? 如果有两个大小不同的表做 join,应该用哪个表做驱动表呢? 今天这篇文章,我就先跟你说说 join 语句到底是怎么执行的,然后再来回答这两个问题。 为了便于...

2019-07-18 21:13:27 62 0

原创 Git基础操作:将git commit id转成short commit id

使用git log可以得到每次commit id,但是有时候我们发现有些系统上显示的是short commit id , 如何转换呢,可以使用 $ git rev-parse --short 4258f51defb6a56c0490823f75eda409d41b0b96 4258f51 $ g...

2019-06-11 12:41:33 999 0

原创 【C++从入门到放弃】C++编译生成动态链接库*.so及如何调用*.so进阶篇2-编译jsoncpp

【C++从入门到放弃】C++编译生成动态链接库*.so及如何调用*.so进阶篇2-编译jsoncpp 附:当前项目cstudy7 本文可以收获什么? 将其它项目生成的动态链接库拿到本项目中使用 CMakeLists.txt中使用其它项目的动态链接库 Mac OS X下的ldd工具——otool使...

2019-06-06 09:14:57 157 0

原创 【C++从入门到放弃】C++编译生成动态链接库*.so及如何调用*.so进阶篇-编译jsoncpp

cstudy5中,我们演示了自己的写的源码进行编译成链接库,本章将讲解编译开源的jsoncpp 备注:上面提到的cstudy5示例参见: https://blog.csdn.net/hl_java/article/details/90812168 cppjson源码github https://...

2019-06-06 09:08:16 233 0

原创 【C++从入门到放弃】C++编译生成动态链接库*.so及如何调用*.so

动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记, 也为其它正为动态库链接库而苦恼的兄弟们提供一点帮助。 谈点实际价值: 如果个人是使用的是Mac,而别人提供的链接库文件*.so是linu...

2019-06-04 19:52:32 1027 0

原创 【C++从入门到放弃】C++/g++不同文件夹的编译

本文大面积参考了简书资料 https://www.jianshu.com/p/2b047bcce8fa ,由于源书上存在好几处细节上的问题,比如: class Afunc 应该是 class A std::cout<<#include "A()"<&l...

2019-06-04 12:26:50 215 0

原创 tcpdump常用命令

只抓目的ip sudo /usr/sbin/tcpdump -i eth0 tcp dst host 1.2.3.4 -c 100 -w 0515.pacp 只抓目的port sudo /usr/sbin/tcpdump -i eth0 tcp dst port 9030 -c 100 -...

2019-05-27 18:43:11 237 0

转载 CAS存在的问题以及解决方案

CAS存在的问题以及解决方案 CAS虽然很高效的解决原子操作,但是CAS仍然存在三大问题。ABA问题,循环时间长开销大和只能保证一个共享变量的原子操作 ABA问题 因为CAS需要在操作值的时候检查下值有没有发生变化,如果没有发生变化则更新,但是如果一个值原来是A,变成了B,又变成了A,那么使用...

2019-05-24 17:33:22 3030 0

转载 《MySQL实战45讲》读后感 21|为什么我只改一行语句,锁这么多

在上一篇文章中,我和你介绍了间隙锁和 next-key lock 的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。 所以今天,我们就先从这个加锁规则开始吧。 首先说明一下,这些加锁规则我没在别的地方看到过有类似的总结...

2019-05-23 11:03:16 106 0

原创 kafka搭建后生产者消费者Java示例

kafka搭建可以按照官方示例来操作 http://kafka.apache.org/quickstart 说明:本次使用的版本为kafka_2.12-2.2.0 官方示例也有生产者,消费者的 shell版本示例,通常执行起来也很正常 bin/kafka-console-producer.sh -...

2019-05-17 16:54:50 174 0

原创 kafka搭建后zookeeper节点上的变化

具体搭建步骤参见官网文档:http://kafka.apache.org/quickstart 启动zookeeper nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2&g...

2019-05-17 14:37:57 736 0

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