- 博客(18)
- 收藏
- 关注
转载 有关 HashMap 面试会问的一切
前言HashMap 是无论在工作还是在面试中都非常常见常考的数据结构。比如 Leetcode 第一题 Two Sum 的某种变种的最优解就是需要用到 HashMap 的,高频考题 LRU Cache 是需要用到 LinkedHashMap 的。HashMap 用起来很简单,底层实现也不复杂,先来看几道常见的面试题吧。相信大家多多少少都能回答上来一点,不清楚的地方就仔细阅读本文啦~这篇文章带你深挖到 HashMap 的老祖宗,保证吊打面试官== 和 equals 的区别?为什么重写equals(
2020-07-22 13:19:34
178
转载 Java工程师成神之路 基础篇 Java基础知识 异常&注解&泛型
异常Error 和 ExceptionException 和 Error ,二者都是 Java 异常处理的重要子类,各自都包含大量子类,均继承自Throwable 类。Error 表示系统级的错误,是java 运行环境内部错误或者硬件问题,不能指望程序来处理这样的问题,除了退出运行外别无选择,它是Java 虚拟机抛出的。Exception 表示程序需要捕捉、需要处理的异常,是由与程序设计的不完善而出现的问题,程序必须处理的问题。异常类型Java中的异常,主要可以分为两大类:即受检异常(chec
2020-07-21 10:02:36
283
转载 2万字长文 JVM 内存结构
前言本篇主要是为了让自己对JVM内存结构有更加的认识。原文链接地址如下:https://mp.weixin.qq.com/s/YyVkWtRjLu8cE2bfg8wAbg直击面试我是带着以下问题往下读:说一下JVM运行时数据区吧?都有哪些区?分别是干什么的?Java 8的内存分代改进举例栈溢出的情况?调整栈大小,就能保证不出现溢出吗?分配的栈内存越大越好吗?垃圾回收是否涉及到虚拟机栈?方法中定义的局部变量是否线程安全?运行时数据区内存是非常重要的系统资源,是硬盘和CPU的中间
2020-07-16 16:16:46
252
转载 Java工程师成神之路 基础篇 Java基础知识 序列化
序列化什么是序列化与反序列化序列化是将对象转换为可传输格式的过程。是一种数据的持久化手段。一般广泛应用于网络传输,RMI和RPC等场景中。反序列化是序列化的逆操作。序列化是将对象的状态信息转换为可存储或传输的形式的过程,一般是以字节码或XML格式传输。而字节码或XML编码格式可以还原为完全相等的对象。这个相反的过程称为反序列化。Java如何实现序列化和反序列化Java对象的序列化与反序列化在Java中,我们可以通过多种方式来创建对象,并且只要对象没有被回收我们都可以复用该对象。但是,我们创建
2020-07-16 13:52:47
186
转载 Java工程师成神之路 基础篇 Java基础知识 反射&动态代理
反射反射机制指的是程序在运行时能够获取自身的信息。在Java中,只要给定类的名字,那么就可以通过反射机制来获取类的所有属性和方法。反射有什么用在运行时判断任意一个对象所属的类。在运行时判断任意一个类所具有的成员变量和方法。在运行时任意调用一个对象的方法。在运行时构造任意一个类的对象。Class 类Java 的Class 类是Java反射机制的基础,通过Class类我们可以获得关于一个类的相关信息。Java.lang.Class是一个比较特殊的类,它用于封装被装入到JVM的类(包括类
2020-07-12 14:33:41
157
转载 Java工程师成神之路 基础篇 Java基础知识 IO
字符流、字节流字节和字符Bit是最小的二进制单位,是计算机的操作部分。取值0或者1Byte(字节)是计算机中操作数据的最小单位,由8位bit组成取值(-128到127)Char(字符)是用户的可读写的最小单位,在Java里面由16位bit单位组成 取值(0-65535)字节流操作byte类型数据,主要操作类是OutputStream、InputStream的子类;不用缓冲区,直接对文件本身操作。字符流操作字符类型数据,主要操作类是Reader、Writer的子类;使用缓冲区缓冲字符,不关闭流
2020-07-08 13:25:08
183
转载 Java工程师成神之路 基础篇 Java基础知识 枚举
枚举的用法1. 背景在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式声明一组具有int常量。之前我们通常利用public static final方法定义的代码如下,分别用 1表示春天,2 表示夏天,3 表示秋天,4表示冬天。public class Season { public static final int SPRING = 1; public static final int SUMMER = 2; public static final int AUT
2020-07-08 10:30:02
119
转载 Java工程师成神之路 基础篇 Java基础知识 String
String字符的不可变性定义一个字符串String s = "abcd";s 中保存了String对象的引用。下面的箭头可以理解为“存储他的引用”。使用变量来赋值变量String s2 = s;s2 保存了相同的引用,因为它们代表的是同个对象。字符串连接s = s.concat("ef");s中保存的是一个重新创建出来的string对象的引用。总结一旦一个string 对象在内存(堆)中被创建出来,他就无法被修改。特别注意的是,String类的所有方法都没有改变字
2020-07-03 11:36:42
252
转载 Java工程师成神之路 基础篇 Java基础知识 基本数据类型&自动拆装箱
基本数据类型8种基本数据类型字符型char布尔型boolean数值型整型:byte、short、int、long浮点型:float、doubleString 不是基本数据类型,是引用类型整型中byte、short、int、long的取值范围Java 中的整型主要包括byte、short、int 和 long 这四种,表示的数字范围也是从小到大的,之所以表示范围不同主要和他们存储数据时所占的字节数有关。先来个简单的科普,1字节 = 8位(bit).Java中的整型属于有符号数。
2020-07-01 11:42:01
181
转载 HashMap 常考问题
1:HashMap的 数据结构?答:哈希表结构(链表散列:数组 + 链表)实现,结合数组和链表的优点。当链表长度超过8时,链表转换为红黑树。2:HashMap 的工作原理?答:HashMap 底层是 hash 数组和单向链表实现,数组中每个元素都是链表,由Node 内部类(实现Map.Entry接口)实现,HashMap 通过 put & get 方式存储和获取。存储对象时,将 K / V 键值传给put() 方法:① 调用hash(K) 方法计算 K 的 hash 值,然后结合数组长
2020-06-30 11:32:13
487
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人