Java面试题
文章平均质量分 73
此专栏为博主在网上收集的一些有关各大互联网JAVA面试题的分类总结。有兴趣去的小伙伴可以在评论区留下你的想法,我会一一解答。
Adam`南帝·梁
世上哪有什么岁月静好,不过是有人替你负重前行
展开
-
创建线程的方式与过程(代码解析+对比)
创建线程的方式继承Thread类(extends)实现Runnable接口(implements)实现Callable接口+Future Task(可以拿到返回结果,可处理异常)线程池:Executors/ThreadPoolExecutor线程池工作流程线程池创建准备好corePoolSize大小的核心线程准备任务来了先试用核心线程core满了,将再进来的任务放到阻塞队列中等候阻塞队列满了,直接开启新的线程(不超过max数量)非核心线程会在keepAliveTime后自动销毁超过m原创 2022-05-16 21:34:33 · 330 阅读 · 0 评论 -
Redis面经(持续更新中)
首先来说Redis的话是一个基于内存的高性能K-V数据库,并且开源免费,Redis支持五种数据类型,非集合的是String,集合的有List、Set、Zset、HashRedis支持持久化AOF、RDB,Redis默认的话是使用RDB做持久化,建议采用AOF方式,因为AOF支持三种追加方式能够更好的恢复信息,分别是appendfsync:alawys、everysec、no,而alawys会严重降低redis的效率,所以使用everysec。Redis4.0之后优化了持久化的方式可以支持RDB+AOF同原创 2021-03-21 22:01:45 · 935 阅读 · 3 评论 -
JVM相关知识点整理
类的生命周期:加载、验证、准备、解析、初始化、使用、卸载类的加载机制是双亲委派模型:bootstrapClassLoaderextensionClassLoaderapplicationClassLoaderuserClassLoader总结:自定义类加载器,第一需要继承ClassLoader类,第二重写findClass方法原理分析:MyClassLoader loader1 = new MyClassLoader(“loader1”);loader1.setPath(“d://.原创 2021-03-21 21:58:04 · 252 阅读 · 0 评论 -
面试题(一):Java基础知识
Java 基础知识01. 面向对象的特性有哪些?答:封装、继承和多态。【面向对象编程的正确姿势】02. Java 中覆盖和重载是什么意思?解析:覆盖和重载是比较重要的基础知识点,并且容易混淆,所以面试中常见。答:覆盖(Override)是指子类对父类方法的一种重写,只能比父类抛出更少的异常,访问权限不能比父类的小。被覆盖的方法不能是 private 的,否则只是在子类中重新定义了一个方法;重载(O...原创 2018-06-02 11:35:27 · 3150 阅读 · 7 评论 -
面试题(二):Java中常见集合
Java 中常见集合 集合这方面的考察相当多,这部分是面试中必考的知识点。01. 说说常见的集合有哪些吧?答:Map 接口和 Collection 接口是所有集合框架的父接口:1. Collection 接口的子接口包括:Set 接口和 List 接口;2. Map 接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap 以及 Propertie...原创 2018-06-02 11:37:30 · 1660 阅读 · 6 评论 -
面试题(三):高并发编程
高并发编程在 Java 5.0 提供了 java.util.concurrent(简称 JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。01. 多线程和单线程的区别和联系:答:1. 在单核 CPU 中,将 CPU 分为很小的时间片,在每一时刻只能有一个线程在执行,是一种微观上轮流占用 CPU 的机制。2. 3....原创 2018-06-04 09:03:32 · 4323 阅读 · 7 评论 -
面试题(四):内存管理
JVM 内存管理既然是 Java 开发面试,那么对 JVM 的考察当然也是必须的,面试官一般会问你对 JVM 有了解吗?我通常都会把我所了解的都说一遍,包括:JVM 内存划分、JVM 垃圾回收的含义,有哪些 GC 算法,年轻代和老年代各自的特点统统阐述一遍。01. JVM 内存划分:1.方法区(线程共享):常量、静态变量、JIT(即时编译器) 编译后的代码也都在方法区;2.3.堆内存(线程...原创 2018-06-04 09:07:32 · 1542 阅读 · 9 评论 -
面试题(五):框架相关知识
框架相关知识 我在项目中使用的框架有 Spring MVC 和 MyBatis,所以在简历上只写了这两种框架,面试官主要针对这两种框架进行提问。以下问题供小伙伴们参考。JavaWeb 开发经典的 3 层框架:Web 层、Service 层(业务逻辑层)和 Dao 层(数据访问层)· Web 层:包含 JSP 和 Servlet 等与 Web 相关的内容;· 业务层:只关心业务逻辑;· 数据层:封装...原创 2018-06-17 21:47:23 · 379 阅读 · 15 评论 -
面试题(六):数据库知识点
数据库知识点 既然是后端开发,那么与数据库相关的知识点也是必不可少的。01. MySQL 和 MongoDB 的区别有哪些?如何选择?02. MongoDB 的优缺点有哪些?(ps 本人对这一块不是很熟悉,就不附上参考答案了,请各位小伙伴自行学习哈~)03. 听说过事务吗?(必考)答:作为单个逻辑工作单元执行的一系列操作,满足四大特性:1. 原子性(Atomicity):事务作为一个整体被执行 ,...原创 2018-06-24 09:45:09 · 527 阅读 · 13 评论 -
面试题(七):大数据相关知识
大数据相关知识 以下概念总结供小伙伴参考。01. KafKa 基本特性:答:快速持久化、支持批量读写消息、支持消息分区,提高了并发能力、支持在线增加分区、支持为每个分区创建多个副本。扩展:为什么可以实现快速持久化?答:KafKa 将消息保存在磁盘中,并且读写磁盘的方式是顺序读写,避免了随机读写磁盘(寻道时间过长)导致的性能瓶颈;磁盘的顺序读写速度超过内存随机读写。【Kafka 入门与实践】02. ...原创 2018-06-30 20:47:31 · 257 阅读 · 4 评论 -
知名互联网公司 Java 开发岗面试知识点解析
如背景中介绍,作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向。在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点。主要包括以下几个部分:Java 基础知识点Java 常见集合高并发编程(JUC 包)JVM 内存管理Java 8 知识点网络协议相关数据库相关MVC 框架相关大数据相关Linux 命令相关面试,是大家从学校走向社会的第一步。互联网公司的校园招聘,从形式上说...转载 2018-05-27 22:59:52 · 466 阅读 · 27 评论 -
五个面试题带你简单了解Redis
前言:简单来说Redis就是一个数据库,不过与传统的数据库不同的是Redis的数据是存在与内存中的,所以存写速度非常快,因此Redis被广泛应用于缓存方向。另外Redis也经常用来做分布式锁。Redis提供了多种数据类型来支持不同的业务场景需求。除此之外,Redis还支持事务、持久化、LUA脚本、LRU驱动事件、多种集群方案。正文:question:那么为什么要用缓存呢?或者为什么要用Redis呢?原因主要有两点:一、高性能二、高并发为什么要用Re...原创 2020-12-23 11:54:33 · 442 阅读 · 0 评论 -
组长说不能直接拼接“”+String
这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但...原创 2019-07-22 15:48:34 · 185 阅读 · 0 评论 -
源码分析HashMap(超详细图文源码解析)
前言:相信大家肯定有过此类的问题,有的东西用了半天,到底是干嘛的呢?会用了但是不知道为什么要用它,今天就来说说这个HashMap。正文:当我们需要存储数据的时候,我们已知的动态数组有哪些呢?但是这些数组虽然能够自动扩容,但是必须在初始时刻指定初始容量。而对于那些在编译时无法确定具体的数量即动态增长的数据,就需要用到Java集合类了:ArrayList 和 LinkedList,还有 Vector等等......对于ArrayList 和 LinkedList,还有 Vector它们都有一原创 2020-12-18 12:28:06 · 261 阅读 · 0 评论 -
面试题:truncate和delete的区别
前提:今天在听面试录音的时候,get到了这样一个问题:有一张表有一亿的数据,现在让你删除其中五千万条数据,你会用什么方法?这就需要用truncate table来搞定了,如下:select 5条数据 into #临时表 from 1亿条数据的牛X表truncate table 1亿条数据的牛X表 insert 1亿条数据的牛X表 select * from #临时表...原创 2018-09-02 08:26:44 · 26725 阅读 · 10 评论 -
还在查Redis缓存雪崩&缓存穿透&缓存击穿( 超详细图文解读)VisualStudio 2015没有注册怎么办??文末解决
前言:如果本文对您有帮助,麻烦楼下三连!缓存雪崩 释义:缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。 解决办法: 事前:尽量保证整个 redis 集群的高可用性,发现机器宕机尽快补上。选择合适的内存淘汰策略。 事中:本地ehcache缓存 + hystrix限流&降级,避免MySQL崩掉 事后:利用 redis 持久化机制保...原创 2020-12-24 22:45:03 · 22736 阅读 · 18 评论