存在morning
乐于了解新技术,善于复盘总结,不是很聪明,但能够持续进步。
展开
-
【Java程序员面试指南 一】Java SE常见问题收集
常问到的一些问题的归纳和总结,复刻到记忆里,每个一级目录为大专题,二级目录为小专题,小专题内有连环提问。基本概念从几个区别出发去讨论让记忆更深刻。【Java SE基础 一】基本概念和语言特性Java 语⾔有哪些特点Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等,Java语言包含如下9个特性:Java是简单易学的Java是完全面向对象的(封装、继承、多态)平台⽆原创 2021-04-03 11:00:59 · 404 阅读 · 0 评论 -
【Java程序员面试指南 二】Java 集合常见问题收集
List代表了有序可重复集合,可直接根据元素的索引来访问;Vector,Arraylist,LinkedList,StackSet代表无序不可重复集合,只能根据元素本身来访问;HashSet,LinkedHashSet,TreeSetQueue是队列集合Map代表的是存储key-value对的集合,可根据元素的key来访问value,HashMap,LinkedHashMap,TreeMap,HashTable,ConcurrentHashMap。原创 2021-04-09 08:40:50 · 273 阅读 · 0 评论 -
【Java程序员面试指南 三】高频必会算法训练
快速排序使用分治策略(Divide and Conquer)来把一个序列分为两个子序列。步骤为: 1. 从序列中挑出一个元素,作为**基准(pivot)** 2. 把所有比基准值小的元素放在基准前面,所有比基准值大的元素放在基准的后面(相同的数可以到任一边),这个称为分区(partition)操作。 3. 对每个分区递归地进行步骤1~3,递归的结束条件是序列的大小是0或1,这时整体已经被排好序了。原创 2021-04-13 23:28:40 · 295 阅读 · 0 评论 -
【Java程序员面试指南 四】Java 并发常见问题收集
并发是指两个或多个事件在同一时间间隔内发生,在多道程序环境下,一段时间内宏观上有多个程序在同时执行,而在同一时刻,单处理器环境下实际上只有一个程序在执行,故微观上这些程序还是在分时的交替进行。操作系统的并发是通过分时得以实现的,和串行以及并行的概念区别:串行:顺序做不同事的能力:先洗衣服,洗完后做饭。并发:交替做不同事的能力:一会儿洗衣服,一会儿做饭,交替执行,但快如闪电。洗衣服和做饭的是一个(cpu),在同一个时间段内每个cpu各司其职。并发的实质是一个物理CPU(也可以多个物理CPU) 在若干原创 2021-04-08 08:29:51 · 321 阅读 · 1 评论 -
【Java程序员面试指南 五】Java 虚拟机常见问题收集
Java程序的完整执行流程是什么样的从一个Java程序被编写,最后一直到创建的对象被垃圾回收,全流程包括以下几步,加粗部分为本系列接下来的blog重点讲解内容:编辑生成源代码.java文件编译(javac编译和jit编译(直接生成机器码))生成字节码文件类文件被加载到虚拟机(类Class文件结构,虚拟机运行时内存分析,类加载机制)虚拟机执行二进制字节码(虚拟机字节码执行系统)垃圾回收(JVM垃圾回收机制)虚拟机发挥作用的部分从第3步到第5步之间:原创 2021-04-06 23:18:26 · 233 阅读 · 0 评论 -
【Java程序员面试指南 六】计算机网络原理机制
希望通过自己做的这个总结,面试全过,笔试全AC哈哈哈哈哈哈计算机网络体系分层体系结构物理层:通过媒介来传输比特流 (集线器,中继器) 数据链路层:将比特组装成帧和点到点的传递 (交换机) 网络层:负责数据包从源主机到目的主机的传递和网际互连(路由器) 传输层:为应用进程提供端到端的报文通信和差错检测 (网关) 会话层:建立、管理和终止会话(会话协议数据单元SPDU) 表示层:原创 2017-09-11 16:50:14 · 1255 阅读 · 1 评论 -
【Java程序员面试指南 七】MySQL原理机制
为什么 MySQL 索引要使用 B+树而不是其它树形结构?比如 B (B-)树和红黑树?主要内容参照一文彻底搞懂MySQL基础:B树和B+树的区别红黑树是自平衡二叉搜索树,计算机科学内比较常用的一种数据结构,它使得对数据的搜索,插入和删除操作都能保持在O(lgn)的时间复杂度B-树与红黑树类似,只不过允许每个节点有更多的子节点,自平衡多叉搜索树B+树较B-树更进一步,是B-树的变体,区别是它的所有关键字存储在叶子节点出现,内部节点(非叶子节点并不存储真正的 data)为所有叶子结点增加了.原创 2021-03-14 09:52:35 · 335 阅读 · 1 评论 -
【Java程序员面试指南 八】Redis原理机制
Redis和数据库的缓存一致性问题怎么解决?正常的数据读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题什么是缓存不一致问题,什么场景下会发生缓存不一致问题?Answer:数据更新的时候无论是先更新数据库再更新(or删除)缓存,还是 先更新(or删除)缓存再更新数据库两种实现方式在高并发情况下都会有缓存不一致的现象,因为更新DB和操作缓存两个动作之间,明显缺乏原子性先删除缓存,再更新数据库,数据库还没有.原创 2021-03-14 16:12:33 · 336 阅读 · 2 评论 -
【Java程序员面试指南 九】Kafka原理机制
Kafka 和RabbitMQ区别,为什么用KafkaAnswer:二者主要有以下几种区别从支持消息类型上讲:RabbitMQ 基于 AMQP 协议实现的,Kafka基于JMS协议,所以Kafka支持的消息类型更多:StreamMessage (Java原始值的数据流);MapMessage(一套名称-值对);TextMessage(一个字符串对象);ObjectMessage(一个序列化的 Java对象);BytesMessage(一个字节的数据流),而RabbitMQ 只支持二进制字符流从性.原创 2021-03-15 23:29:47 · 277 阅读 · 1 评论 -
【Java程序员面试指南 十】ElasticSearch常见问题收集
结构化数据:一般是从内部数据库和外部开放数据库接口中获得,一般存储产品业务运营数据以及用户操作的结果数据,比如注册用户数、下单量、完单量等数据。这类数据格式规范,典型代表就是关系数据库中的数据,可以用二维表来存储,有固定字段数,每个字段有固定的数据类型(数字、字符、日期等),每个字节长度相对固定。这类数据易于维护管理,同时对于查询、展示和分析而言也是最为方便的一类数据格式。半结构化数据:应用的点击日志以及一些用户行为数据,通常指日志数据、xml、json等格式输出的数据,格式较为规范,一般是纯文本数据,需原创 2021-04-10 22:39:49 · 292 阅读 · 0 评论