03 2020 档案
摘要:出处:SQL的各种连接Join详解 SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。 最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)、SQL LEFT JOIN、SQL RIGHT JOIN、SQL FULL JOIN,其中前一种是内连
阅读全文
摘要:出处: Eureka 工作原理 上节内容为大家介绍了,注册中心 Eureka 产品的使用,以及如何利用 Eureka 搭建单台和集群的注册中心。这节课我们来继续学习 Eureka,了解它的相关概念、工作流程机制等。 Eureka 作为 Spring Cloud 体系中最核心、默认的注册中心组件,研究
阅读全文
摘要:出处:RecursiveTask和RecursiveAction的使用 以及java 8 并行流和顺序流 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过
阅读全文
摘要:出处:Fork and Join: Java也可以轻松地编写并发程序 如今,多核处理器在服务器,台式机及笔记本电脑上已经很普遍了,同时也被应用在更小的设备上,比如智能手机和平板电脑。这就开启了并发编程新的潜力,因为多个线程可以在多个内核上并发执行。在应用中要实现最大性能的一个重要技术手段是将密集的任
阅读全文
摘要:出处: 使用 JMeter 进行压力测试 一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工具
阅读全文
摘要:出处: Java断点续传实现原理很简单 关键字: RandomAccessFile 一、作用: 随机流(RandomAccessFile)不属于IO流,支持对文件的读取和写入随机访问。 二、随机访问文件原理: 首先把随机访问的文件对象看作存储在文件系统中的一个大型 byte 数组,然后通过指向该 b
阅读全文
摘要:问题: sleep方法没有释放锁:不让出资源 wait方法释放了锁:使得其他线程可以使用同步控制块或者方法 sleep不释放锁 线程是进入阻塞状态还是就绪状态? sleep是不是还占着CPU,是互斥还是同步? 作者:大宽宽链接:https://www.zhihu.com/question/23328
阅读全文
摘要:问题:Java里一个线程调用了Thread.interrupt()到底意味着什么? 还有就是Thread.interrupted()会清除interrupted status意味着什么呢?是线程恢复了吗?这里实在搞不懂 概念 要弄清阻塞与中断的关系,首先得弄清楚什么叫做阻塞,什么叫做中断。 阻塞表示
阅读全文
摘要:出处: 详解Class类文件的结构(上) 详解Class类文件的结构(下) 前言 相信搞Java开发的同学都经常会接触到Class类文件,了解了JVM虚拟机之后也会大量接触到class字节码,那么它到底是什么样的文件?内部由什么构成?虚拟机又是如何去识别它的?这篇文章就来学习一下Class类文件的结
阅读全文
摘要:进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2.假定工厂的电力有限,一次只能供给一个车间使用。
阅读全文
摘要:问题: 如何理解:程序、进程、线程、并发、并行、高并发? 作者:大宽宽链接:https://www.zhihu.com/question/307100151/answer/894486042来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 在这里你可以了解: 为啥大家说
阅读全文
摘要:B树 我们来介绍面向磁盘结构一种最长见的数据结构 -- B树。他应该是大家在日常接触最多的数据结构之一了~ 因为只要你在使用数据库,你就是在用B树。甚至当你在用hbase的时候,他其实也只是个分布式的大B树而已。 我们一直都在强调,硬件是骨头,软件是肉。软件的目标就是尽可能的发挥硬件的技术特性,并尽
阅读全文
摘要:熟悉线程操作的小朋友应该知道,Java中线程的挂起和唤醒一般用synchronized + wait + notify完成。 比如: synchronized(o) { o.wait(); //wait状态 } 在其他线程中o.notify(),就可以唤醒在o上wait的线程。 可是如果o上有多个线
阅读全文
摘要:出处: 高性能短链设计 今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合考察侯选人的一道设计题,本文将会结合我们生产上稳定运行两年之久的高性能短链系统给大家简单介绍下设计这套系统所涉及的一些思路,希望对大家能有一些帮助。 本文将会
阅读全文
摘要:出处: 腾讯技术工程 链接: https://zhuanlan.zhihu.com/p/113917726 一步一步推导出 Mysql 索引的底层数据结构。 Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,
阅读全文
摘要:你知道MySQL的原子性是怎么保证的吗? 谁都知道在事务里边原子性的意思:”一个事务包含多个操作,这些操作要么全部执行,要么全都不执行“ 事务保证需要用到一下几个常见 log undo log binlog redo log 一、什么是binlog binlog其实在日常的开发中是听得很多的,因为很
阅读全文
摘要:一.什么是跨域? 跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。 例如:a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域
阅读全文
摘要:出处: https://zhuanlan.zhihu.com/p/62534874 动态代理。这四个字一出来,估计很多初学者已经开始冒冷汗。动态代理之所以给人感觉很难,有三点原因: 代码形式很诡异,让人搞不清调用逻辑 用到了反射,而很多初学者不了解反射 包含代理设计模式的思想,本身比较抽象 尽管动态
阅读全文
摘要:出处: https://zhuanlan.zhihu.com/p/62660956 主要内容: 前情提要 接口创建对象的可行性分析 动态代理 Proxy.getProxyClass()的秘密 编写可生成代理和可插入通知的通用方法 类加载补充 前情提要 假设现在项目经理有一个需求:在项目现有所有类的方
阅读全文
摘要:出处: https://zhuanlan.zhihu.com/p/63126398 介绍完JDK动态代理,今天和大家一起做个小案例:模拟Spring的事务管理。 主要内容: 熟悉的陌生人 山寨AOP事务需求分析 AOP事务具体代码实现 熟悉的陌生人 面试官如果问“请你谈谈你对Spring的理解”,估
阅读全文
摘要:出处: https://www.cnblogs.com/leefreeman/p/8315844.html 一个问题? InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说
阅读全文
摘要:出处: 浅谈java内部类 内部类 (一) 概述 把类定义在另一个类的内部,该类就被称为内部类。 举例:把类Inner定义在类Outer中,类Inner就被称为内部类。 class Outer { class Inner { } } (二) 内部类的访问规则 A:可以直接访问外部类的成员,包括私
阅读全文
摘要:出处: 同样是卖票,为啥阿里卖电影票就不卡?技术上做了啥??? 一、背景介绍 先简单分析一下电影节的抢票业务,典型特征是在大流量抢购、高并发的场景下,让用户极快的锁定座位然后出票,特别是热门的影片,会异常的火爆。第一道压力是查询已售座位列表和锁座,需要能快速的支撑用户的锁座请求,且实时查询到已售卖的
阅读全文
摘要:出处: 深入探究:操作系统为什么要引入虚拟地址? 在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。 一 早期的内存分配机制 在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址
阅读全文
摘要:出处: Java和操作系统交互细节 结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器、控制器、存储设备,以及输入输出设备,如下图所示。 我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单元,存储单元
阅读全文
摘要:出处: 同步计算与异步计算 从多个任务的角度来看,任务是可以串行执行的,也可以是并发执行的。从单个任务的角度来看,任务的执行方式可以是同步的,也可以是异步的。 Runnable、Callable、FutureTask 1、Runnable 先说一下java.lang.Runnable吧,它是一个接口
阅读全文
摘要:消息队列 MQ (1)为什么使用消息队列啊? 解耦:场景1:A系统发送个数据到BCD三个系统,接口调用发送,那如果E系统也要这个数据呢?那如果C系统现在不需要了呢?现在A系统又要发送第二种数据了呢?A系统要时时刻刻考虑BCDE四个系统如果挂了咋办?我要不要重发?我要不要把消息存起来? 一个系统或者一
阅读全文
摘要:相关文章: 字节码插桩--你也可以轻松掌握
阅读全文
摘要:出处:操作系统概述 文章参考: 《现代操作系统》第四版 https://baike.baidu.com/item/ 操作系统 / 192?fr=aladdin 《Modern Operating System》forth edition http://faculty.cs.niu.edu/~hutc
阅读全文
摘要:出处: spring事务 1.背景 Spring提供了编程式事务和声明式事务,但由于编程性事务的侵入性,开发中普遍会使用Spring的声明式事务,下文中所说的Spring事务也都是指声明式事务。 Spring声明式事务底层是建立在AOP的基础上的,其本质就是对方法前后进行拦截,然后在目标方法之前创建
阅读全文
摘要:出处:聊聊磁盘I/O那些事 背景 计算机硬件性能在过去十年间的发展普遍遵循摩尔定律,通用计算机的 CPU 主频早已超过 3GHz,内存也进入了普及 DDR4 的时代。然而传统硬盘虽然在存储容量上增长迅速,但是在读写性能上并无明显提升,同时 SSD 硬盘价格高昂,不能在短时间内完全替代传统硬盘。传统磁
阅读全文
摘要:出处: 理解I/O:随机和顺序 随机 I/O & 顺序 I/O 先看一篇译文介绍 随机I/O 顺序I/O Storage for DBAs: Ever been to one of those sushi restaurants where the food comes round in dishe
阅读全文
摘要:出处: 初识I/O | I/O系列(一) I/O,input/output的简写,也就是输入/输出。在计算机系统中,I/O与处理器(CPU)、存储器(内存和磁盘)是计算机的重要组成部件。输入是从I/O设备复制数据到主存,输出是从主存复制数据到I/O设备。I/O实现的功能是通过某种方式,实现计算机和外
阅读全文
摘要:出处: Dubbo 同步、异步调用的几种方式 我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制;基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用 异步调用 参数回调 事件通知 同步调用 同步调用是一种阻塞式的调用方式,即 Consumer 端
阅读全文
摘要:长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。 短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。 比如http的,
阅读全文
摘要:出处: 浅析dubbo原理和实现 一、Duboo基本概念解释 Dubbo是一种分布式服务框架。 Webservice也是一种服务框架,但是webservice并不是分布式的服务框架,他需要结合F5实现负载均衡。因此,dubbo除了可以提供服务之外,还可以实现软负载均衡。它还提供了两个功能Monito
阅读全文
摘要:1 什么是fail-fast 首先我们看下维基百科中关于fail-fast的解释: 在系统设计中,快速失效系统一种可以立即报告任何可能表明故障的情况的系统。快速失效系统通常设计用于停止正常操作,而不是试图继续可能存在缺陷的过程。这种设计通常会在操作中的多个点检查系统的状态,因此可以及早检测到任何故障
阅读全文
摘要:出处: Spring中@Async注解实现异步 异步执行一般用来发送一些消息数据,数据一致性不要求太高的场景,对于spring来说,它把这个异步进行了封装,使用一个注解就可以实现。 Spring中通过在方法上设置@Async注解,可使得方法被异步调用。也就是说该方法会在调用时立即返回,而这个方法的实
阅读全文