随笔分类 - Interview_面试
介绍面试遇到的问题
摘要:一、普通 hash 算法 (取模算法): 在了解一致性哈希算法之前,我们先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。 1、普通 hash算法 与 使用场景描述: 假
阅读全文
摘要:前端绘图方式Canvas和SVG的区别Canvas和SVG是html5中支持2种可视化技术,都是可以在画布上绘制图形和放入图片。下面来介绍和分析一下他们。 一.Canvas 和 SVG 简介 1.什么是Canvas? Canvas 是H5新出来的标签 Canvas画布,利用JavaScript在网页
阅读全文
摘要:页面渲染性能的优化衡量指标window.performance是w3c提供的用来测量网页和Web应用程序的性能api。其中performance timing提供了延时相关的性能信息,可以高精度测量网站性能 。 白屏时间=页面开始展示的时间点(PerformanceTiming.domLoading
阅读全文
摘要:公司推送了一个前端的简历,需要面试查了下需要面试的资料: 聊聊项目,遇到的问题是什么?项目技术难点,怎么调研技术方案,怎么从用户层考虑优化方案 如何解决的,现在的方案是否完善,有没有更好的方案; 1、. HTTPS怎么保证数据传输安全 参考:HTTPS如何保证数据传输安全性 2. canvas和sv
阅读全文
摘要:1、单例模式 参考:Java设计模式 - 单例模式 (懒汉方式和饿汉方式) 2、fullGC的情况; 3、CAP理论; 4、QPS ;秒杀如何设计; 5、双亲委派模型;、 6、理解 IO; 7、NIO,IO的区别 参考:Java NIO:IO与NIO的区别 -阿里 8、BIO,NIO 2、冒泡排序算
阅读全文
摘要:JVM内存结构,是很重要的知识,相信每一个静心准备过面试的程序员都可以清楚的把堆、栈、方法区等介绍的比较清楚。 上图,是一张在作者根据《Java虚拟机规范(Java SE 8)》中描述的JVM运行时内存区域结构画的。 很多人都知道Java对象是在堆内存中分配空间的(JIT优化除外),也知道内存分配过
阅读全文
摘要:如果想了解 redis 与Memcache的区别参考:Redis和Memcache的区别总结 阿里的面试官问问我为何redis 使用跳表做索引,却不是用B+树做索引 因为B+树的原理是 叶子节点存储数据,非叶子节点存储索引,B+树的每个节点可以存储多个关键字,它将节点大小设置为磁盘页的大小,充分利用
阅读全文
摘要:/**使用“生产者-消费者模式”编写代码实现:线程A随机间隔(10~200ms)按顺序生成1到100的数字(共100个),放到某个队列中.3个线程B、C、D即时消费这些数据,线程B打印(向控制台)所有被2整除的数,线程C打印被3整除的数,线程D打印其它数据,要求数字的打印是有序的(从1到100)限时
阅读全文
摘要:原题如下: 有一个100G大小的文件里存的全是数字,并且每个数字见用逗号隔开。现在在这一大堆数字中找出100个最大的数出来。 我认为,首先要摸清考官的意图。是想问你os方面的知识,还是算法,或者数据结构。 如果是os: 无疑是外排序算法的选择。100g文件在当前的环境下是无法全部读入内存的。 如果是
阅读全文
摘要:1. load average 定义 linux系统中的Load对当前CPU工作量的度量。简单的说是进程队列的长度。 Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。 通过系统命令"w"查看当前load average情况 上边0.31,0.30,0.31
阅读全文
摘要:线程不安全的问题:hashMap 的多线程安全问题- ConcurrentModificationException 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成
阅读全文
摘要:想了解AIO,BIO NIO Reactor 请参考:IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别(百度) 1、引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 本文基于 Netty 4.1 展开介绍相关
阅读全文
摘要:我们的项目中使用了websocket 用java-websocket 开源项目做的,阿里的人问我用啥实现的websocket一时没有答上来 回来做了总结: 1、前言 最近有同学问我有没有做过在线咨询功能。同时,公司也刚好让我接手一个 IM 项目。所以今天抽时间记录一下最近学习的内容。本文主要剖析了
阅读全文
摘要:基本的docker使用参考:Docker 入门 到部署Web 程序- (阿里面试常用的docker命令和优点) 昨天去阿里面试 问我如果给你5台服务器 如何部署docker,我说一个个拷贝,面试官听了脸都绿了, 说有没有听说过用swarm和compose 部署docker集群,我说没用过, 后来回来
阅读全文
摘要:阿里太注重原理了:阿里问kafka如何实现高并发存储-如何找到一条需要消费的数据,kafka用了稀疏索引的方式,使用了二分查找法,其实很多索引都是二分查找法 二分查找法的时间复杂度:O(logn) redis,kafka,B+树的底层都采用了二分查找法 参考:二分查找法 redis的索引底层的 跳表
阅读全文
摘要:关于top命令 经常问load average 参考:load average 定义(网易面试) jvm dump的使用 参考:Jvm dump jstack jmap jstat 介绍与使用(内存与线程) 以及使用jstack定位问题 查看端口:如何在Windows,Linux下查看JAVA端口占
阅读全文
摘要:redis使用跳表不用B+数的原因是:redis是内存数据库,而B+树纯粹是为了mysql这种IO数据库准备的。B+树的每个节点的数量都是一个mysql分区页的大小(阿里面试) 还有个几个姊妹篇:介绍mysql的B+索引原理 参考:一步步分析为什么B+树适合作为索引的结构 以及索引原理 (阿里面试)
阅读全文
摘要:二分查找法的时间复杂度:O(logn) redis,kafka,B+树的底层都采用了二分查找法 参考:二分查找法 redis的索引底层的 跳表原理 实现 聊聊Mysql索引和redis跳表 redis的跳表原理 时间复杂度O(logn)(阿里) 参考:二分查找法 kafka如何实现高并发存储-如何找
阅读全文