大家好,我是老三,"面渣逆袭"系列继续,这节我们来搞定JVM.说真的,JVM调优什么的一个程序员可能整个职业生涯都碰不到两次,但是,一旦用到的时候,那就是救命了,而且最重要的是--面试必问,所以,还能怎么办?整! 引言 1.什么是JVM? JVM--Java虚拟机,它是Java实现平台无关性的基石. Java程序运行的时候,编译器将Java文件编译成平台无关的Java字节码文件(.class),接下来对应平台JVM对字节码文件进行解释,翻译成对应平台匹配的机器指令并运行. 同时JVM也…
大家好,我是老三啊,面渣逆袭 继续,这节我们来搞定另一个面试必问知识点--Spring. 有人说,"Java程序员都是Spring程序员",老三不太赞成这个观点,但是这也可以看出Spring在Java世界里举足轻重的作用. 基础 1.Spring是什么?特性?有哪些模块? 一句话概括:Spring 是一个轻量级.非入侵式的控制反转 (IoC) 和面向切面 (AOP) 的框架. 2003年,一个音乐家Rod Johnson决定发展一个轻量级的Java开发框架,Spring作为Java战场…
大家好,我是老三,面渣逆袭系列继续,这节我们来搞定Redis--不会有人假期玩去了吧?不会吧? 基础 1.说说什么是Redis? Redis是一种基于键值对(key-value)的NoSQL数据库. 比一般键值对数据库强大的地方,Redis中的value支持string(字符串).hash(哈希). list(列表).set(集合).zset(有序集合).Bitmaps(位图). HyperLogLog.GEO(地理信息定位)等多种数据结构,因此 Redis可以满足很多的应用场景. 而且因为Re…
基础 1.为什么要使用消息队列呢? 消息队列主要有三大用途,我们拿一个电商系统的下单举例: 解耦:引入消息队列之前,下单完成之后,需要订单服务去调用库存服务减库存,调用营销服务加营销数据--引入消息队列之后,可以把订单完成的消息丢进队列里,下游服务自己去调用就行了,这样就完成了订单服务和其它服务的解…
大家好,我是老三,面渣逆袭 继续,这节我们来盘一盘另一个面试必问知识点--Java并发. 这篇文章有点长,四万字,图文详解六十道Java并发面试题.人已经肝麻了,大家可以点赞.收藏慢慢看!扶我起来,我还能肝! 基础 1.并行跟并发有什么区别? 从操作系统的角度来看,线程是CPU分配的最小单位. 并行就是同一时刻,两个线程都在执行.这就要求有两个CPU去分别执行两个线程. 并发就是同一时刻,只有一个执行,但是一个时间段内,两个线程都执行了.并发的实现依赖于CPU切换线程,因为切换的时间特别短,所以…
大家好,我是老三, 面渣逆袭 系列继续.这节我们回到梦开始的地方--Java基础,其实过了萌新阶段,面试问基础就问的不多,但是保不齐突然问一下.想一下,总不能张口高并发.闭口分布式,结果什么是面向对象,说不清,那多少有点魔幻.所以赶紧来看看,这些基础有没有你不会的! Java概述 1.什么是Java? PS:碎怂Java,有啥好介绍的.哦,面试啊. Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易…
大家好,我是老三.上期发布了一篇:面渣逆袭:HashMap追魂二十三问,反响很好! 围观群众纷纷表示 不写,是不可能不写的,只有卷才能维持了生活这样子. 当然,我写的这一系列,不是背诵版,是理解版,很多地方都是在讲原理,内容也比较充足,死记硬背很难,大家一定要去理解性地去记忆. 这一篇,除了把之前的HashMap一些小错误进行修正,我还把相对"比较"简单的List也给请了进来,帮大家降降曲线,找找信心--用谢,留下赞就行. 引言 1.说说有哪些常见集合? 集合相关类和接口都在java.…
大家好,我是老三,面渣逆袭系列继续,这节我们的主角是MyBatis,作为当前国内最流行的ORM框架,是我们这些crud选手最趁手的工具,赶紧来看看面试都会问哪些问题吧. 基础 1.说说什么是MyBatis? 先吹一下: Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动.创建连接.创建statement 等繁杂的过程.程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高. MyBatis…
上篇文章跟大家介绍了TCP通信常见的前10个面试题,没看过的小伙伴可以点击下方链接进行查看: 上位机面试必备——TCP通信灵魂二十问[上] 今天就后面的10个面试题接着做下说明:欢迎关注[dotNet工控上位机]公众号:thinger_swj 11.四次挥手中的TIME_WAIT状态? 首先要明确一点:主动关闭连接的一方,才会有TIME_WAIT状态. 之所以需要TIME_WAIT状态,主要是两个原因: 防止相同的端口重新连接时,服务器收到的是停留在网络间的数据包 保证被动关闭连接的一方能被正确…
大家好,我是老三. HashMap作为我们熟悉的一种集合,可以说是面试必考题.简单的使用,再到原理.数据结构,还可以延伸到并发,可以说,就一个HashMap,能聊半个小时. 1.能说一下HashMap的数据结构吗? JDK1.7的数据结构是数组+链表,JDK1.7还有人在用?不会吧-- 说一下JDK1.8的数据结构吧: JDK1.8的数据结构是数组+链表+红黑树. 数据结构示意图如下: 其中,桶数组是用来存储数据元素,链表是用来解决冲突,红黑树是为了提高查询的效率. 数据元素通过映射关系,也就是…