JAVA面试知识体系实战总结
文章平均质量分 84
IT枫斗者
大家好,我是程序员枫哥,csdn全栈领域优质创作者,华为云专家博主,阿里云专家博主,51CTO专家博主,目前组建的团队,专注Java技术分享,一对一学习辅助,春招/秋招/社招/跳槽,Java带徒等求职辅助,欢迎来技术交流,有问必答。
展开
-
还在用Feign?推荐一款微服务间调用神器,跟SpringCloud绝配
在微服务项目中,如果我们想实现服务间调用,一般会选择Feign。之前介绍过一款HTTP客户端工具Retrofit,配合SpringBoot非常好用!其实Retrofit不仅支持普通的HTTP调用,还能支持微服务间的调用,负载均衡和熔断限流都能实现。今天我们来介绍下Retrofit在Spring Cloud Alibaba下的使用,希望对大家有所帮助!原创 2022-02-19 14:35:18 · 255 阅读 · 0 评论 -
HashMap除了死循环之外,还有什么问题?
本篇的这个问题是一个开放性问题,HashMap 除了死循环之外,还有其他什么问题?总体来说 HashMap 的所有“问题”,都是因为使用(HashMap)不当才导致的,这些问题大致可以分为两类:程序问题:比如 HashMap 在 JDK 1.7 中,并发插入时可能会发生死循环或数据覆盖的问题。业务问题:比如 HashMap 无序性造成查询结果和预期结果不相符的问题。接下来我们一个一个来看。原创 2022-02-16 12:13:32 · 648 阅读 · 0 评论 -
JSON的使用场景及注意事项介绍
JSON的使用场景及注意事项介绍JSON的2种结构形式键值对形式{ "person": { "name": "pig", "age": "18", "sex": "man", "hometown": { "province": "江西省", "city": "抚州市", "county": "崇仁县" } }}这种结构的JSON数据规则是:一个无序的“‘名称/值’对”集合。一个对象以 {左括号 开始, }原创 2022-02-15 08:39:49 · 864 阅读 · 0 评论 -
Java8的Stream流如此强大,你知道它的原理吗
Java8API添加了一种新的抽象,称为流Stream,可以让你以声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以大大提高Java程序员的生产力,让程序员写出高效、干净、简洁的代码。本文将分析Stream的实现原理。1.Stream的组成和特点。Stream(流)是一个来自数据源的元素队列,支持聚合操作: 元素是一个特定类型的对象,形成一个队列。Java中的Stream原创 2021-12-16 17:13:13 · 1428 阅读 · 1 评论 -
上了容器和K8s的IT基础就完美了吗?
当普罗大众还在以为服务器、虚拟机就是很高端的IT应用时,许多企业已经完成了业务上云;当普罗大众还在以为私有云、公有云、混合云就是最高效、弹性、灵活的IT基础时,越来越多的企业上了容器和K8s;当普罗大众还在以为Docker、容器技术、K8s等就是最前沿、最新型的IT技术时,Top级的企业已经在使用边缘计划、数据中台、PaaS平台等;.............容器和K8s普罗大众,也许就是企业的CTO,技术负责人等。你看到的是,企业已经处在最完美的IT基础架构上了,用着容器,上了K原创 2021-12-03 10:53:51 · 271 阅读 · 0 评论 -
(Java跳蚤网/IT枫斗者)Synchronized用过吗,其原理是什么 ?
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以 场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之..原创 2021-07-04 19:38:43 · 253 阅读 · 0 评论 -
MySQL架构与SQL的执行流程_2
今天我们接着昨天的话题继续聊下去NO.1.1.2.通信方式第二个是通信方式单工:在两台计算机通信的时候,数据的传输是单向的。生活中的类比:遥控器。半双工:在两台计算机之间,数据传输是双向的,你可以给我发送,我也可以给你发送,但是在这个通讯连接里面,同一时间只能有一台服务器在发送数据,也就是你要给我发的话,也必须等我发给你完了之后才能给我发。生活中的类比:对讲机。全双工:数据的传输是双向的,并且可以同时传输。生活中的类比:打电话。MySQL 使用了半双工的通信方式?原创 2021-06-22 21:15:26 · 134 阅读 · 1 评论 -
华为电商项目面经总结
今天向大家介绍下面试华为电商项目面经,面试官可是华为公司的大佬哦!面试问题如下Q:线程安全的集合1.VectorVector和ArrayList类似,是长度可变的数组,与ArrayList不同的是,Vector是线程安全的,它给几乎所有的public方法都加上了synchronized关键字。由于加锁导致性能降低,在不需要并发访问同一对象时,这种强制性的同步机制就显得多余,所以现在Vector已被弃用。2.HashTableHashTable和HashMap类似,不同点是HashTa原创 2021-06-17 21:23:55 · 354 阅读 · 0 评论 -
北京某科技技术有限公司20k面经(已过)
今天上午,有个辅助的学员过了北京某科技技术有限公司的面试,下面我提炼出比较好的面试问题,并给出了对应的答案消息队列的Topic 和 Queue区别队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型:点对点(point-to-point,简称PTP)Queue消息传递模型:在该消息传递模型下,一个消息生产者向消息服务器端一个特定的队列发送消息,一个消费者从该队列中读取消息。在这种模型下,消息生产者知道消息消费者的队列并直接将消息发送到消息消费者的队列。发布/订阅(pub.原创 2021-06-16 18:15:53 · 251 阅读 · 0 评论 -
面试时如何聊单例模式
今天有个我辅助的学员,他今天面试了软通动力Java开发工程,他期望薪资是18k。面试他的正是甲方华为公司。其中面试官要他说说他自己熟悉的设计模式。然后他巴拉巴拉,说了单例模式,说的非常好,面试官一直肯定的说不错可以。整场面试下来,总共半个小时左右。面试官对于他这次面试的整体感觉还是相当满意的。下面我们就来聊聊单例模式吧。NO.1 单例模式的应用场景单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。..原创 2021-06-15 22:35:53 · 2548 阅读 · 9 评论 -
上海-拼多多电商部二面(4)
30、线程的调度策略线程调度器选择优先级最高的线程运行,但是,如果发生以下情况,就会终止线程的运行:(1)线程体中调用了yield方法让出了对cpu的占用权利 ;(2)线程体中调用了sleep方法使线程进入睡眠状态 ;(3)线程由于IO操作受到阻塞 ;(4)另外一个更高优先级线程出现;(5)在支持时间片的系统中,该线程的时间片用完;31、ConcurrentHashMap 的并发度是什么ConcurrentHashMap的并发度就是segment的大小,...原创 2021-03-02 11:06:46 · 189 阅读 · 0 评论 -
上海-拼多多电商部二面(3)
17、什么是Future?在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承thread 类还是实现 runnable 接口,都无法保证获取到之前的执行结果。通过实现 Callback接口,并用 Future 可以来接收多线程的执行结果。Future 表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加 Callback 以便在任务执行成功或失败后作出相应的操作。18、什么是 AQSAQS 是 AbustactQueuedSynchronizer 的简称,原创 2021-03-02 11:06:02 · 157 阅读 · 0 评论 -
阿里蚂蚁集团JAVA一面
自我介绍 介绍实习3、多服务器之间是怎么保持数据一致的目前,有很多类似的工具可以实现服务器之间的数据同步,比如:rsync(具体如何使用自行百度);简单来讲就是SLB系统也是一个由多台计算机构成的集群。用户在这个系统中申请和配置了一个SLB的实例对外提供服务,针对该SLB实例的访问请求会通过 我们的系统按照用户设定的规则向后端的多台ECS进行转发。那么当我们系统内的某一台计算机出现问题的时候,其他的计算机可以承担本应由其处理的任务而保 证整个集群和服务的可用性。如果你为自己的SLB实例正确的开启了健原创 2021-01-01 21:37:33 · 530 阅读 · 0 评论 -
面试总结之乐信(上)
面试总结之乐信(上)IT枫斗者IT枫斗者今天面试内容:一、画出项目架构图二、所处自己负责的业务模块,其中用到了哪些技术点三、如何实现最终一致性分布式事务? 1. 二阶段提交: a. 概念:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。 b. 作用:主要保证了分布式事务的原⼦性;第一阶段为准备阶段,第二阶段为提交阶段; ...原创 2020-10-15 22:19:25 · 731 阅读 · 0 评论 -
Java必备知识(二)
Jvm相关栈溢出,就是当递归调用的时候没有临界退出条件批量导入大量数据或者dom4j解析大的xml文件的时候会出堆溢出,通过分段批量提交以及sax代替dom4jjava虚拟机有一个堆,堆是运行时数据区域所有的类和数组的内存都是从堆里分配的堆是在java虚拟机启动的时候创建的,两种内存:堆和栈,堆是java开发人员使用的栈是jvm自己使用的,内存结构分为:堆(逻辑上连续的,物理上不是连续的,存的是类实例,和数组),虚拟机栈(基本的数据类型,引用对象),本地方法栈(jvm栈是为java方法的执行提供服务,而原创 2020-10-13 21:59:29 · 143 阅读 · 0 评论 -
Java必备知识(一)
一、接口与抽象类的区别?1. 抽象类可以有构造方法,接口中不能有构造方法。2. 抽象类中可以有普通成员变量,接口中没有普通成员变量3. 抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。4. 抽象类中的抽象方法的访问类型可以是public,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。5. 抽象类中可以包含静态方法,接口中不能包含静态方法6. 抽象类和接口中都可以包含静原创 2020-10-08 21:11:33 · 238 阅读 · 1 评论 -
面试总结20201005
1、ArrayList 和 LinkedList 区别?ArrayList是基于数组结构的,可以自动扩容,当达到数据的百分之80就会扩容,还有由于基于数组,对于查询数据与删除数据都是比较快的,添加比较慢。底层实现了序列化接口,LinkedList基于链表,增加比较快,查询删除比较慢,要一步一步的遍历。2、HashMap原理 ?HashMap底层是基于数组与链表,是特殊的key,value结构,在使用put方法时,是将添加的key通过hash算法将hashcode进行添加到数组中,在调用get原创 2020-10-05 22:33:10 · 262 阅读 · 0 评论 -
Zookeeper介绍
一、Zookeeper概述Zookeeper作为Hadoop项目中的一个子项目,是Hadoop集群管理的一个必不可少的模块,它主要用来控制集群中的数据,如它管理Hadoop集群中的NameNode,还有Hbase中Master Election、Server 之间状态同步等。Zoopkeeper提供了一套很好的分布式集群管理的机制,就是它这种基于层次型的目录树的数据结构,并对树中的节点进行有效管理,从而可以设计出多种多样的分布式的数据管理模型。Zookeeper并不是用来专门存储数据,它的作用主原创 2020-09-27 21:50:11 · 333 阅读 · 0 评论 -
商汤科技面试总结
一、kafka数据分区和消费者的关系,kafka的数据offset读取流程,kafka内部如何保证顺序,结合外部组件如何保证消费者的顺序1、kafka数据分区和消费者的关系:1个partition只能被同组的一个consumer消费,同组的consumer则起到均衡效果2、kafka的数据offset读取流程a.连接ZK集群,从ZK中拿到对应topic的partition信息和partition的Leader的相关信息b.连接到对应Leader对应的brokerc.consumer将⾃己保存的offse原创 2020-09-24 22:06:26 · 2702 阅读 · 0 评论 -
2020年JAVA面试实战总结,面试资料学习规划路线(完整版有面试录音,面试实战总结!)
以下是我从17年到现在的所有帮助的人面试实战总结,详情可以往下翻看看番外篇。。持续更新中。。。文章目录JAVA学习路线windows的常用Doc命令-----DOC命令JAVA基础---基础知识总结查询数据库锁,和解锁语句!----------------------番外篇-----------------------:工作难找,入坑不易,请根据自己的情...原创 2019-09-03 17:20:39 · 899 阅读 · 0 评论 -
JAVA概述!
1991 年Sun公司的詹姆斯·高斯林(James Gosling)等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,包含的技术如 Servlet、Jsp等.主要针对web程...原创 2019-09-04 11:23:38 · 205 阅读 · 0 评论 -
JAVA基础---基础知识总结!
Java基础知识目录:1:Java概述:2:JAVA基础知识3:JVM区域、类加载过程和创建对象做了哪些步骤?4:JAVA集合介绍及特点!5:Iterator迭代器介绍...原创 2019-09-04 11:24:24 · 232 阅读 · 0 评论 -
JAVA基础知识之面向对象!
JAVA基础知识之面向对象:1.封装(面向对象特征之一) 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。getXxx()和setXxx()好处:将变化隔离;便于使用;提高重用性;安全性。封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。A:类的书写:一个类中可以书写的成员有以下几种:成员变量:其实对应的就是事物的属性。成员方...原创 2019-09-12 15:51:46 · 490 阅读 · 0 评论 -
类加载过程和创建对象做了哪些步骤?
A:Java虚拟机运行时数据区域(JVM : Java virtual machine)1. 程序计数器 Program Counter Register2. 本地方法栈 Native Method Stack3. 虚拟机栈JVM Stack(方法栈,栈区)1. 作用:执行方法2. 程序中所有方法若想执行,必须进栈(压栈),方法执行完弹栈3. 栈的结构...原创 2019-09-12 16:02:02 · 431 阅读 · 0 评论 -
JAVA集合介绍及特点!
1.什么是集合?集合也是一种容器,也可以存放数据。随着我们学习技术的深入,那么我们在程序中创建的对象也会越来越多。这时在程序中就要想办法先把这些对象给存储起来,然后在需要使用这些对象的时候从容器中把对象取出,再去使用这些对象。1.1 集合与数组区别1)从长度来讲:数组:需要固定长度。集合:长度可以改变,可以根据保存的数据进行扩容。2)从存储内容上:数组:可以存储基本类型...原创 2019-09-16 16:21:33 · 475 阅读 · 0 评论 -
Iterator迭代器介绍!
由于集合框架中的集合容器太多,而每个集合容器中保存的数据存储的方式都不一样。于是导致我们取数据的时候方式也完全不相同。Java针对这些所有集合容器取出数据的方式进行共性的抽取,于是针对所有的集合定义了一个接口,在这个接口中描述了所有集合容器的共性遍历规则。注意:对于集合取元素,无论是什么数据结构,最终共性的取出方式:一个一个取,取之前先判断,有,取一个,没有,结束。这种取出的共性方...原创 2019-09-16 16:58:08 · 301 阅读 · 0 评论 -
Java学习路线 (从零基础到项目完整2019版!)
前言:如果想要入坑,请看完下面这段话! 工作难找,入坑不易,请根据自己的情况再做决定,且行且珍惜! 大家都说今年行情不怎么好,确实今年比起往年工作机会是少了很多,但我觉得事事是相对的。我入坑比较早,好几年了,各种各样的人和事都遇到过,也面试过很多人! 当然 我也发现了一个问题,就是近几年,入行的越来越多。所以随着而来的问题也来了,很多人一时冲动去培训,...原创 2019-10-09 10:32:38 · 1570 阅读 · 0 评论 -
常用的windows系统DOC窗口命令!
作为一个开发人员,怎么能DOC命令不会呢?不让人笑话嘛。。ipconfig:查询本机ip地址(当前关注ipv4)2. netstat -ano 显示所有连接的端口和进程id并用数字表示 1. -a 显示所有连接和监听端口。 2. -n 以数字形式显示地址和端口号。 3. -o 显示与每个连接相关的所属进程 ID。...原创 2019-09-03 15:54:27 · 1304 阅读 · 0 评论