Java虚拟机知识总结

JVM 内存结构 Java 虚拟机的内存空间分为 5 个部分: 程序计数器 Java虚拟机栈 本地方法栈 堆 方法区 JDK 1.8 同 JDK 1.7 比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。 ...

May 8, 2023

Netty相关总结

什么是Netty 1、Netty 是一个 基于 NIO 的 client-server(客户端服务器)框架,使用它可以快速简单地开发网络应用程序。 2、它极大地简化并优化了 TCP 和 UDP 套接字服务器等网络编程,并且性能以及安全性等很多方面甚至都要更好。 3、支持多种协议 如 FTP,SMTP,HTTP 以及各种二进制和基于文本的传统协议。 用官方的总结就是:Netty 成功地找到了一种在不妥协可维护性和性能的情况下实现易于开发,性能,稳定性和灵活性的方法。 除了上面之外,很多开源项目比如我们常用的 Dubbo、RocketMQ、Elasticsearch、gRPC 等等都用到了 Netty ...

April 24, 2023

拼多多面经

面试题目 记录下社招面试拼多多的总结与心得,以及失败的原因吧。 1、服务注册是如何发现的,eureka的基本原理, 容器ip是动态的还是静态的 答:eureka, 基本原理大概说个一些:包括服务注册,服务发现,心跳机制,服务下线, 自我保护机制等等。 ...

March 12, 2023

Java ArrayList源码分析与总结

ArrayList 1. 概览 实现了 RandomAccess 接口,因此支持随机访问。这是理所当然的,因为 ArrayList 是基于数组实现的。 1 2 数组的默认大小为 10。 1 2. 扩容 添加元素时使用 ensureCapacityInternal() 方法来保证容量足够,如果不够时,需要使用 grow() 方法进行扩容,新容量的大小为 oldCapacity + (oldCapacity >> 1),也就是旧容量的 1.5 倍。 ...

March 9, 2023

分布式性能优化总结

缓存优化 1、对应参数表数据量如果小于10M,数据要同时缓存到Redis和本地,查询遵循的缓存原则为:优先查询本地缓存,本地没有查询Redis缓存,Redis没有再查询数据库. ...

March 9, 2023

Java中的字符操作

字符操作 编码与解码 编码就是把字符转换为字节,而解码是把字节重新组合成字符。 如果编码和解码过程使用不同的编码方式那么就出现了乱码。 GBK 编码中,中文字符占 2 个字节,英文字符占 1 个字节; UTF-8 编码中,中文字符占 3 个字节,英文字符占 1 个字节; UTF-16be 编码中,中文字符和英文字符都占 2 个字节。 UTF-16be 中的 be 指的是 Big Endian,也就是大端。相应地也有 UTF-16le,le 指的是 Little Endian,也就是小端。 ...

March 7, 2023

Java锁优化相关笔记

自旋锁 互斥同步进入阻塞状态的开销都很大,应该尽量避免。在许多应用中,共享数据的锁定状态只会持续很短的一段时间。自旋锁的思想是让一个线程在请求一个共享数据的锁时执行忙循环(自旋)一段时间,如果在这段时间内能获得锁,就可以避免进入阻塞状态。 ...

March 6, 2023

深入理解计算机系统 Chapter 2 Practice

C. x的最低有效字节中的位都等于1 D. x的最高有效字节中的位都等于0 代码应该遵循位级整数编码规则,另外还有一个限制,不能使用(==)和(!=)测试 ...

July 6, 2020

2020 NCov爬虫统计

刚开始我没想到用爬虫,就直接手创了一个字典… 需要安装模块pyechart and pyechart-china-provinces-pypkg 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 然后生成了一张图,看起来还行 ...

January 30, 2020

Python对失物招领群进行词频分析

上午两节课睡过了,就没去了,吃了个早饭,还有一堆事情没有做,就开始先把昨晚没弄完的python词频分析的代码给写完了。做一个记录吧,防止以后用得着 ...

November 13, 2018