01 /背景/可能是到目前为止史上最牛逼的 MQ 中间件 kafka 涉及到了很多文件操作,正因为其以近乎最佳方式操作文件IO,所以才会让它的性能快到令人发指,轻轻松松秒杀那些 MQ 中间件前辈。 02 /知识点梳理/本文主要关注的 Java 相关的文件操……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 17浏览 0评论0个赞
1 前言一提到 Java 中的随机数,很多人就会想到 Random,当出现生成随机数这样需求时,大多数人都会选择使用 Random 来生成随机数。Random 类是线程安全的,但其内部使用 CAS 来保证线程安全性,在多线程并发的时候它的表现是存在优化空间的。在 JDK1.7 之后,Java 提供了更好的解决方案 ThreadLocalRando……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 19浏览 0评论0个赞
一、开发原则S:单一职责 SRPO:开放封闭原则 OCPL:里氏替换原则 LSPI:接口隔离法则D:依赖倒置原则 DIP合成/聚合复用原则迪米特法则在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则和具体阐述意义。面向对象的基本……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 56浏览 0评论0个赞
不久前,在团队内部和大家做了一次分享,内容就是这次要讲的“用认知和人性来提升自己的技术水平”,大家反响不错,所以这次整理一下也分享给大家。 最初我是想用“借优秀的产品经理思维来做最棒程序员”的这个标题,但想想还是要有同理心,技术同学平时和产品同学已经是相爱相杀了,就不刺激大家啦。但是必须要说的是优秀的产品经理思维和优秀的程序员思维确实是殊途同归的……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 15浏览 0评论0个赞
今天,算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑、挑战和误解。今日头条的推荐算法,从 2012 年 9 月第一版开发运行至今,已经经过四次大的调整和修改。今日头条委托资深算法架构师曹欢欢博士,公开今日头条的算法原理,以期推动整个行业问诊算法、建言算法;通过让算法透明,来消除……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 53浏览 0评论0个赞
一个多月没有写东西了,今天想写的也是想记录下来的一些学习及思考结果,记忆能力有限,避免时间长久就忘记了,今天想写的也还是一些基础的东西,为什么我总是关注这些平时码业务代码很少能用到的又比较基础东西呢,主要是因为我觉得可能光写简单的业务代码可能很少有机会会遇到难题,但是也有万一,万一遇到了怎么解决,万变不离其宗,基础知识的深度决定上层建筑的高度,因……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 23浏览 0评论0个赞
昨天我介绍了原子性、可见性、有序性的概念,那么今天就来见识下这些概念的主角-volatile 关键字。volatile 基本介绍volatile 可以看成是 synchronized 的一种轻量级的实现,但 volatile 并不能完全代替 synchronized,volatile 有 synchronized 可见性的特性,但……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 21浏览 0评论0个赞
简单回顾门面模式slf4j 是门面模式的典型应用,因此在讲 slf4j 前,我们先简单回顾一下门面模式,门面模式,其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。用一张图来表示门面模式的结构为:门面模式的核心为 Facade 即门面对象,门面对象核心为几个点:知道所有子角色的功能和责任……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 18浏览 0评论0个赞
文章目录结构: 一 OSI 与 TCP/IP 各层的结构与功能,都有哪些协议运输层主要使用以下两种协议:UDP 的主要特点:TCP 的主要特点:域名系统(Domain Name System 缩写 DNS,Domain Name 被译为域名)HTTP 协议五层协议的体系结构1 应用层(applic……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 15浏览 0评论0个赞
一,应用无状态(淘宝 session 框架)俗话说,一个系 统的伸缩性的好坏取决于应用的状态如何管理。为什么这么说呢?咱们试想一下,假如我们在 session 中保存了大量与客户端的状态信 息的话,那么当保存状态信息的 server 宕机的时候,我们怎么办?通常来说,我们都是通过集群来解决这个问题,而通常 所说的集群,不仅有负载均……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 23浏览 0评论0个赞
相信使用过 Spring 的众多开发者都知道 Spring 提供了非常好用的 JavaMailSender接口实现邮件发送。在 Spring Boot 的 Starter 模块中也为此提供了自动化配置。下面通过实例看看如何在 Spring Boot 中使用 JavaMailSender发送邮件。快速入门在 Spring Boot 的工程中的 ……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 25浏览 0评论0个赞
本文目录为什么要克隆?如何实现克隆浅克隆和深克隆解决多层克隆问题总结假如说你想复制一个简单变量。很简单:int apples = 5; int pears = apples;不仅仅是 int 类型,其它七种原始数据类型(boolean,char,byte,short,float,do……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 17浏览 0评论0个赞
大约在几个月之前阅读完一本书籍,突然有了一个想法。想把关于字串符的一些问题写出来,目的是告诉大家需要关注的点。这就是想和大家分享的关于Java字符串的 10 个常见问题。一、如何比较字符串?使用”==”还是使用= ()?简单地说,“==”测试引用是否相等,而 equals()测试值是否相等。……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 18浏览 0评论0个赞
这篇文章主要目的是面向初接触微服务的朋友简单介绍微服务基础建设所需要的各个模块以及缘由。起点首先,我们得有一个“服务”。根据定义,我们可以把每个服务实例都视作一个黑盒。这个盒子有着明确的输入点和输出点,并且(理想情况下)仅通过这些输入和输出点和外界产生关联。每个服务实例会拥有专属的网络地址、独立的计算资源,并且独立部署。客户端通过访问服务实例……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 30浏览 0评论0个赞
导读在之前的文章中,我们通过一张图的方式(图?)整体上了解了JVM的结构,并重点讲解了JVM的内存结构、内存回收算法及回收器方面的知识。收到了不少读者朋友们的反馈和指正,在这里作者向这些提出中肯建议的读者朋友们表示感谢,谢谢你们的支持。在今天的文章中将主要和大家一起探讨关于类装载子系统的内容。我们知道,Java 源代码(.java 文件)……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 19浏览 0评论0个赞
1 概述给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。经常 使用适当的虚拟机监控和分析工具可以加速我们分析数据、定位解决问题的速度,但在学习工具前,也应当意识到工具永远都是知识技能的一层包装,并没有什么工具是“秘密武器”,不可能学会了就能包治百病。2 JDK 命令行工具(JDK 安装的 bin 目录……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 29浏览 0评论0个赞
1 引言分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕单机事务,分布式事务以及分布式事务的处理方式来展开。2 事务事务提供一种“要么什么都不做,要么做全套(All or Nothing)”的机制,她有 ACID 四大特性原子性……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 93浏览 0评论0个赞
简介作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术的妹子看你时眼神迷离,就好想落霞与孤鹜齐飞!分布式架构是一个非常复杂的体系,任何技术都不是孤立的存在,任何技术都无法适应所有场景。作为一名分布式系统……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 19浏览 0评论0个赞
零,题记在电商领域,推荐的价值在于挖掘用户潜在购买需求,缩短用户到商品的距离,提升用户的购物体验。京东推荐的演进史是绚丽多彩的。京东的推荐起步于 2012 年,当时的推荐产品甚至是基于规则匹配做的。整个推荐产品线组合就像一个个松散的原始部落一样,部落与部落之前没有任何工程、算法的交集。2013 年,国内大数据时代到来,一方面如果做的事情……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 20浏览 0评论0个赞
俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat 的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最核心的模块,问题才可以游刃而解,了解了Tomcat的整体架构对以后深入了解Tomcat来说至关重要!一、Tomcat顶层架构先上一张To……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 34浏览 0评论0个赞
1、什么是 Java 中的异常?异常是在程序执行期间可能发生的错误事件,并且会中断它的正常流程。异常可能来自不同类型的情况,例如用户输入的错误数据,硬件故障,网络连接故障等。每当执行 java 语句时发生任何错误,都会创建一个异常对象,然后 JRE 会尝试查找异常处理程序来处理异常。如果找到合适的异常处理程序,则将异常对象传递给处理程序代码……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 35浏览 0评论0个赞
1. Spring Cloud Netflix 的优势对于微服务的治理而言,核心就是服务的注册和发现。所以选择哪个组件,很大程度上要看它对于服务注册与发现的解决方案。在这个领域,开源架构很多,最常见的是 Zookeeper,但这并不是一个最佳选择。在分布式系统领域有个著名的 CAP 定理:C——数据一致性,A——服务可用性,P——……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 34浏览 0评论0个赞
一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统 bug 重发,也应该只扣一次钱; 3. 发送消息,也应该只发一次,同样的短信发给用户……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 29浏览 0评论0个赞
前言Java 源代码被编译成 class 字节码,最终需要加载到虚拟机中才能运行。整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载 7 个阶段。 加载1、通过一个类的全限定名获取描述此类的二进制字节流; 2、将这个字节流所代表的静态存储结构保存为方法区的运行时数据结构; 3、在 java 堆中生成一个代表这个类的 jav……继续阅读 » 勤劳的小蚂蚁 1周前 (02-10) 14浏览 0评论0个赞