![](https://img-blog.csdnimg.cn/20200813213143911.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
面试问题
文章平均质量分 58
面试是公司挑选职工的一种重要方法。要想在面试中脱颖而出,就得好好准备,在这里我总结了常见的Java面试知识,分享给大家,祝大家早日收到offer。Java面试总结主要包括Java基础知识,集合容器,并发,JVM知识,Spring全家桶,MyBatis框架,数据库等。
七月J
从事后端(做过前端),不断积累经验,学习新的技术。
展开
-
IO流面试题
文件日录:C:\demo\test\files (盘符不限) linux目录~/demo/test/files。递归遍历demo目录 读取以txt 结尾的文件,并将文件的内容以一下格式在控制台输出。张三,测试,2019-02-18 02-22-00。李四,测试,2019-02-19 02-22-00。王二,测试,2019-02-20 02-22-00。2019/02/18 02:22:00,测试,张三。文件名:data.txt。原创 2023-08-19 12:19:07 · 310 阅读 · 0 评论 -
MySQL数据库面试题(2021最新版)
文章目录1、数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么MySQL有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?2、引擎MySQL存储引擎MyISAM与InnoDB区别InnoDB引擎的4大特性存储引擎选择3、索引什么是索引?索引有哪些优缺点?索引有哪几种类型?索引的数据结构(B树,hash)索引算法有哪些?索引设计的原则?创建索引的原则创建索引的三种方式,删除索引创建索引时需要注意什么?使用索引查询一定能提高查询的性能吗?为什么百万原创 2021-09-07 15:23:06 · 2550 阅读 · 1 评论 -
Java 垃圾回收机制与几种垃圾回收算法
一、如何确定某个对象是“垃圾”?这一小节先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?通过什么方法判断一个对象可以被回收了。在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。不失一般性,如果一个对象没有任何引用与之关联,则说明该对象基本不太可能在其他地方被使用到,那么这个对象就成为可被回收的对原创 2021-07-08 18:39:34 · 301 阅读 · 0 评论 -
如何保障mysql和redis之间的数据一致性?
需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题不管是先写MySQL数据库,再删除Redis缓存;还是先删除Redis缓存,再写MySQ.转载 2020-12-14 12:22:20 · 346 阅读 · 0 评论 -
Java基础知识面试题(2021最新)
文章目录Java概述什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么?Java语言有哪些特点什么是字节码?采用字节码的好处是什么?什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?用最有效率的方法计算 2 乘原创 2020-11-28 20:03:58 · 804 阅读 · 0 评论 -
Redis面试题(2021最新)
文章目录概述什么是RedisRedis有哪些优缺点为什么要用 Redis / 为什么要用缓存?为什么要用 Redis 而不用 map/guava 做缓存?Redis为什么这么快数据类型Redis有哪些数据类型Redis的应用场景持久化什么是Redis持久化?Redis 的持久化机制是什么?各自的优缺点?如何选择合适的持久化方式Redis持久化数据和缓存怎么做扩容?过期键的删除策略Redis的过期键的删除策略Redis key的过期时间和永久有效分别怎么设置?我们知道通过expire来设置key 的过期时间,原创 2020-11-28 14:06:13 · 2182 阅读 · 1 评论 -
牛客网经典120道Java面试常见题(试题+答案)
牛客网提供了120道Java面试题,这里整理出重点的内容,而且对答案有疑惑,补充了解释内容,便于理解。1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行字节码(.class)的虚拟机进程。Java源文件(.java)被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。2. JDK和原创 2020-11-26 14:13:30 · 8413 阅读 · 1 评论 -
TCP的三次握手和四次挥手详解
1. 三次握手三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。进行三次握手:第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的原创 2020-07-09 08:18:39 · 679 阅读 · 0 评论 -
HashMap在JDK1.7和1.8中的实现
一、初窥HashMapHashMap是应用更广泛的哈希表实现,而且大部分情况下,都能在常数时间性能的情况下进行put和get操作。要掌握HashMap,主要从如下几点来把握:jdk1.7中底层是由数组(也有叫做“位桶”的)+链表实现;jdk1.8中底层是由数组+链表/红黑树实现可以存储null键和null值,线程不安全初始size为16,扩容:newsize = oldsize*2,size一定为2的n次幂扩容针对整个Map,每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入插入元素原创 2020-07-09 08:16:32 · 463 阅读 · 0 评论 -
多线程 / 高并发 高频考点
stop() 和 suspend() 方法为何不推荐使用?反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend() 方法容易发生死锁。调用 suspend() 的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被 “挂起” 的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的.原创 2020-07-08 08:37:33 · 408 阅读 · 0 评论 -
Java 基础常见面试题大全
原因焦虑。每次去面试更高的职位时候,内心总是担忧着那些面试题怎么解答。很多问题在实际工作中并不会遇到,没有实际的解决问题经验,看过也记不住。让你的Java知识功底更加强悍,后面的框架,微服务也好理解。学习目标收集常见经典的 Java 面试题。做出答案,分享出去,和博友们进行讨论,不断进步。扩大知识图谱,扎实基础,梳理知识脉络。锻炼自己写文章以及排版的能力。避免下次面试找工作的时候抓瞎。Java 常见面试题基础篇:1. JDK 和 JRE 的区别JRE:Java .原创 2020-07-04 12:11:58 · 4934 阅读 · 2 评论