关闭
当前搜索:

Effective Java 读书笔记(四):泛型

请不要在新代码中使用原生态类型 消除编译时的非受检警告 列表 List 优先于数组 优先考虑泛型 优先考虑泛型方法 利用有限制通配符来提升 API 的灵活性 优先考虑类型安全的异构容器...
阅读(128) 评论(0)

Effective Java 读书笔记(七):通用程序设计

将局部变量的作用域最小化 for-each 循环优于传统的 for 循环 了解和使用类库 如果需要精确的答案请避免使用 float 和 double 基本类型优于装箱基本类型 如果其他类型更合适则尽量避免使用字符串 当心字符串连接的性能 通过接口引用对象 接口优先于反射机制 谨慎地使用本地方法 谨慎地进行优化 遵循普遍接受的命名惯例...
阅读(120) 评论(0)

Effective Java 读书笔记(五):枚举和注解

用 enum 代替 int 常量 用实例域代替序数 用 EnumSet 代替位域 使用 EnumMap 代替序数索引 用接口模拟可伸缩的枚举 注解优先于命名模式 坚持使用 Override 注解 用标记接口定义类型...
阅读(175) 评论(0)

Effective Java 读书笔记(八):异常

只针对异常情况才使用异常 对于可恢复的情况使用受检异常对于编程错误使用运行时异常 避免不必要地使用受检异常 优先使用标准的异常 抛出与抽象相对应的异常 每个方法抛出的异常都要有文档 在细节消息中包含造成异常的信息 努力使失败保持原子性 不要忽略异常...
阅读(151) 评论(0)

Effective Java 读书笔记(九):并发

同步访问共享的可变数据 避免过度同步 使用线程池管理线程不要手动 new 线程 并发工具优先于 wait 和 notify 线程安全性的文档化 慎用延迟初始化 不要依赖于线程调度器 避免使用线程组 ThreadGroup...
阅读(134) 评论(0)

Effective Java 读书笔记(二):对于所有对象都通用的方法

Effective Java 读书笔记二对于所有对象都通用的方法 覆盖 equals 时要遵守的约定 覆盖 equals 的时候总是覆盖 hashCode 始终要覆盖 toString 谨慎覆盖 clone 考虑实现 Comparable 接口...
阅读(180) 评论(0)

Effective Java 读书笔记(一):创建和销毁对象

考虑用静态工厂方法代替构造器 构造器参数较多时考虑用 Builder 构建 用私有构造器或枚举类型强化 Singleton 属性 在私有构造器里抛异常来强化不可实例化的能力 避免创建不必要的对象 消除过期的引用 避免使用终结方法 finalize...
阅读(242) 评论(0)

Java 日志框架解析:设计模式、性能

在平常的系统开发中,日志起到了重要的作用,日志写得好对于线上问题追踪有着很大的帮助。一个好的日志框架,既要方便易用,也要有较好的性能,减少日志输出对系统内存、CPU 的影响。 研究一款开源项目,学到的不仅仅是这个项目本身,还会学到很多设计思想,可以利用到日常工作中。...
阅读(1181) 评论(0)

Java 进阶:异常影响性能吗?

Java 进阶:异常影响性能吗?曾经在给一个业务系统增加限流功能,使用的限流组件在流量超过阈值时,会直接抛异常,异常导致 CPU 占用率飙升。第一次遇到这样的情况,让我们不得不思考,异常怎么会对性能造成这么大的影响?下面我们写几个测试程序观察一下。...
阅读(807) 评论(0)

Java 进阶:如何让线程主动让出 CPU

在 Java 中,有哪些方法可以让线程让出 CPU 呢?...
阅读(563) 评论(0)

深入理解 Java 泛型:类型擦除、通配符、运行时参数类型获取

泛型的本质是参数化类型,相比于直接使用 Object 的好处是:编译期强类型检查、无需进行显式类型转换。这里介绍一些泛型的用法、特性,以及如何在运行时获取泛型参数类型信息。...
阅读(430) 评论(0)

Java 迭代器介绍

迭代器介绍迭代器模式迭代器模式是一个典型的设计模式,提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。因为屏蔽了细节,可以针对不同实现的容器,提供一致的标准化的访问方法。...
阅读(347) 评论(0)

Java 注解:注解处理器获取泛型真实类型

注解 annotation 是 Java 中的一大特性,是插入代码中的元数据。注解的使用能够大大简化代码的编写,所以在很多框架中得到了使用,比如 spring、hibernate-validator。泛型的真实类型信息会在编译期间擦除,注解处理器正是运行在编译期间,能够用来获取泛型真实信息。...
阅读(767) 评论(0)

[置顶] 系统设计:关于高可用系统的一些技术方案

系统设计关于高可用系统的一些技术方案 高可用方法论 扩展 隔离 解耦 限流 分类 漏桶算法 令牌桶算法 滑动窗口计数法 动态限流 降级 熔断 发布相关 模块级自动化测试 灰度发布 回滚 其他 总结 参考资料 系统设计:关于高可用系统的一些技术方案 可靠的系统是业务稳定、快速发展的基石。那么,如何做到系统高可靠、高可用呢?下面首先讲一下高可用需要面临的常见问题,再从技术...
阅读(1509) 评论(0)

降级熔断框架 Hystrix 源码解析:滑动窗口统计

一个滑动窗口统计主要分为两步: 1. bucket 统计,bucket 的大小决定了滑动窗口滚动时间间隔; 2. window 统计,window 的时长决定了包含的 bucket 的数目。 Hystrix 实现滑动窗口利用了 RxJava 这个响应式函数编程框架。...
阅读(1250) 评论(0)

Java 线程同步基础类 LockSupport 解析

LockSupport 类提供了基本的线程同步原语,是实现 AbstractQueuedSynchronizer 和 ReentrantLock 的基础。...
阅读(261) 评论(0)

Java 同步框架 AQS 深入分析

AQS 框架提供了先进先出的阻塞锁实现,在此基础上,提供了独占和共享等多种模式供使用方实现。除此之外,还提供了一个条件变量的实现。 锁是一种线程同步机制,用于保护对临界资源的访问。条件变量提供了一个“等待 - 唤醒”的机制,在阻塞队列里起到了生产者和消费者之间的通信的作用。...
阅读(306) 评论(0)

Java 同步原语 synchronized 剖析和锁优化

本文解析了 synchronized 的底层实现,介绍了 JVM 中优化锁的一些方法,以及实际编程中使用的一些锁优化方法。...
阅读(355) 评论(0)

日志压缩资源消耗优化: Linux CGroup 的使用

我们有一个系统,本身压力比较大,平常 CPU 占用率在 60% 左右。在整点之后的日志压缩时,CPU 占用率更是飙到来 80%,造成系统 Load 经常报警,烦不胜烦。 使用 top 命令查看后发现,gzip 压缩进程占用 CPU 资源过多,于是想到了利用 CGroup 来限制日志压缩进程的资源占用。...
阅读(367) 评论(0)

深度剖析 JDK7 ConcurrentHashMap 中的知识点

看源码时候的一点儿总结:锁分离 Lock Stripping、Unsafe、自旋、顺序一致性 Sequential Consistency、权衡 Trade Offs。...
阅读(231) 评论(0)
198条 共10页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:604434次
    • 积分:7752
    • 等级:
    • 排名:第3261名
    • 原创:192篇
    • 转载:6篇
    • 译文:0篇
    • 评论:99条
    博客专栏
    文章分类
    最新评论