自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(600)
  • 资源 (3)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Golang 数组传递为什么是值类型?而不是引用?

1 首先go中所有的参数传递都是值类型!并且有三个特殊的数据结构:slice map Chan,他们是引用类型,可以理解为特殊的值类型。 而对于type struct 自定义类型,如果不想传值可以使用传指针。2 数组的抽象层slice一句话,永远将slice考虑成引用类型。拼接方法func Concat(s1, s2 []int) (r []int) {r = make([]int, len(s1)+len(s2))copy(r, s1)copy(r[len(s1):], s2)return

2021-04-14 08:26:43 9

原创 NSInvalidArgumentException mac Sequel Pro 链接数据库崩溃-解决方案

NSInvalidArgumentException-[_NSInlineData isEqualToString:]: unrecognized selector sent to instance 0x604000033360( 0 CoreFoundation 0x00007fff3454832b __exceptionPreprocess + 171 1 libobjc.A.dylib 0x0000.

2021-04-07 09:38:18 13

原创 入职字节第三天感悟

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

2021-03-31 22:25:48 18

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

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

2021-03-26 15:10:31 32

原创 【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 16

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

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

2021-03-24 17:04:32 41

原创 【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 11

原创 【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 17

原创 【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 15

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

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

2021-03-24 11:38:46 11

原创 【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 17

原创 【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 8

原创 【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 8

原创 【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 8

原创 【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 17

原创 一致性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 15

原创 【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 20

原创 【GO】闭包的理解

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

2021-03-22 15:54:11 13

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

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

2021-03-22 12:29:33 58

原创 【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 9

原创 【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 10

原创 【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 32

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

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

2021-03-15 21:53:39 36

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

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

2021-03-15 10:21:28 15

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

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

2021-03-14 21:32:22 23

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

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

2021-03-14 09:57:38 48

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

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

2021-03-13 14:55:03 34

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

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

2021-03-12 11:58:41 13

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

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

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

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

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

2021-03-11 19:44:53 17

原创 【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 26

原创 【JVM】Synchronized C++ 源码

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

2021-03-09 23:48:52 59

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

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

2021-03-09 17:12:48 66 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 25

原创 【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 17

原创 【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 50

原创 【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 65 1

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

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

2021-03-03 18:34:03 35 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 50 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 24

整理流程.png.zip

喜欢dubbo等rpc框架的伙伴

2021-02-07

Memory Management in the Java HotSpot™ Virtual Machine.

15年最新

2016-12-28

zookeeper快速指导

zookeeper快速指导

2017-04-07

平静不绝望的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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