-
4种常用Java线程锁的特点,性能比较、使用场景
多线程的缘由 在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。 使用多线程的理由之一是和进程相比,它是一种非常花销小,切换快,更"节俭"的多任务操作方式。 在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"…- 15.4k
- 0
-
7种JVM垃圾收集器特点,优劣势、及使用场景
今天继续JVM的垃圾回收器详解,如果说垃圾收集算法是JVM内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 常见的垃圾收集器有3类: 1.新生代的收集器包括: Serial PraNew Parallel Scavenge 2.老年代的收集器包括: Serial Old Parallel Old CMS 3.回收整个Java堆(新生代和老年代) G1收集器 今天我们详细谈谈以上7种垃圾收集…- 9.5k
- 0
-
线程池的实现原理、优点与风险、以及四种线程池实现
为什么需要线程池 我们有两种常见的创建线程的方法,一种是继承Thread类,一种是实现Runnable的接口,Thread类其实也是实现了Runnable接口。但是我们创建这两种线程在运行结束后都会被虚拟机销毁,如果线程数量多的话,频繁的创建和销毁线程会大大浪费时间和效率,更重要的是浪费内存。那么有没有一种方法能让线程运行完后不立即销毁,而是让线程重复使用,继续执行其他的任务哪? 这就是线程池的由…- 10.8k
- 0
-
深入探讨HashMap的底层结构、原理、扩容机制
摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。 随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。 简介 Java为数据结构中的映射定义了一个接口java.util.Map…- 14k
- 0
-
主流的消息队列中间件有哪些?
消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。 本文主要探讨主流的消息队列MQ比较,特征,以及典型使用场景。 目前主流的MQ产品 1.…- 6.5k
- 0
-
Kafka的原理、基础架构、以及使用场景
一:Kafka简介 Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。 二:Kafka基本架构 它的架构包括以下组件: 1、话…- 6.4k
- 0
-
消息中间件介绍、典型使用场景、以及使用原则
大型分布式架构里一定会涉及到消息中间件,今天先谈谈消息中间件。 常用的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。 一、kafka 1、不完全符合jms规范,注重吞吐量,类似udp 和 tcp 2、一般做大数据吞吐的管道 我们现在的用途就是负责在各个idc之间通信 3、量大对数据不是百分之百保证的,会有数据丢失,不是百分百送达(amq和r…- 4.3k
- 0
-
从Java程序员进阶架构师,必看的书单推荐!
算法与数据结构: 数据结构(严蔚敏) java数据结构和算法(美:拉佛) 算法导论 大话数据结构 剑指Offer 程序员面试金典 编程珠玑 编程之美 程序员笔试面试最优解 数据结构与算法经典问题解析(Java语言描述) 图解数据结构(使用Java) 计算机网络: 计算机网络(谢希仁) TCP/IP 详解 HTTP权威指南 图解TCP/IP 图解HTTP 数据库: 数据库主要是多用,书上主要看索引和…- 3.9k
- 0
-
从Java程序员进阶为架构师,全套16张图概括最全技能
如何从程序员进阶到架构师?今天完整的把我积累的经验和技能分享给大家! 作者:陈睿|优知学院创始人 数据结构 算法=程序 数据是一切能输入到计算机的信息总和,结构是指数据之间的关系,数据结构就是将数据及其之间的关系有效地存储在计算机中。 算法是指对特定问题求解步骤的一种描述,说白了就是解决问题的方法策略。 总而言之:数据结构 算法=程序。 语言掌握 任何一门开发语言都自己的语法,也有对应开发语言对应…- 2.6k
- 0
-
设计模式详解
我们继续架构师进阶之独孤九剑进阶,目前我们仍然在第一阶段:程序设计和开发环节。 “ 设计模式不仅仅只是一种规范,更多的是一种设计思路和经验总结,目的只有一个:提高你高质量编码的能力。以下主要分为三个环节:为什么要用设计模式、设计模式的分类,以及最后推荐大家三本设计模式相关的书籍,希望对你有所帮助。 为什么要使用设计模式 1、设计模式是前人根据经验总结出来的,使用设计模式,就相当于是站在了前人的…- 4.5k
- 0
-
数据结构详解
这是整个java架构师连载系列,分为9大步骤,我们现在还在第一个步骤:程序设计和开发->数据结构与算法。 “ 如果说 Java 是自动档轿车,C 就是手动档吉普。数据结构呢?是变速箱的工作原理, 你完全可以不知道变速箱怎样工作,就把自动档的车子从 A 开到 B,而且未必就比懂得的人慢。写程序这件事,和开车一样,经验可以起到很大作用,但如果你不知道底层是怎么工作的,就永远只能开车,既不会修车,…- 3.3k
- 0
-
算法思想与经典算法
“ 这是整个架构师连载系列,分为9大步骤,我们现在还在第一个步骤:程序设计和开发->数据结构与算法。 我们今天讲解重点讲解算法。 算法思想 1 贪心思想 顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对…- 3.9k
- 0
-
数据结构与算法详解
“ 架构师进阶系列之独孤九剑,这套秘籍如果你能完整学会,年薪至少60万起,今天是架构师进阶连载开启篇。 Java程序员成长为架构师进阶步骤 未来我会用1-2个月在实战为大家讲解架构师的九大必备技能。 架构师进阶系列之独孤九剑九大步骤: 1-程序设计和开发 2-操作系统要求 3-Java开发 4-Web开发 5-网络安全 6-数据库设计 7-架构设计要求 8-运维能力要求 9-产品业务要求 …- 5.3k
- 0
-
java程序员学习路线以及我的学习经验
本文作者为优知学院创始人陈睿(mike),作者有10年以上技术&产品经验,曾任百度研发经理、携程定制旅游CTO。 “ 这是一篇完整的java程序员学习线路图,一共分为六个阶段。 我以java为例,展示完整的学习步骤。 最后,还有我的学习经验思考。 希望,看完此文,你完全可以自学成为一名真正牛逼的程序员。 java程序员学习线路流程 第一步:Java语言基础 从最简单的开始,hello wo…- 3.3k
- 0
-
java程序员进阶必读书单(19本必读)
以下是我推荐给Java开发者们的一些值得一看的好书,从java基础开始到高级,以及从高级进阶到架构等的书单。 基本都是经典之作,可以利用工作闲暇的时间,系统阅读。 java程序员进阶之路 上图是完整java程序员进阶之路,可以进阶架构师也可以结合管理进阶,往技术经理、总监发展。 上周,写了程序员进阶到架构师三篇,基本涵盖了java程序员到架构师的必备技能。如果要想系统掌握,可以结合书单一起自学进阶…- 3.2k
- 0