随笔分类 - JAVA
java 基本功
发表于 2020-04-17 10:10阅读次数:688评论次数:0
摘要:ClassLoader 做什么的? 顾名思义,它是用来加载 Class 的。它负责将 Class 的字节码形式转换成内存形式的 Class 对象。字节码可以来自于磁盘文件 *.class,也可以是 jar 包里的 *.class,也可以来自远程服务器提供的字节流,字节码的本质就是一个字节数组 []b
阅读全文 »
发表于 2019-06-12 17:18阅读次数:3034评论次数:0
摘要:jinfo 可以输出并修改运行时的java 进程的opts。 jps 与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。 jstat 一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。 jmap 打印出某个
阅读全文 »
发表于 2019-06-12 14:30阅读次数:5547评论次数:0
摘要:房间里灯光昏暗,两个男人相对而坐, 良久,眼睛男率先打破僵局, 眼睛男,知道锁么 帅气男,知道些, 眼睛男:什么是锁? 一种保护机制,在多线程的情况下,保证操作数据的正确性/一致性, 眼镜男:有哪几种分类? 悲观锁,乐观锁,独占锁,共享锁,公平锁,非公平锁,分布式锁,自旋锁 眼睛男:讲讲乐观锁悲观锁
阅读全文 »
发表于 2019-06-12 14:23阅读次数:230评论次数:0
摘要:一、为什么需要消息系统 二、kafka 架构 2.1 拓扑结构 如下图: 图.1 2.2 相关概念 如图.1中,kafka 相关名词解释如下: 2.3 zookeeper 节点 kafka 在 zookeeper 中的存储结构如下图所示: 图.2 三、producer 发布消息 3.1 写入方式 p
阅读全文 »
发表于 2019-05-27 14:15阅读次数:3615评论次数:0
摘要:一、ThreadPoolExecutor的重要参数 1、corePoolSize:核心线程数 * 核心线程会一直存活,及时没有任务需要执行 * 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理 * 设置allowCoreThreadTimeout=true(默认false)时,
阅读全文 »
发表于 2019-05-25 11:52阅读次数:440评论次数:0
摘要:1业务场景 近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多技术的支持。例如系统访问层的负载均衡,缓存层的多实例主从复制备份,数据层的分库分表等。 我们以负载均衡为例,常见的
阅读全文 »
发表于 2019-05-13 11:18阅读次数:444评论次数:0
摘要:协调者 在分布式系统中,每一个机器节点虽然都能明确的知道自己执行的事务是成功还是失败,但是却无法知道其他分布式节点的事务执行情况。因此,当一个事务要跨越多个分布式节点的时候(比如,淘宝下单流程,下单系统和库存系统可能就是分别部署在不同的分布式节点中),为了保证该事务可以满足ACID,就要引入一个协调
阅读全文 »
发表于 2019-05-10 16:06阅读次数:539评论次数:0
摘要:/** * Description: * 基类的引用变量可以只想基类的实例对象也可指向其子类的事来对象 * 接口的引用变量也可以指向实现类的实例对象 * 程序调用的方法在运行期才动态绑定 * 绑定指将一个对象调用和一个方法主体连接到一起,就是引用变量所指向的具体实例对象的方法,就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法 * 这种动态绑定实现了多态。只有方法有...
阅读全文 »
发表于 2019-04-30 17:09阅读次数:408评论次数:0
摘要:为了方便理解与阐述,先引入两张图: a、Java IO中常用的类 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java
阅读全文 »