简介 HashMap是平常使用的非常多的,内部结构是 数组+链表/红黑树 构成,很多时候都是多种数据结构组合. 我们先看一下HashMap的基本操作:   new HashMap(n); 第一个知识点,传入n,构造的HashMap容量就是n吗? 答案是:不一定. public HashMap(int initialCapacity, float loadFactor) { this.loadFactor = loadFactor; //负载因子 默认0.75 //设置容量 this.thresh…
整份手册分为两个部分,分别是:Java部分.Android部分.数据结构与算法篇.字节跳动2020年全年面试题总结篇! 每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图吧. Java部分 操作系统相关 JDK&JVM&JRE 面向过程&面向对象 八大基本数据类型&引用类型 数组 Java异常 NIO/BIO/AIO 集合(容器) 线程 泛型 反射 注解 Socket编程 设计模式 JVM相关 Android部分 Activity 典型情况下的…
前言:最近老是收到小伙伴的私信问我能不能帮忙整理出一份JVM相关的面试题出来,说自己在大厂去面试的时候这一块问的是特别多的,每次自己学的时候每次都学不到重点去.这不他来了,一份详细的JVM面试真题给大家整理在下方了! 一.什么情况下会发生栈内存溢出? 1.栈是线程私有的,栈的生命周期和线程一样,每个方法在执行的时候就会创建一个栈帧,它包含局部变量表.操作数栈.动态链接.方法出口等信息,局部变量表又包括基本数据类型和对象的引用:2.当线程请求的栈深度超过了虚拟机允许的最大深度时,会抛出StackO…
Java异常架构与异常关键字 Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性.在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了"什么"被抛出,异常堆栈跟踪回答了"在哪"抛出,异常信息回答了"为什么"会抛出. Java异常架构     1. Throwable Thro…
一,HashTable 哈希表,它相比于hashMap结构简单点,它没有涉及红黑树,直接使用链表的方式解决哈希冲突. 我们看它的字段,和hashMap差不多,使用table存放元素 private transient Entry<?,?>[] table; private transient int count; private int threshold; private float loadFactor; private transient int modCount = 0; 它没有常量字…
Java创建对象的5种方式 1.直接new,调用了构造器2.通过clone(),没有调用构造器3.通过反射,调用了构造器4.通过反序列化,没有调用构造器5.通过Unsafe类的allocateInstance()方法,没有调用构造器 1. 直接new public class CreateByNew { public CreateByNew() { System.out.println("调用了构造..."); } public static void main(String[] ar…
1 List集合 1.1 List概述 在Collection中,List集合是有序的,可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素. 在List集合中,我们常用到ArrayList和LinkedList这两个类. 关于Java List的一些重要观点是; Java List接口是Java Collections Framework的成员.List允许您添加重复元素.List允许您拥有'null'元素.List接口在Java 8中有许多默认方法,例如replaceA…
Java 内存分配 • 寄存器:程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码.• 静态域:static 定义的静态成员.• 常量池:编译时被确定并保存在 .class 文件中的(final)常量值和一些文本修饰的符号引用(类和接口的全限定名,字段的名称和描述符,方法和名称和描述符). • 非 RAM 存储:硬盘等永久存储空间.• 堆内存:new 创建的对象和数组,由 Java 虚拟机自动垃圾回收器管理,存取速度慢.• 栈内存:基本类型的变量和对象的引用变量(堆内存空间的访问地…
前言: 最近也是在后台收到很多小伙伴私信问我线程和线程池这一块的问题,说自己在面试的时候老是被问到这一块的问题,被问的很头疼.前几天看到后帮几个小伙伴解决了问题,但是问的人有点多我一个个回答也回答不过来,干脆花了一个上午时间写了这篇文章分享给大家.话不多说,满满的干货都在下面了! 并发与并行 并发:指两个或多个事件在同一个时间段内发生.在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每 一时刻只能有一道程序执行,即微观上这些程序是分时的交替运…
大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以啊,不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流~ 字节跳动Android实习面试凉凉经 一面问的 Java 和 Android 基础 1.Jvm…