共 35 篇已发布文章
一、QPS和TPS QPS:QueriesPerSecond,意思是“每秒查询数”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。即最大吞吐能力。TPS:TransactionsPerSecond,意思是“每秒处理事务数”,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计

在面试的时候,有时候我们会被问到这样的问题:子类A继承父类B,Aa=newA();则父类B的构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块执行的先后顺序是什么?我们先根据上面的题目,可以写出如下代码:父类B代码如下:public class B { public&nbs
一、相同点采用quorum(仲裁集,大多数投票机制,法定人数 )来确定整个系统的一致性,这个quorum一般实现是集群中半数以上的服务器。zookeeper里还提供了带权重的quorum实现。都由leader来发起写操作。都采用心跳检测存活性。leaderelection都采用先到先得的投票方式。二、不同点zab用的是epoch(时代,纪元)和count的组合来唯一表示一个值,而raft

文章目录一、前言二、三大源头2.3.1第一,经典案例:双重检查创建单例对象2.3.2第二,我们认为的new操作:instance=newSingleton();2.3.3第三,实际优化后的执行路径:instance=newSingleton();2.1.1理论:从单核CPU到多核CPU2.1.2实践:多线程可见性问题2.1缓存导致可见性问题2.2线程切换带来的原子性问题2.3编译优化带来的有序性问
字符串建立索引的优化#1.建立前缀索引#假设建立一个支持邮箱登录的用户表,对于邮件字段来说,可以有以下几种建立索引的方式:直接对整个字符串建立索引alter table SUser add index index1(email);对整个字符串的前一部分建立索引-前缀索引alter table SUser add&nbs

如果想了解redis与Memcache的区别参考:Redis和Memcache的区别总结阿里的面试官问问我为何redis使用跳表做索引,却不是用B+树做索引因为B+树的原理是叶子节点存储数据,非叶子节点存储索引,B+树的每个节点可以存储多个关键字,它将节点大小设置为磁盘页的大小,充分利用了磁盘预读的功能。每次读取磁盘页时就会读取一整个节点,每个叶子节点还有指向前后节点的指针,为的是最大限度的降低磁

写在前面Java并发是Java后端开发面试中最重要的模块之一,毕竟这是对Java基础的深度考核。而且现在基本上程序都是需要使用多线程进行处理的,如果说Java并发你不会,只要面试官问你了,可以说很难通过面试。所以这一块一定要好好下功夫。我个人学习这块知识点的学习方法和Java集合类是非常像的,重点都在于考察你对源码的了解,学习Java并发其实就是学习JUC包中的一些关键的类:AQS、原子类等等。1

写在前面个人觉得Java集合类在面试过程中是个超高频的模块,所以一定要认真准备每个知识点。那么我个人学习这块知识点的方法是:1、阅读源码:这一块的考点可以说就是看你对有没有阅读过集合类的源码以及对其的掌握程度。因为在平时的开发中几乎每天都在和集合类打交道,只有了解清楚它们底层的实现原理,才能在日常业务开发中选择合适的集合。可能会有人说阅读源码比较枯燥,看不下去,但是Java集合类的源码真的还好,并

由于之前分享的 460道Java后端高频面试题 中只分享了题目,大家都建议附有答案。所以最近根据题目整理了下答案,因为题目比较多,所以按照原文中的模块陆续发出。因为个人水平有限,仅供参考,如有错误,可与我交流,再改正。可扫描文末二维码加我的微信(微信号:kaigejava),备注:面试题说明:答案来自于我的秋招复习笔记,但是答案都是我复习过程中参考“别人”的以及面试过程中不断总
以下为大家整理了阿里巴巴史上最全的Java面试题,涉及大量Java面试知识点和相关试题。JAVA基础JAVA中的几种基本数据类型是什么,各自占用多少字节。String类能被继承吗,为什么。String,Stringbuffer,StringBuilder的区别。ArrayList和LinkedList有什么区别。讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当

:1.单例模式常见问题为什么要有单例模式单例模式是一种设计模式,它限制了实例化一个对象的行为,始终至多只有一个实例。当只需要一个对象来协调整个系统的操作时,这种模式就非常有用.它描述了如何解决重复出现的设计问题,比如我们项目中的配置工具类,日志工具类等等。如何设计单例模式?1.单例类如何控制其实例化2.如何确保只有一个实例通过一下措施解决这些问题:private构造函数,类的实例话不对外开放,由自

前言:整理了一些Java基础流程图/架构图,做一下笔记,大家一起学习。1.spring的生命周期Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要;首先容器启动后,对bean进行初始化按照bean的定义,注入属性检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给bean,如BeanNameAware等以上步骤,bean对

本文主要内容:1:了解HashMap底层。2:手写个简单版的hashMap一:hashMap是什么?底层怎么实现的HashMap底层实现原理是什么?HashMap是线程安全的吗?JDK8和JDK7对HashMap差异在哪?如果让你来设计HashMap思路是什么?HashMap在JDK7的时候采用的算法:数据+链表先来看看哈希算法:来看看数组定义:数组:采用一段连续的存储单元来存储数据。对于指定下标

SpringBoot1.简介SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。1.1简化Spring开发的一个框架1.2整合Spring全家桶(整合ssh,ssm,安全,docker,缓存,权限,消息,分布式,监控)1.3不需要直接启动tomcat,内嵌tomcat,通过

秒杀系统设计1.主要做到以下两点:尽量将请求过滤在上游。尽可能的利用缓存(大多数场景下都是查多于写)。如果流量巨大,导致各个层的压力都很大可以适当的加机器横向扩容。如果加不了机器那就只有放弃流量直接返回失败。快速失败非常重要,至少可以保证系统的可用性。业务分批执行:对于下单、付款等操作可以异步执行提高吞吐率。主要目的就是尽量少的请求直接访问到DB。2.架构图image.png前端请求进入web层,
计算机网络摘要:1.在浏览器中输入url地址显示主页的过程,整个过程会使用哪些协议image.jpeg总体来说分为以下几个过程:DNS解析TCP连接发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面连接结束在浏览器中输入网址之后执行会发生什么?DNS解析,找到对应ip地址客户 阅读全文操作系统摘要:1.进程的常见状态?以及各种状态之间的转换条件?就绪:进程已处于准备好运行
计算机网络摘要:1.在浏览器中输入url地址显示主页的过程,整个过程会使用哪些协议image.jpeg总体来说分为以下几个过程:DNS解析TCP连接发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面连接结束在浏览器中输入网址之后执行会发生什么?DNS解析,找到对应ip地址客户 阅读全文操作系统摘要:1.进程的常见状态?以及各种状态之间的转换条件?就绪:进程已处于准备好运行

Java多线程1.多线程新建状态:一个新产生的线程从新状态开始了它的生命周期。它保持这个状态直到程序start这个线程。运行状态:当一个新状态的线程被start以后,线程就变成可运行状态,一个线程在此状态下被认为是开始执行其任务就绪状态:当一个线程等待另外一个线程执行一个任务的时候,该线程就进入就绪状态。当另一个线程给就绪状态的线程发送信号时,该线程才重新切换到运行状态。休眠状态:由于一个线程的时

Java基础什么是Java内存模型前面介绍过了计算机内存模型,这是解决多线程场景下并发问题的一个重要规范。那么具体的实现是如何的呢,不同的编程语言,在实现上可能有所不同。我们知道,Java程序是需要运行在Java虚拟机上面的,Java内存模型(JavaMemoryModel,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证

Java异常1.什么是Java中的异常异常是在程序执行期间可能发生的错误事件,并且会中断它的正常流程。异常可能来自不同类型的情况,例如用户输入的错误数据,硬件故障,网络连接故障等。每当执行java语句时发生任何错误,都会创建一个异常对象,然后JRE会尝试查找异常处理程序来处理异常。如果找到合适的异常处理程序,则将异常对象传递给处理程序代码以处理异常,称为捕获异常。如果未找到处理程序,则应用程序将异