java编译执行有第三方依赖的类 发表于 2019-12-20 | 更新于: 2019-12-20 | 分类于 教程 , Java 字数统计: 560 | 阅读时长 ≈ 2 有时候在进行开发的过程中,需要自己写个测试类来进行某个局部功能的测试,在测试的过程中,需要引入第三方jar包或者公司其他成员的帮助类,比如说:我需要测试一个net.sf.json.JSONObject解析数据的时候中文乱码问题 123456789101112131415161718192021222 ... 阅读全文 »
Guice使用入门 发表于 2019-12-20 | 更新于: 2019-12-20 | 分类于 教程 , Guice 字数统计: 1.4k | 阅读时长 ≈ 6 Guice是谷歌推出的一个轻量级依赖注入框架,帮助我们解决Java项目中的依赖注入问题。如果使用过Spring的话,会了解到依赖注入是个非常方便的功能。不过假如只想在项目中使用依赖注入,那么引入Spring未免大材小用了。这时候我们可以考虑使用Guice。本文参考了Guice官方文档,详细信息可以直 ... 阅读全文 »
Kafka进阶-基本原理 发表于 2019-12-20 | 更新于: 2019-12-20 | 分类于 中间件 , Kafka 字数统计: 4.8k | 阅读时长 ≈ 17 集群架构图 使用场景 日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。 消息系统:解耦和生产者和消费者、缓存消息等。 用户活动跟踪:Kafka经常被用来记录web用户或者app用户 ... 阅读全文 »
Mysql锁机制 发表于 2019-12-20 | 更新于: 2019-12-20 | 分类于 Mysql , 锁机制 字数统计: 4.7k | 阅读时长 ≈ 16 总览MySQL/InnoDB的加锁,一直是一个常见的话题。例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?下面是不同锁等级的区别 表级锁开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高 ,并发度最低。 页面锁开销和加锁时间界于表锁和行锁之间;会出现死锁 ... 阅读全文 »
Redis底层数据结构 发表于 2019-12-20 | 更新于: 2020-01-10 | 分类于 中间件 , Redis 字数统计: 1.4k | 阅读时长 ≈ 5 5种基本数据类型 对于每种数据结构,实际上都有自己底层的 内部编码 实现,而且是多种实现。这样 Redis 会在合适的 场景 选择合适的 内部编码,如图所示: 可以看到,每种 数据结构 都有 两种以上 的 内部编码实现。例如 list 数据结构 包含了 linkedlist 和 ziplist 两 ... 阅读全文 »
TCP TIME_WAIT状态 发表于 2019-12-18 | 更新于: 2020-01-10 | 分类于 网络 字数统计: 3.5k | 阅读时长 ≈ 12 TIME_WAIT状态是TCP连接中主动关闭连接的一方会进入的状态,在发出最后一个ACK包之后,主动关闭方进入TIME_WAIT状态,从而确保: ACK包到达对端 等待网络中之前迷路的数据包完全消失,防止端口被复用的时候收到迷路包从而出现收包错误 TIME_WAIT状态会持续2MSL(max s ... 阅读全文 »
JVM基础 - 入门篇 发表于 2019-12-13 | 更新于: 2019-12-20 | 分类于 Java , JVM 字数统计: 4.2k | 阅读时长 ≈ 15 JDK体系结构 JVM内存模型一张图描述JVM内存模型 JVM包括两个子系统和两个组件: 两个子系统 ClassLoader(类装载)根据给定的全限定名类名(如:java.lang.Object)来装载 class文件 到 运行时数据区 中的 方法区。程序中可以继承 java.lang.ClassL ... 阅读全文 »
Redis数据结构及常见使用场景 发表于 2019-12-06 | 更新于: 2020-01-10 | 分类于 中间件 , Redis 字数统计: 2.5k | 阅读时长 ≈ 8 Redis基础数据类型及使用场景 String 缓存功能:String字符串是最常用的数据类型,不仅仅是Redis,各个语言都是最基本类型,因此,利用Redis作为缓存,配合其它数据库作为存储层,利用Redis支持高并发的特点,可以大大加快系统的读写速度、以及降低后端数据库的压力。 计数器:许 ... 阅读全文 »
Tomcat系统架构[转载] 发表于 2019-12-06 | 更新于: 2019-12-09 | 分类于 Web , Tomcat 字数统计: 4.1k | 阅读时长 ≈ 15 Tomcat顶层架构先上一张Tomcat的顶层结构图,如下 简化清晰版 Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务。 Service主要包含两个部分:Connector和Container。从上图 ... 阅读全文 »
Java动态代理 发表于 2019-11-29 | 更新于: 2019-11-29 | 分类于 Java , 基础 字数统计: 4.1k | 阅读时长 ≈ 16 什么是代理我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的“过滤”。我们把微 ... 阅读全文 »