Java
文章平均质量分 70
彬_小彬
一个想搞事情的攻城狮
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式的六大原则
通过实践这些原则,开发者可以创建结构良好、易于维护和扩展的软件系统。每个原则在不同的设计模式中可能会有不同的实现方式,具体实现应根据具体情况和需求进行调整。在这个例子中,生成报告和打印报告被分成了两个类,符合单一职责原则。在这个例子中,打印和扫描功能被分成了两个独立的接口。类的实例来复用引擎的功能,而不是继承引擎类。在这个例子中,添加新形状时,只需扩展。类,而无需修改现有代码。原创 2024-07-31 20:43:25 · 434 阅读 · 0 评论 -
Handler的引用链
在Android中,Handler的引用链最终由Android的消息机制(和Looper)来管理。理解这个引用链有助于理解Handler及其相关对象如何被引用和释放。原创 2024-07-31 20:35:52 · 542 阅读 · 0 评论 -
如何判断链表有环
快慢指针法是一种常见且高效的检测链表是否存在环的方法。它的基本思想是使用两个指针,一个快指针和一个慢指针,同时从链表头部出发,慢指针每次移动一步,快指针每次移动两步。如果链表中存在环,快指针最终会追上慢指针;如果没有环,快指针会在链表末尾处到达。哈希表法通过使用哈希表存储每个遍历过的节点。遍历链表时,如果遇到的节点已经存在于哈希表中,则表示链表存在环;如果遍历到链表末尾(在大多数情况下,快慢指针法更为优雅且效率高,推荐使用。原创 2024-07-31 20:26:58 · 635 阅读 · 0 评论 -
Android中如何正确的使用动态代理
首先,定义一个接口,这是动态代理所必须的。动态代理在 Android 开发中具有重要意义,可以帮助开发者实现更灵活的代码设计,支持 AOP 和权限管理等功能。在使用动态代理时,需注意性能开销和线程安全问题。通过合理设计和使用动态代理,可以大大提高代码的可维护性和复用性。原创 2024-07-28 19:17:28 · 928 阅读 · 0 评论 -
Synchronized、lock和volatile的原理分别是什么
在 Java 中,lock和volatile是三种用于实现线程同步和保证并发安全的机制。它们在原理和应用场景上各有不同。下面详细介绍它们的原理和使用方法。原创 2024-07-27 21:34:19 · 520 阅读 · 0 评论 -
常见排序和查找原理
大部分常用的算法写法都已经固定,对于非算法类的开发人员并不要求完整实现,但是起码能看懂并理解其原理。原创 2024-07-27 21:08:56 · 361 阅读 · 0 评论 -
HashMap的原理
优点:在平均情况下,插入、删除和查找操作的时间复杂度为 O(1),非常高效。缺点:最坏情况下,哈希冲突过多导致链表或探测长度增加,时间复杂度退化为 O(n)。需要额外的空间来存储链表或处理开放地址法。原创 2024-07-27 20:21:33 · 482 阅读 · 0 评论 -
枚举单例是怎么保证线程安全和防止反射的
类加载机制:JVM在加载和初始化类时,保证了类的加载过程是线程安全的。枚举实例初始化:在类加载时创建枚举实例,且每个枚举常量都是单例,避免了多线程环境中的竞态条件。原创 2024-07-25 22:16:19 · 681 阅读 · 0 评论 -
静态内部类实现单例是怎么保证线程安全的
静态内部类只有在被首次使用时才会被加载和初始化,而类的加载和初始化过程由JVM自动控制并保证线程安全。静态内部类加载和初始化的线程安全性由JVM的类加载机制确保,确保了单例实例的唯一性和线程安全。因此,静态内部类实现单例是一种高效且线程安全的单例实现方式。原创 2024-07-25 21:58:06 · 1043 阅读 · 0 评论 -
Android中常用哪一种单例
在Android开发中,静态内部类(Initialization-on-demand holder idiom)和枚举单例(Enum Singleton)是最常用的单例实现方式。这是因为它们在保证线程安全的同时具有良好的性能和简洁的代码实现。原创 2024-07-25 21:50:14 · 614 阅读 · 0 评论 -
常见的单例实现方式及其优缺点
饿汉式单例:简单,线程安全,但可能浪费资源。懒汉式单例:节省资源,但不是线程安全的。线程安全的懒汉式单例:线程安全,但性能较差。双重检查锁定:线程安全,性能较好,但代码复杂。静态内部类:线程安全,性能好,推荐使用。枚举单例:线程安全,简单,防止反射攻击,推荐使用。原创 2024-07-25 21:47:47 · 449 阅读 · 0 评论 -
正则表达式
支付宝二维码规则https://openclub.alipay.com/read.php?tid=4353&fid=56正则:var reg = /^(((2[5-9])|(30))\d{14,22})$/;微信二维码规则:银联二维码规则:银联:62开头19位...原创 2018-06-14 10:20:26 · 527 阅读 · 0 评论 -
金融类应用数字运算的建议
遇到问题,精度丢失最近一年多的时间一直在做智能POS相关的应用,经常涉及到金额的运算.后台金额是按照元为单位保留两位小数的浮点类型,我在客户端接收的时候也是按照double类型保存的.后来在运算的时候发现了好多时候会出现精度丢失的情况.经过我研究最后总结了两个最佳实践.最佳实践1一句话,不用浮点类型.(long的取值范围为-9223372036854775808到922337203...原创 2018-04-28 13:49:53 · 597 阅读 · 0 评论
分享