
Java面试题之基础部分
K胖
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java基础----------Java内存模型(JMM)
Java内存模型(Java Memory Model 简称JMM)一、定义 JMM描述的是一组规则,通过这组规则来控制程序中各个变量在共享数据区域和私有数据区域的访问方式,保证了Java程序在各个平台下对内存的访问都能保证效果一致的一种机制;【简单通俗的来说JMM是说明主内存和工作内存之间数据同步的一组规则】二、目的&n...原创 2020-01-13 20:57:22 · 210 阅读 · 0 评论 -
Java面试题----------一天两道之第八天
一、抽象类与接口的区别抽象类使用abstract关键字修饰,而接口使用Interface关键字子类使用extends继承抽象类,而使用implement实现接口一个类只能继承一个抽象类,而一个类可以实现多个接口抽象类中成员变量可以是各种类型的,而接口中的变量只能是public static final抽象类中的方法可以是任何权限的,但是抽象方法不能是private的,而接口中的方法都是...原创 2019-12-22 20:43:24 · 130 阅读 · 0 评论 -
Java面试题----------一天两道之第七天
一、基本类型和包装类型的区别声明方式不同:基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间存储方式及位置不同:基本类型是直接将值存储在栈中的,而包装类型是将对象放在堆中,然后引用放在栈中,通过引用来使用对象初始值不同:包装类型的初始值为null,而基本类型不为null集合泛型中不支持基本类型,但支持包装类型 二、wait()和sleep()的...原创 2019-12-18 20:58:19 · 100 阅读 · 0 评论 -
Java面试题----------一天两道之第六天
一、说说Synchronized关键字答案: Synchronized关键字是用于解决并发情况下数据同步访问的一个重要关键字;它能保证线程安全,保证操作的原子性、变量的可见性和程序的有序性,保证同一时刻只有一个线程在进行访问;使用Synchronized关键字的方式有使用在方法上的称同步方法和以代码块方式使用的Synchronized同步块两种;当以同步块的方式使用时,需要对象锁或者类锁;当以同...原创 2019-12-16 12:38:40 · 178 阅读 · 0 评论 -
Java基础----------内存区域(运行时数据区)
一、Java内存结构图二、结构图的各个结构介绍程序计数器:保存当前线程执行的指令的地址虚拟机栈:存放一个个栈帧,而一个栈帧对应着一个Java方法 栈帧:一种数据结构,包括局部变量表、操作数据栈、指向运行时常量池的引用(动态链接)、方法返回地址和额外的附加信息;一个方法对应一个栈帧,方法开始时创...原创 2019-12-14 20:02:38 · 191 阅读 · 0 评论 -
Java面试题----------一天两道之第五天
一、说说堆的分区具体情况和它们的比例大小答案: 在Java中,堆被分为新生代和老年代这两个不同的区域;新生代又划分为Eden、Survivor这连个区,而Survivor又划分成From和To 两个区;从细分的角度看,堆被分成老年代、Eden区、From Survivor区和To Survivor区这四个区域;对于空间来说,默认新生代占1/3,老年代占2/3,可以通过参数-XX:N...原创 2019-12-13 20:04:33 · 125 阅读 · 0 评论 -
Java面试题----------一天两道之第四天
一、Java里的CAS了解吗?答案: CAS是一种比较交换技术,它是一种乐观锁,当多个线程尝试使用CAS更新同一个变量时,只有其中一个线程能更新变量,而其他的线程会失败,但是失败的线程不会被挂起而是被告知该次竞争失败再次竞争;CAS是CPU指令级的操作,它的原理是比较内存值和旧的预期值,当两者相同的时候才会把内存值修改成新值; CAS也有缺点,由于不断进行竞争,CPU内存会开销很大...原创 2019-12-12 21:41:51 · 144 阅读 · 0 评论 -
Java面试题----------一天两道之第三天
一、volatile关键字的作用以及使用场景答案: volatile是一个修饰变量的关键字,它不能修饰方法或者代码块,它能保证变量的可见性和有序性,但不能保证原子性;volatile能保证可见性是因为它修饰的变量发生写操作时会被强制同步到主内存中,该变量在其他cpu的缓存中会失效,在每次使用之前都会从主内存中刷新值,从而达到可见性;volatile能保证有序性是因为它有个功能是禁止...原创 2019-12-11 20:41:08 · 103 阅读 · 0 评论 -
Java面试题----------一天两道之第二天
一、1.8的HashMap中hash()方法为什么要进行异或(^)操作答案: key的hashcode()结果移动16位之后,可能会出现高低位变化很大,导致使用到的哈希值位数很少,这样会造成碰撞可能性增大;而进行异或操作之后让高低位参与到计算中,加大哈希码的随机性,会大大减少Ha...原创 2019-12-10 20:30:10 · 150 阅读 · 0 评论 -
Java面试题----------一天两道之第一天
一、你说HashMap在某个桶数据过大时会转换成红黑树,目的是什么呢?答案: 若桶中链表元素个数大于等于8时,链表转换成树结构;若桶中链表元素个数小于等于6时,树结构还原成链表。红黑树的平均查找长度是log(n),长度为8的时候,平均查找长度为3,如果继续使用链表,平均查找长度为8...原创 2019-12-08 14:44:38 · 112 阅读 · 0 评论