自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (3)
  • 收藏
  • 关注

原创 入职字节第三天感悟

总的来说:周围的人很优秀,应届生实习生好努(nei)力()。不去想去阿里想来字节的可以帮你们内推,快来体验一把go,体验一把字节范,体验一把和更优秀的人一起做事,体验了就不后悔了。欢迎投简历留言。非诚勿扰。...

2021-03-31 22:25:48 323

原创 【GO】go新入门者2021 vscode最全的配置方略

quick start :参考:https://my.oschina.net/iyf/blog/599112

2021-03-26 15:10:31 648

原创 【OOM】 Linux OS OOM VS JVM OOM

1 错误日志定位----已读服务provider下线已读服务被下线:2 应急解决方案:保存一台机器的gc.log 日志文件,线程其他日志文件等;然后重启服务3 查看下线原因:机器情况 物理内存8G启动了两个java进程 1 通过gc日志排除vm内存泄露; 下图 2 egrep -i "killed process" /var/log/messages -C100OR dmesg -T | grep java -C100 确认是否...

2021-03-25 14:57:35 459

原创 golang Mac失败: 权限不足。选择 “以超级用户身份重试“ 以超级用户身份重试。

go 安装时使用root权限更改为当前用户即可,修改后如下

2021-03-24 17:04:32 2234

原创 【java转go】web demo go 语言实现

