数据库基础知识 1.为什么要使用数据库 (1)数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 (2)数据保存在文件 优点: 数据永久保存 缺点: 1)速度比内存操作慢,频繁的IO操作. 2)查询数据不方便 (3)数据保存在数据库 1)数据永久保存 2)使用SQL语句,查询方便效率高. 3)管理数据方便 2.什么是SQL? 结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言. 作用:用于存取数据.查询.更新和管理关系数据库系统. 3.…
写在前面 我们知道,目前市面上的MQ包括Kafka.RabbitMQ.ZeroMQ.RocketMQ等等. 那么他们之间究竟有什么本质区别,分别适用于什么场景呢? 上述抛出的问题,同样在不少公司的Java工程师面试中出现,特别是当你简历上的技术栈包含了这些技术,面试官往往喜欢用这个问题,对你进行摸底考察. 本文我们就一起来探讨一下. (1)有Broker的暴力路由 这个流派最典型的就是Kafka,Kafka实际上为了提升性能,简化了MQ功能模型,仅仅提供了一些最基础的MQ相关的功能,但是大幅度优…
Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单一进程.线程可以被称为轻量级进程.线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源. 2. 多线程编程的好处是什么? 在多线程程序中,多个线程被并发的执行以提高程序的效率,CPU不会因为某个线程需要等待资源而进入空闲状态.多个线程共享堆内存(heap…
写在前面 今天想写一篇使用Nginx如何生成缩略图的文章,想了半天题目也没想好,这个题目还是一名读者帮我起的.起因就是这位读者最近出去面试,面试官正好问了一个Nginx如何生成缩略图的问题.还别说,就是这么巧呀!!就冲这标题,也要写一篇干货满满的技术好文!! 关于Nginx的安装,小伙伴们可以参考<[Nginx]实现负载均衡.限流.缓存.黑白名单和灰度发布,这是最全的一篇了!> 还有就是,小伙伴们如果对文章有什么好的建议和意见,或者在阅读文章时,有什么疑问,都可以在留言区进行留言!! 生成缩略…
本人是一名大三学生,最近在找暑期实习,其中也面试过两次阿里,一次菜鸟网络部门.一次网商银行部门,当然我都失败了,同时也让我印象很深刻,因此记录了其中一些面试心得,我觉得这个问题很值得分享,因此分享给大家 你能说一下HashMap的实现原理吗? 对于这个问题,我当时觉得这个问题太小菜一碟了,于是照着自己之前准备的开始巴拉巴拉介绍HashMap,当我说到哈希冲突时,面试官打断了我,问我,你知道HashMap如何解决哈希冲突的吗?这个我想都没想直接说链地址法,于是面试官又继续问,那你还知道有哪些解决H…
作为一种阅读的方式了解下jvm的工作原理 ps:(一些二逼的逼神面试官会问的问题) JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完毕,通过以下4步来完毕JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类. 在我们执行和调试Java程序的时候,常常会提到一个JVM的概念.JVM是Java程序执行的环境,可是他同一时候一个操作系统的一个…
最近看了 @JavaGuide 发布的一篇『面试官问我如何保证Kafka不丢失消息?我哭了!』,这篇文章承接这个主题,来聊聊如何保证 RocketMQ 不丢失消息. 0x00. 消息的发送流程 一条消息从生产到被消费,将会经历三个阶段: 生产阶段,Producer 新建消息,然后通过网络将消息投递给 MQ Broker 存储阶段,消息将会存储在 Broker 端磁盘中 消息阶段, Consumer 将会从 Broker 拉取消息 以上任一阶段都可能会丢失消息,我们只要找到这三个阶段丢失消息原因,…
最近,小黑哥的一个朋友出去面试,回来跟小黑哥抱怨,面试官不按套路出牌,直接打乱了他的节奏. 事情是这样的,前面面试问了几个 Java 的相关问题,我朋友回答还不错,接下来面试官就问了一句:看来 Java 基础还不错,Java HashMap 你熟悉吧? 我朋友回答.工作经常用,有看过源码. 我朋友本来想着,你随便来吧,这个问题之前已经准备好了,随便问吧. 谁知道,面试官下面一句: 那好的,我们来聊聊 Redis 字典吧. 直接将他整蒙逼. 小黑哥的朋友由于没怎么研究过 Redis 字典,所以这题…
前言 时至今日,Spring 在 Java 生态系统与就业市场上,面试出镜率之高,投产规模之广,无出其右.随着技术的发展,Spring 从往日的 IoC 框架,已发展成 Cloud Native 基础设施,衍生出大量 Spring 技术栈,如大家熟知的 Spring Boot.Spring Cloud 和 Spring Security 等. 毋庸置疑,Spring 早已成为 Java 后端开发事实上的行业标准,无数的公司选择 Spring 作为基础的开发框架,大部分Java 后端程序员在日常工…
前言 在一开始基础面的时候,很多面试官可能会问List集合一些基础知识,比如: ArrayList默认大小是多少,是如何扩容的? ArrayList和LinkedList的底层数据结构是什么? ArrayList和LinkedList的区别?分别用在什么场景? 为什么说ArrayList查询快而增删慢? Arrays.asList方法后的List可以扩容吗? modCount在非线程安全集合中的作用? ArrayList和LinkedList的区别.优缺点以及应用场景 ArrayList(1.8…