![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题打卡
文章平均质量分 87
九天漩女
燕大软件专业的奋斗人
展开
-
每日面试题打卡(多线程篇)——Day23
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!自旋锁在很多情况下,共享数据的锁定状态只会维持很短的一段时间,这个时候去挂起和恢复线程就造成了没必要的开销,为了避免这种情况,可以让另一个没有获取到锁的线程循环等待一会,持有锁的线程很快就会释放锁,通过循环自旋等待就减少了不必要的挂起和恢复的开销。这就是自旋锁的由来。如果锁占用的时间非常短,那么自旋原创 2022-04-11 21:26:28 · 186 阅读 · 0 评论 -
每日面试题打卡(多线程篇)——Day22
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!为什么代码需要重排序?在执行程序时,为了提高性能,编译器和处理器常常会对指令做重排序。重排序分为编译器优化重排序和处理器重排序。不论是哪种重排序,都需要满足两个条件:在单线程环境下不能改变程序允许的结果存在数据依赖关系的不允许重排序需要注意的是:重排序不会影响单线程环境的执行结果,但是会破坏原创 2022-04-10 16:14:16 · 344 阅读 · 0 评论 -
每日面试题打卡(多线程篇)——Day21
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!什么是线程同步和线程互斥,有哪几种实现方式?当一个线程对共享的数据进行操作时,应使之成为一个”原子操作“,即在没有完成相关操作之前,不允许其他线程打断它,否则,就会破坏数据的完整性,必然会得到错误的处理结果,这就是线程的同步。在多线程应用中,考虑不同线程之间的数据同步和防止死锁。当两个或多个线程之间原创 2022-04-10 15:47:08 · 478 阅读 · 0 评论 -
每日面试题打卡(多线程篇)——Day20
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!线程安全有哪些实现思路?互斥同步synchronized 和 ReentrantLock。非阻塞同步互斥同步最主要的问题就是线程阻塞和唤醒所带来的性能问题,因此这种同步也称为阻塞同步。互斥同步属于一种悲观的并发策略,总是认为只要不去做正确的同步措施,那就肯定会出现问题。无论共享数据是否原创 2022-04-07 22:26:38 · 211 阅读 · 0 评论 -
每日面试题打卡(基础篇补充)——Day19
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!为什么需要泛型?适用于多种数据类型执行相同的代码泛型中的类型在使用时指定,不需要强制类型转换(类型安全,编译器会检查类型)泛型的上限和下限?在使用泛型的时候,我们可以为传入的泛型类型实参进行上下边界的限制,如:类型实参只准传入某种类型的父类或某种类型的子类。上限class Info<原创 2022-04-06 16:59:05 · 2141 阅读 · 0 评论 -
每日面试题打卡(基础篇补充)——Day18
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!a = a + b 与 a += b 的区别+= 隐式的将加操作的结果类型强制转换为持有结果的类型。如果两这个整型相加,如 byte、short 或者 int,首先会将它们提升到 int 类型,然后在执行加法操作。byte a = 127;byte b = 127;b = a + b; // e原创 2022-04-05 17:36:17 · 442 阅读 · 0 评论 -
每日面试题打卡(多线程篇)——Day17
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!你是如何调用 wait() 方法的?使用 if 块还是循环?为什么?处于等待状态的线程可能会收到错误警报和伪唤醒,如果不在循环中检查等待条件,程序就会在没有满足结束条件的情况下退出。wait() 方法应该在循环调用,因为当线程获取到 CPU 开始执行的时候,其他条件可能还没有满足,所以在处理前,循环原创 2022-04-01 21:10:38 · 363 阅读 · 0 评论 -
每日面试题打卡(多线程篇)——Day16
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!说说线程的生命周期及五种基本状态?分别说明从一种状态到另一种状态转变有哪些方式?新建(New):创建了一个新的线程,但尚未启动可运行(Runnable):可能正在运行,也可能在等待CPU时间片。包含了操作系统中的Ready和Running状态。因为线程切换非常快,所以在Java中区分这两种状态没什原创 2022-03-31 15:49:37 · 187 阅读 · 0 评论 -
每日面试题打卡(多线程篇)——Day15
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!创建线程有哪几种方式?一、继承Thread类继承Thread类重写run方法调用start方法启动线程public class Create_thread extends Thread{ @Override public void run() { Syste原创 2022-03-29 17:10:23 · 458 阅读 · 0 评论 -
每日面试题打卡(多线程篇)——Day14
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!什么是进程和线程?线程是程序的一次执行,是系统运行程序的基本单位,因此进程是动态的。系统中运行一个程序即是一个进程从创建到消亡的过程。线程与进程相似,但是线程是比进程更小的执行单位。线程间的切换开销要比进程更小,所以线程也被成为轻量级进程。一个进程中可以有多个线程,在Java中,多个线程共享进程的堆原创 2022-03-29 16:49:10 · 382 阅读 · 0 评论 -
每日面试题打卡(多线程篇)——Day13
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!并发编程的优缺点优点:现代计算机都是多核CPU,使用并发编程可以最大化利用CPU资源,提高程序的性能。能解决我们对高并发的需求,方便进行业务拆分缺点:可能会导致内存泄漏、上下文切换、线程安全和死锁等问题并发编程三要素是什么?在 Java 程序中怎么保证多线程的运行安全?原子性:原子性代表原创 2022-03-26 20:03:41 · 497 阅读 · 0 评论 -
每日面试题打卡(基础篇)——Day1
这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!谈谈你对 JVM JDK 和 JRE 的理解(JDK 和 JRE 的区别是什么?)。JVM是就是Java虚拟机,它可以运行Java字节码,它针对不同的系统有特定的实现,目的就是为了在不同的系统上运行相同的字节码能得到相同的结果。字节码与不同系统下的JVM是实现Java“一次编译,处处运行”的关键。JDK是Java Deve原创 2022-03-02 19:59:07 · 297 阅读 · 5 评论 -
每日面试题打卡(容器篇)——Day12
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!HashMap是怎么解决哈希冲突的我们知道hashCode()返回的是整数,范围大概在-2^31 ~ 2^31-1 这个范围,而我们HashMap的容量只有16 ~ 2^30。如果直接用hashCode作为下标的话,会出现不匹配的情况。为了让每个对象都有对应的存储空间,就必须对hashCode进行压缩原创 2022-03-20 19:40:43 · 186 阅读 · 0 评论 -
每日面试题打卡(容器篇)——Day11
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!能否使用任何类作为 Map 的 key?可以使用任何类作为Map的key,但是我们在使用前,需要考虑一下几点:如果类重写了equals方法,也要重写hashCode方法类中的成员也要遵循equals和hashCode的规则如果一个类没有重写equals,那么建议不要使用HashMap用户自定原创 2022-03-17 21:57:40 · 533 阅读 · 0 评论 -
每日面试题打卡(容器篇)——Day10
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!说一下HashMap的实现原理HashMap主要用来存储键值对,它基于哈希表的Map接口实现,是最常用的Java集合之一,是非线程安全的。HashMap可以存储null的key和null的value,不过为null的key只能有一个,而null的value可以有多个。从底层数据结构来说,在JDK1原创 2022-03-16 20:54:32 · 985 阅读 · 0 评论 -
每日面试题打卡(容器篇)——Day9
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!ArrayList的扩容机制ArrayList有三个构造函数。默认的无参构造函数会返回一个空的数组。带初始容量的构造参数,返回对应长度的数组,如果参数值为0则返回空数组。包含特定集合元素的构造函数,将传入的集合转换为数组,通过Arrays.copyOf方法把集合中的元素拷贝到elementData中。原创 2022-03-15 20:05:33 · 189 阅读 · 0 评论 -
每日面试题打卡(容器篇)——Day8
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!说一下 HashSet 的实现原理?HashSet是基于HashMap实现的,HashSet的实现是比较简单的,其中很多的方法都是调用HashMap的方法来实现的。那么HashSet是如何进行存储的呢?HashSet的值存在HashMap的key上,HashMap的value统一为PRESETN,这里原创 2022-03-14 21:03:32 · 667 阅读 · 0 评论 -
每日面试题打卡(容器篇)——Day7
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!迭代器 Iterator 是什么?怎么使用?有什么特点?迭代器Iterator是Java提供的接口,它可以遍历任何Collection接口的实现类。我们可以从一个Collection中使用迭代器方法来获取迭代器实例。Iterator的特点是只能单向遍历,而且允许调用者在遍历过程中移除元素,所以它更加安原创 2022-03-10 20:59:51 · 318 阅读 · 1 评论 -
每日面试题打卡(容器篇)——Day6
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!说说 List, Set, Queue, Map 四者的区别?List存储的元素是有序的、可重复的Set存储的元素是无序的、不可重复的Queue存储的元素是有序的、可重复的,而且保证先进先出的原则Map是根据键值对key、value来存储数据的,key是无序的、不可重复的,value是无序的、可原创 2022-03-08 20:37:04 · 470 阅读 · 0 评论 -
每日面试题打卡(基础篇)——Day5
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!基础篇结语经过五天的奋战,基础篇的面试题算是学习完啦。当然这些面试题只是基础中的一部分,对于知识的学习,我们一定要自成体系,不能盲目的去背八股。后面会主要更新容器篇的面试题,当然啦,如果我看到了其它的基础面试题也会整理发布的!谢谢大家的关注与支持。什么是序列化?什么是反序列化?序列化就是将我们程序原创 2022-03-07 20:44:54 · 136 阅读 · 0 评论 -
每日面试题打卡(基础篇)——Day4
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!Exception 和 Error 有什么区别?Exception是程序本身可以处理的异常,我们可以通过catch来捕获。Exception又分为Checked Exception和Unchecked Exception。Error是程序无法处理的错误,我们无法通过catch来捕获。一般出现这种错误原创 2022-03-06 20:03:04 · 181 阅读 · 0 评论 -
每日面试题打卡(基础篇)——Day3
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!深拷贝和浅拷贝区别了解吗?什么是引用拷贝?浅拷贝:在堆中创建一个新的对象(拷贝对象),如果原对象中有引用类型的成员时,那么原对象和拷贝对象共享这些内部对象。深拷贝:在堆中创建一个与原对象一模一样的对象,包括内部对象也一样。引用拷贝:简单来收就是,不同的引用指向同一个对象字符串拼接用“+” 还是原创 2022-03-06 12:12:55 · 132 阅读 · 0 评论 -
每日面试题打卡(基础篇)——Day2
博主个人博客网站:文客这个系列会长期更新!如果你想每天和我打卡面试题、交流技术,可以关注一下我的个人博客网站:文客,我会每天在这里更新技术文章和面试题,也会及时收到大家的评论与留言,欢迎各位大佬来交流!== 和 equals() 的区别先说“==”对于基本类型来说,“==”判断的是两个值是否相等对于引用数据类型来说,“==”判断的是两个对象地址是否相同equals()方法存在于Object类中,也就是说每个类都有equals()方法。equals()方法不能用于判断基本类型,只能用于判断引原创 2022-03-03 20:25:31 · 286 阅读 · 0 评论