package mainimport ( "log" "io/ioutil" "fmt" "net/http")func main() { // 在/后面加上 index ,来指定访问路径 content, error := ioutil.ReadFile("./index.html") if nil != error{ fmt.Printf("%v 读取文件异常",error) } fmt.Println(content) http.Handle...

2021-03-24 14:19:20 95

原创 【java转go】Go语言接口笔记

package mainimport ( "fmt" "sort" "io" "os" "errors" "math")func main() { fmt.Println("--interface--") // Go语言不是一种 “传统” 的面向对象编程语言:它里面没有类和继承的概念。 // 但是Go语言里有非常灵活的接口概念,通过它可以实现很多面向对象的特性。 // 很多面向对象的语言都有相似的接口概念,但Go语言中接口类型的独特之处在于它是满足隐式实现的。 /.

2021-03-24 12:51:30 227

原创 【java转go】Go语言error接口

package mainimport ( "fmt" "sort" "io" "os" "errors" "math")func main() { fmt.Println("--interface--") //可以使用 error 接口自定义一个 Error() 方法,来返回自定义的错误信息。 fmt.Println("\n 自定义返回错误信息") resultU, err := SqrtU(-13) if err != nil { fmt.

2021-03-24 12:49:16 109

原创 【java转go】将接口转换为其他接口

// 将接口转换为其他接口 // 实现某个接口的类型同时实现了另外一个接口,此时可以在两个接口间转换。 // 鸟和猪具有不同的特性,鸟可以飞,猪不能飞,但两种动物都可以行走。如果使用结构体实现鸟和猪, // 让它们具备自己特性的 Fly() 和 Walk() 方法就让鸟和猪各自实现了飞行动物接口(Flyer)和行走动物接口(Walker)。 // 将鸟和猪的实例创建后,被保存到 interface{} 类型的 map 中。 // interface{} 类型表示空接口,意思就是这种接口可以保存..

2021-03-24 11:38:46 331

原创 【GO】 自定义实现sort接口,并排序(三种实现方式)

package mainimport ( "fmt" "sort")func main() { fmt.Println("--interface--") // 使用sort.Interface接口进行排序 // 对一系列字符串进行排序时,使用字符串切片([]string)承载多个字符串。 // 使用 type 关键字,将字符串切片([]string)定义为自定义类型 MyStringList。 // 为了让 sort 包能识别 MyStringList,能够对 MySt.

2021-03-23 20:32:49 855

原创 【java转go】IO 函数学习笔记

package main import ( "bufio" "bytes" "fmt")func main() { // 在Go语言中,几乎所有的数据结构都围绕接口展开, // 接口是Go语言中所有数据结构的核心。 // 在实际开发过程中,无论是实现 web 应用程序,还是控制台输入输出,又或者是网络操作, // 都不可避免的会遇到 I/O 操作。 // Go语言标准库的 bufio 包中,实现了对数据 I/O 接口的缓冲功能。 // 这些功能封装于接口 io..

2021-03-23 19:20:01 151

原创 【java转go】结构体知识笔记

package mainimport ( "fmt" // "math" // "container/list" // "sort" // "sync" // "unsafe"// "bytes"// "os"// "errors"// "runtime"// "time" "log" "runtime" "time")func main() { fmt.Println("GOOD") relation := &People{.

2021-03-23 17:03:59 184

原创 【java转go】GO语言基本语法学习笔记

package mainimport ( "fmt" "math" // "container/list" // "sort" "sync" // "unsafe" "bytes" "os" "errors" "runtime" "time")func main() { // var s1 []int // 存放int类型元素的切片,动态 底层是数组 // var s2[]string // fmt.Println(s1,s2) // fmt.Println(s1.

2021-03-23 14:09:54 156

原创 【rabbitmq】springboot + RabbitTemplate ( max channel connection) 参数配置

1 原理2 测试代码 @Autowired @Bean public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) { //客户端开启confirm模式 RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setMandatory(true); rabbitTempl.

2021-03-22 18:09:57 2385

原创 一致性hash算法---springboot + tair 缓存的实践

// 配置nacos.config.server-addr=172.16.218.224:8848,172.16.218.225:8848,172.16.218.226:8848// 主启动类@SpringBootApplication(scanBasePackages = {"com.xx.yy"})@ImportResource(locations = {"${dubbo.xml}"})@EnableAsync@NacosPropertySource(dataId = "read", a.

2021-03-22 17:19:59 430

原创 【dubbo】 软负载均衡自定义实现

1 代码实现(实现根据userID在不同的应用之间跳转转发)@Slf4jpublic class CustomStageLoadBalance implements LoadBalance { private static Map<String,Map<String, List<String>>> appIpOpenIdMappings = Maps.newHashMap(); static{ Map<String, .

2021-03-22 16:45:18 201

原创 【GO】闭包的理解

1 闭包是什么?怎么用? // Go语言中闭包是引用了自由变量的函数 // 被引用的自由变量和函数一同存在, // 即使已经离开了自由变量的环境也不会被释放或者删除, // 在闭包中可以继续使用这个自由变量,因此,简单的说: // 函数 + 引用环境 = 闭包 这个和java中的匿名类对象特别类似,比如dubbo的调用链构建代码如下 // 闭包(Closure)在某些编程语言中也被称为 Lambda 表达式。 // 闭包对它作用域上部的变量可以进行修改,修改引用的变量会对变.

2021-03-22 15:54:11 512 1

原创 【效率】VScode mac 一次编辑多行

VScode mac 一次编辑多行 : shift+alt(option) + 光标选中多行

2021-03-22 12:29:33 7251 1

原创 【rabbitmq】console 控制台安装 centos 8

0 控制台启动rabbitmq-plugins enable rabbitmq_management ss -tulpn | grep 156721 防火墙firewall-cmd --permanent --add-port={5672,15672}/tcp firewall-cmd --reload2 rabbitmqctl list_usersrabbitmqctl add_user admin admin123 rabbitmqctl set_user_tags a..

2021-03-20 20:20:01 503

原创 【linux】根据端口号定位进程id

# lsof -i:5672 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME beam.smp 25625 rabbitmq 93u IPv6 42705143 0t0 TCP *:amqp (LISTEN)

2021-03-20 17:15:26 170

原创 【RabbitMQ】failed_to_start_child,credentials obfuscaton_svc,{undef,[{crypto,mac,[hmac,sha256 centos 8

1 注意 版本匹配 3.8.14 必须要用erlang 232 安装步骤// 安装签名rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc方案1 增加仓库配置/etc/yum.repos.d/rabbitmq.repo[bintray-rabbitmq-server]name=bintray-rabbitmq-rpm..

2021-03-20 12:59:15 1689

原创 【字节跳动】没有天花板得孩子

以下摘自网络,觉得对自己有用大家共勉。有好奇心能够主动学习新事物、新知识和新技能。说一个负例,我有个前同事,理论基础挺好,但每次都是把自己的工作做完就下班了。他在这家公司呆了一年多,但对网上的新技术、新工具都不去了解。所以他非常依赖别人。当他想要实现一个功能,他就需要有人帮他做后半部分,因为他自己只能做前半部分——如果是有好奇心的人,前端、后端、算法都去掌握、至少有所了解的话,那么很多调试分析,自己一个人就可以做。2.对不确定性保持乐观比方说头条最开始时,我跟大家讲:我们要做1亿的日启动次数。

2021-03-15 21:53:39 151

原创 【GC】经典垃圾收集器

1HotSpot虚拟机的垃圾收集器2Serial/Serial Old应用场景:对于单核处理 器或处理器核心数较少的环境来说,Serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以 获得最高的单线程收集效率。在用户桌面的应用场景以及近年来流行的部分微服务应用中,分配给虚 拟机管理的内存一般来说并不会特别大,收集几十兆甚至一两百兆的新生代(仅仅是指新生代使用的 内存,桌面应用甚少超过这个容量),垃圾收集的停顿时间完全可以控制在十几、几十毫秒,最多一 百多毫秒以内,只要不是频繁发...

2021-03-15 10:21:28 88

原创 【GC】GC 线程和用户线程并发时出现“对象消失”问题如何解决?

1 问题背景和描述根本原因是一致性问题导致。如下正常预期结果如下:当不一致发生时如下:2 产生条件3 解决方案

2021-03-14 21:32:22 280

原创 【GC】垃圾收安全点,安全域一些列问题

1 安全点涉及词汇Ordinary Object Pointer,OOPOopMap 数据结构存放对象引用。安全点选取:安全点位置的选取基本上是以“是否具有让程序长时间执行的特征”为标准 进行选定的,因为每条指令执行的时间都非常短暂,程序不太可能因为指令流长度太长这样的原因而长时间执行,“长时间执行”的最明显特征就是指令序列的复用,例如方法调用、循环跳转、异常跳转 等都属于指令序列复用,所以只有具有这些功能的指令才会产生安全点。2 在垃圾回收时如何让线程在安全点停顿下来?抢先式中断 (Preemp

2021-03-14 09:57:38 259

原创 【锁】Synchronized轻量级锁自旋,真的错了?!

1 文章结构Synchronized 相关class文件知识介绍以及加锁流程图 锁升级--本文核心自旋 源码解析 小结2Synchronized 相关class文件知识介绍(多图预警)0 Synchronized底层队列(摘自网络图片)和类源码结构 _cxq 竞争线程首先入队,竞争失败再进入_EntryList堵塞 Blocked 队列节点类型 1 锁和MarkWord关系,自Hotspot wiki 2 网上流传的一张图,摘自网络,这个图流程轻量级锁流程部分有很...

2021-03-13 14:55:03 592

原创 【jdk】jdk 本地调试准备--源码下载

1 举例 jdk12为例https://hg.openjdk.java.net/jdk/jdk12/file/06222165c35f

2021-03-12 11:58:41 78

原创 过招:实现线程安全的方法

1 通常有三种第一种:互斥同步也叫堵塞同步第二种:非堵塞同步第三种:无同步2 对应的实现工具或者思路第一种,互斥同步 使用synchronized Lock来实现。synchronized 曾经有偏向群,轻量级锁,重量级锁三个等级来优化。底层依靠编译器和虚拟机共同完成,也实现了等待队列。底层有三个队列,竞争队列,等待队列,优先队列。JUC的锁就不多说了。脑补。区别一定清清楚楚:三个——中断,公平,锁可以绑定多个条件。详细解释如下:主要有以下三项:等待可中断、可实现公 平锁及锁可以绑定多个条件。

2021-03-12 09:36:41 135 2

原创 【锁】推荐一篇有一定深度的好文章

https://tech.meituan.com/2018/11/15/java-lock.html

2021-03-11 19:44:53 51

原创 【mysql】和阿里云db团队一起探讨20亿量级大表迁移变更方案纪要

1 一体化---单机数据化(全局二级索引) 2.0 超级mysql 读写分离一致性 (由mysql的最终一致性--->会话一致 全局一致) IO 分部存储 共享存储 物理复制---binlog消除 20-30%提升 polx/poldb 分离式的。 使用方式改变。 rds私有化 完全不能控制,polx团队的,重启mysql都是由阿里云团队辅助,诊断功能都不能用;dass 服务数据库自治服务,穿透drds,批量运维,优化的平台;2 rds实现能力部分---意淫---迁移到drds;...

2021-03-10 11:53:22 240

原创 【JVM】Synchronized C++ 源码

1 Synchronized 本质本质是对一个对象监视器(monitor)进行获取在Java虚拟机执行到monitorenter指令时,1⃣️首先它会尝试获取对象的锁,如果该对象没有锁,或者当前线程已经拥有了这个对象的锁时,它会把计数器+1;然后当执行到monitorexit 指令时就会将计数器-1;然后当计数器为0时,锁就释放了。2⃣️如果获取锁 失败,那么当前线程就要阻塞等待,直到对象锁被另一个线程释放为止。// monitorbool has_monitor() const { ..

2021-03-09 23:48:52 452

原创 笔记--左耳朵耗子叔的成长经历

因为技术差,沟通差,不会面试,所以,我决定经常出去面试,基本上每周都要去,不管懂不懂,也不管是什么公司,也不管别人鄙不鄙视我,反正一有机会就去面试,多见见人这样可以让我的性格有所改善,同时,也可以知道社会上需要一些什么样的技能,把别人面我回答不上来的东西都记下来,然后回头找答案。那个时候我会经常去上海书城看书,看很多很多的书。我学的东西很杂,什么做网页,Windows,Unix,Java,.NET,flash,连3DMax/Photoshop我也学,还去考CCNA的认证等等。这样散乱地学习两年后,我才慢慢确

2021-03-09 17:12:48 597 2

原创 【笔记】商品表设计

// 树形品类维护表CREATE TABLE `category` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `parent_id` int(11) unsigned NOT NULL COMMENT '父Id', `name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '分类名称', `create_time` timestamp NO..

2021-03-08 19:30:07 87

原创 【mybatis】注解批量插入

@Insert({ "<script>", "insert into people(name, age, sex) values ", "<foreach collection='peopleList' item='item' index='index' separator=','>", "(#{item.name}, #{item.age}, #{item.sex})", ...

2021-03-08 18:27:37 353

原创 【JVM】多图搞明白!基于栈的字节码解释执行引擎

1 基于栈的字节码解释执行引擎public int calc() { int a = 100; int b = 200; int c = 300; return (a + b) * c;}2 多图解释

2021-03-06 10:02:20 173

原创 【LongAdder】Sentinel 使用的黑科技

LongAdder 源码LongAdder 到底用了什么黑科技能做到高性比 AtomicLong 还要好呢呢?对于同样的一个 add() 操作,上文说到 AtomicLong 只对一个 Long 值进行 CAS 操作。而 LongAdder 是针对 Cell 数组的某个 Cell 进行 CAS 操作 ,把线程的名字的 hash 值,作为 Cell 数组的下标,然后对 Cell[i] 的 long 进行 CAS 操作。简单粗暴的分散了高并发下的竞争压力。add() 操作步骤:如果 cells.

2021-03-03 19:02:24 325 1

原创 【TCP】 为什么3次握手 4次挥手

1 三次握手TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手????进行初始化的。三次握手????的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。由此我们来对应客户端与服务器之间的建立连接:第一次握手????: 客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN=1,同时随机生成初始序列号 seq=x,此时,客户端进程进入了 SYN-SENT状态,等待服务器的确认。

2021-03-03 18:34:03 272 1

原创 【红黑树】红黑树特征,哪里在用?为什么redis skiplist没有使用?

1 特征定义上两个图2 红黑树使用 java 8 hashMap 和 concurrentHashMap 都在使用3为什么redis skiplist没有使用 ? 看看作者怎么说吧? 1They are not very memory intensive,lessmemory intensive than btrees 内存不敏感 2 A sorted set is often target of many ZRANGE or ZREVRAN...

2021-03-03 15:20:43 450 2

原创 【ALGO】 二叉树公共祖先和之字形遍历(层次遍历)

1 源码javapackage classloader.tree;import java.util.Scanner;import java.util.*;import java.util.concurrent.ArrayBlockingQueue;public class Main { // 保存父节点 public static Map<Integer, TreeNode> parent = new HashMap<>(); // 保存遍

2021-03-03 13:07:25 107

原创 【ALGO】 唯一数字,其余数字出现三次

1 直接上题解// 唯一数字public static void main(String[] args) { int[] array = new int[]{1,1,1,2,3,3,3,5,5,5,6,2,2}; int ones = 0; int twos = 0; int threes; for (int x : array) { twos = twos | (ones & x);// 位或 统计 出现过两次的bit累计 .

2021-03-03 12:27:52 132

原创 【ALGO】100盏灯问题

1 题目有100盏灯泡,第一轮点亮所有电灯,第二轮每两盏灯熄灭一盏,即熄灭第2盏,第4盏,以此类推,第三轮改变编号为3的倍数的电灯,第3盏,第6盏,如果原来那盏灯是亮的,就熄灭它,如果原来是灭的,就点亮它,以此类推,直到第100轮。问第100结束后,还有多少盏灯泡是亮的2 题解过程思考:需要把每个灯泡的开关次数计算出来,其实这里需要你抽象转化为求一个数字的约数个数问题---->只要一个数字的约数是奇数个,那么这盏灯就是点亮的。而且一个数的约数是成对出现的,那么什么数字的约数(A==B)呢?

2021-03-03 12:25:14 357 2

整理流程.png.zip

喜欢dubbo等rpc框架的伙伴

2021-02-07

zookeeper快速指导

zookeeper快速指导

2017-04-07

Memory Management in the Java HotSpot™ Virtual Machine.

15年最新

2016-12-28

空空如也

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

TA关注的人

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