
面试必问
大壮vip
博学而笃志,切问而近思。
展开
-
【温故而知新】Java:类加载过程、类加载时机、类加载器、类加载机制理解
一、类加载过程加载 链接 验证 准备 解析 初始化 1.加载加载是指,将类的class文件,读入到内存,并为其创建java.lang.Class文件本地文件系统加载class文件——绝大部分的示例代码 jar包中加载——例如jdbc 网络加载 java文件的动态加载类加载器无须“首次使用”加...原创 2020-04-28 16:42:20 · 245 阅读 · 0 评论 -
【温故而知新】谈一谈volatile禁止指令重排
首先,说一下,翻了一下Java编程思想,在第680页,对原子性、可变性的描述。有兴趣,可以翻一番 thinking in Java做了以下总结:1、volatile概念 volatile是java虚拟机提供的轻量级同步机制 volatile三个特性:保证可见性 不保证原子性 禁止指令重排2、volatile禁止指令重排(1)指令重排有序性:计...原创 2020-04-27 17:02:44 · 1021 阅读 · 0 评论 -
【温故而知新】多线程基本知识
多线程面试47题1、并发编程三要素?1)原子性原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。2)可见性可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。3)有序性有序性,即程序的执行顺序按照代码的先后顺序来执行。2、实现可见性的方法有哪些?synchroni...原创 2020-04-27 16:36:48 · 283 阅读 · 0 评论 -
【温故而知新】synchronized与lock的区别
1、线程与进程:一个程序最少需要一个进程,而一个进程最少需要一个线程线程是程序执行流的最小单位,而进程是系统进行资源分配和调度的一个独立单位2、Thread的几个重要方法:我们先了解一下Thread的几个重要方法。a、start()方法,调用该方法开始执行该线程;b、stop()方法,调用该方法强制结束该线程执行;c、join方法,调用该方法等待该线程结束。d、sl...原创 2020-04-27 10:26:17 · 288 阅读 · 0 评论 -
【温故而知新】Jvm与gc深入理解
学习了很久,作出以下总结,来温故而知新一、Jvm内存模型规范(jmm)1.cpu、高速缓存、主内存cpu读写磁盘速度较慢。cup读写朱内存速度目前也有瓶颈。cpu读写告诉缓存目前最快。但是遇到一个问题,就是高速缓存的一致性问题。各个高速缓存与朱内存都存在可见性、一致性问题。2.内存屏障——volatile 关键字作用:(1)阻止屏障两侧的指令重排序——...原创 2020-04-26 16:03:02 · 325 阅读 · 0 评论 -
【温故而知新】hadoop常见面试题
1.hdfs写数据流程1.客户端向namenode请求上传文件,namenode检测该文件是否已存在,父目录是否存在,然后返回是否可以上传。2.客户端请求上传第一个block,namenode返回三个节点(dn1,dn2,dn3)。3.客户端向dn1请求上传数据,dn1收到请求后会调用dn2,dn2调用dn3,建立传输通道,dn1、dn2、dn3逐级应答。4.客户端开始往dn1上传第一个...原创 2020-03-29 22:40:39 · 284 阅读 · 0 评论 -
【温故而知新】Java基础String面试题整理
1.String s1 = 'a'String s2 = 'a's1和s2 相等吗。java会让s2 指向 s1的地址,所以是相等的。2.String s = new String("abc");创建了几个对象?答案及解释:2个对象。s首先会在常量池创建“abc”字符串常量,当new的时候就会在堆内存中创建一个对象,此时会把常量池中的字符串常量拷贝一份副本到给...翻译 2020-03-29 22:33:56 · 205 阅读 · 0 评论 -
【温故而知新】准备Java面试题基础
1. 简单说说java中的集合类2. HashTable和HashMap的区别3. HashTable和HashMap取哈希的方式有什么不同4. HashMap的底层?5.HashMap在jdk1.7和1.8的区别是什么6.为什么HashMap负载因子知道吗,说说7.负载因子为什么是0.75,大了或者小了会怎么样8.Hashmap的初始容量设置是多少,如果要自定义,有什么要求?8....原创 2020-03-29 22:20:52 · 264 阅读 · 0 评论 -
【温故而知新】自我整理:mysql的索引从二叉树、平衡二叉树、btree、b+tree
1.二叉树但是这样找的很深才能找到都能查到,但是深度较深,速度慢。2.平衡二叉树进行旋转来缩短寻找深度对数据进行数据段划分,提高速度。3.红黑二叉树在平衡基础上,用自己的规则旋转。4.b树已经是很优化的查找方案了,每个节点都是k和v5.b+树节点不带v,所以,存储量级变大,磁盘读取io较快...原创 2020-03-27 13:29:24 · 449 阅读 · 0 评论 -
【温故而知新】sql底层实现原理
1、一条查询SQL执行流程图2、查询SQL执行流程之发送SQL请求(1)客户端按照Mysql通信协议将SQL发送到服务端,SQL到达服务端后,服务端会单起一个线程执行SQL。(2)执行时Mysql首先判断SQL的前6个字符是否为select。并且语句中是否带有SQL_NO_CACHE关键字,如果没有则进入查询缓存。3、查询SQL执行流程之查询缓存查询缓存说白了就是一个哈希表...翻译 2020-03-27 13:19:22 · 913 阅读 · 0 评论 -
【温故而知新】Java性能优化GC调优概念
这一块是java需要理解的。温故知新。JVM GC(垃圾回收机制)在学习Java GC 之前,我们需要记住一个单词:stop-the-world 。它会在任何一种GC算法中发生。stop-the-world 意味着JVM因为需要执行GC而停止了应用程序的执行。当stop-the-world 发生时,除GC所需的线程外,所有的线程都进入等待状态,直到GC任务完成。GC优化很多时候就是减少st...原创 2020-03-26 15:00:20 · 317 阅读 · 0 评论 -
【温故而知新】Java23种设计模式
设计模式主要分三个类型:创建型、结构型和行为型。其中创建型有: 一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 ; 应用场景:一个无状态的类使用单例模式节省内存资源。 二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。 应用场景:一系列相互依赖的对...原创 2020-03-26 14:43:44 · 218 阅读 · 0 评论 -
【温故而知新】Kafka实现高吞吐的原理
顺序读写kafka的消息是不断追加到文件中的,这个特性使kafka可以充分利用磁盘的顺序读写性能顺序读写不需要硬盘磁头的寻道时间,只需很少的扇区旋转时间,所以速度远快于随机读写生产者负责写入数据,Kafka会将消息持久化到磁盘,保证不会丢失数据,Kafka采用了俩个技术提高写入的速度。1.顺序写入:在大学的计算机组成(划重点)里我们学过,硬盘是机械结构,需要指针寻址找到存储数据的位...原创 2020-03-26 14:36:59 · 491 阅读 · 0 评论 -
【温故而知新】Java集合面试题-基本上必问的
1)常见的集合有哪些?答:Map接口和Collection接口是所有集合框架的父接口:Collection接口的子接口包括:Set接口和List接口 Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties等 Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等 List...原创 2020-03-26 12:30:24 · 493 阅读 · 0 评论 -
【温故而知新】线程与进程的深入理解
CPU+RAM+各种资源(比如显卡,光驱,键盘,GPS,等等外设)构成我们的电脑,但是电脑的运行,实际就是CPU和相关寄存器以及RAM之间的事情。CPU的速度相当非常快,寄存器仅仅能追上他的脚步,RAM和别的挂在个总线上的设备完全是望其项背。那当多个任务要执行的时候怎么办呢?轮着来?或者优先级高谁来?不管怎么样的策略,一句话就是在CPU看来就是轮着来的。执行...翻译 2020-03-26 11:10:21 · 179 阅读 · 0 评论 -
【温故而知新】hdfs file、RDD、Pratition、task、core、executor关系整理
一.spark中Partition,Task,core,Executor的个数决定因素和关系:1.RDD 中有多个 Partition,Partition 是 Spark RDD 计算的最小单元,决定了计算的并发度。分区数如果远小于集群可用的 CPU 数,不利于发挥 Spark 的性能,还容易导致数据倾斜等问题。分区数如果远大于集群可用的 CPU 数,会导致资源分配的时间过长,从而影响性能。...原创 2020-03-26 11:01:24 · 310 阅读 · 0 评论