![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
芒果不是程序猿
这个作者很懒,什么都没留下…
展开
-
一个三年Java工程师面试阿里、滴滴的面试总结,已拿网易offer
前言16年毕业到现在也近两年了,最近面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中...最终有幸去了网易。但是要特别感谢点我达的领导及HR,真的非常非常好,很感谢他们一直的关照和指导。面试整体事项简历要准备好,联系方式一定要正确清晰醒目,项目经历按照时间倒序阐述,注意描述自己在项目中承担的职责,简历...原创 2020-03-31 15:34:59 · 379 阅读 · 1 评论 -
springcloud熔断机制
熔断机制,指的是微服务架构中,由于某个服务瘫痪,为避免影响整个系统而采取的降级服务简述:由于网络或自身原因,服务不能确保一定可用。如果某个服务出现了问题,调用方的大量请求会使Servlet容器的线程资源被耗尽,导致服务瘫痪。而且这种故障会传播,进而威胁到这个微服务系统可用性示例如下:基于springboot1.5.10添加依赖:<dependency>&l...原创 2020-03-27 21:52:54 · 2161 阅读 · 0 评论 -
阿里大咖精心烹饪整理85道Java微服务面试题(附答案)
微服务 面试题1、您对微服务有何了解?微服务,又称微服务 架 构,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合 。通俗地说,你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状物。他们最初从使用各种材料的小部分开始,并继续从中构建一个大型蜂箱。这些细胞形成图案,产生坚固的结构,将蜂窝的特定部分固定在一起。这里,每个细胞独立于另一个细胞,但它也与其他细胞相关。...原创 2020-03-24 15:36:55 · 1016 阅读 · 0 评论 -
2020年这十二道RabbitMQ高频面试题,你都会了吗?
RabbitMQ 面试题1、什么是 rabbitmq2、为什么要使用 rabbitmq3、使用 rabbitmq 的场景4、如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?5.如何避免消息重复投递或重复消费?6、消息基于什么传输?7、消息如何分发?8、消息怎么路由?9、如何确保消息不丢失?10、使用 RabbitM...原创 2020-03-24 15:34:03 · 371 阅读 · 0 评论 -
从SpringBoot源码到自己封装一个Starter
这篇博客主要讲述一下springboot怎么给我们简化了大量的配置,然后跟着源码自己封装一个Starter,首先我们需要从两个地方来说,第一就是springboot的起步依赖,第二就是springboot自动装配;起步依赖我们在创建一个springboot工程时需要引入spring-boot-starter-web这个依赖;<dependency> <gro...原创 2020-03-23 15:43:41 · 964 阅读 · 0 评论 -
Java知识点全面总结
总结内容过长,希望读者可以看到最后,希望对你们有帮助,小编在文末准备了彩蛋希望喜欢!!索引的实现方式1、B+树我们经常听到B+树就是这个概念,用这个树的目的和红黑树差不多,也是为了尽量保持树的平衡,当然红黑树是二叉树,但B+树就不是二叉树了,节点下面可以有多个子节点,数据库开发商会设置子节点数的一个最大值,这个值不会太小,所以B+树一般来说比较矮胖,而红黑树就比较瘦高了。关于B+树的插...原创 2019-11-27 22:50:59 · 146 阅读 · 0 评论 -
提升Java反射效率,解密原因
文章内容过长,小编在文末准备了彩蛋,希望读者喜欢!!!预备知识了解 Java 反射基本用法看完本文可以达到什么程度了解 Java 反射原理及 Java 反射效率低的原因文章概览我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运用更是常见。我相信,每次提到反射,大家的第一反应一定是反射效率低,尽量少使用。但是反射的效率到底低多少?反射效率低的...原创 2019-11-27 22:08:51 · 193 阅读 · 0 评论 -
Docker基础与实战
docker 基础什么是DockerDocker使用Google公司推出的Go 语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker在容器的基础上,进行了进一步的封装,从文件系...原创 2019-11-26 21:25:12 · 123 阅读 · 0 评论 -
java可以对map的key排序吗
Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。Map.Entry返回Collections视图。...原创 2019-11-26 17:34:38 · 487 阅读 · 0 评论 -
这些java面试题都不会,凭什么拿高薪?
1. ArrayList 和 Vector 的区别 ArrayList和Vector底层实现原理都是一样得,都是使用数组方式存储数据 Vector是线程安全的,但是性能比ArrayList要低。 ArrayList,Vector主要区别为以下几点: (1):Vector是线程安全的,源码中有很多的synchronized可以看出,而ArrayList不是。导致Vector...原创 2019-11-19 21:59:03 · 163 阅读 · 0 评论 -
插曲:大白话带你认识Kafka
本文内容过长,文末小编准备了彩蛋!希望读者喜欢!前言应大部分的小伙伴的要求,在Yarn之前先来一个kafka的小插曲,轻松愉快。一、Kafka基础消息系统的作用应该大部份小伙伴都清楚,用机油装箱举个例子所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大...原创 2019-11-18 22:00:28 · 859 阅读 · 2 评论 -
Java 中常见的几个陷阱,你没有遇到几个?
文章内容过长,文末有彩蛋!希望大家多多关注java 中有很多,新手经常遇到的陷阱,本文主要包含:自动装箱与拆箱;不可变的String;内存泄漏;自增类型使用;使用 “==”进行对象比较;double 类型计算概述java 中有很多,新手经常遇到的陷阱,本文主要包含自动装箱与拆箱 不可变的String 内存泄漏 自增类型使用 使用 “==”进行对象比较 double 类...原创 2019-11-16 21:00:30 · 98 阅读 · 0 评论 -
你真的了解Jvm加载class文件吗?
文章内容过长,文末有彩蛋!希望大家多多关注在面试java工程师的时候,这道题经常被问到,故需特别注意。认真阅读本文后,方可做到心中有数,面试谈笑风生。1,JVM简介(简单了解) JVM 全称是Java Virtual Machine ,Java 虚拟机,也就是在计算机上再虚拟一个计算机,这和我们使用 VMWare不一样,那个虚拟的东西你是可以看到的,这个JVM...原创 2019-11-16 20:44:49 · 306 阅读 · 0 评论 -
聊一聊 SpringBoot 中 FatJar 启动原理
文章内容过长,文末有彩蛋!希望大家多多关注FatJar 解压之后的文件目录从 Spring 官网 或者通过 Idea 创建一个新的 SpringBoot 工程,方便起见,建议什么依赖都不加,默认带入的空的 SpringBoot 工程即可。通过 maven 命令进行打包,打包成功之后得到的构建产物截图如下:在前面的文章中有提到,jar 包是zip 包的一种变种,...原创 2019-11-16 20:31:15 · 2160 阅读 · 0 评论 -
一份无法拒绝的《Spring技术内幕》文档
由于细节内容太过于庞大,所以没法全部展示,希望理解。下面每个内容点都是有更加详细内容分析的。 Ps:最后文末还有大彩蛋本书共分为三个部分:第一部分 Spring 核心实现篇第二部分 Spring 组件实现篇第三部分 Spring 应用篇第一章 准备源代码环境第二章 IoC容器的实现第三章 Spring AOP的实现...原创 2019-11-14 22:14:59 · 153 阅读 · 0 评论 -
Mysql事务
事务定义一个事务会涉及大量的cpu操作和IO操作,这些操作会被打包成一个执行单元,要么同时完成,要么同时都不完成。事务是一组原子性的sql命令或者说是一个独立的工作单元,如果其中任何一条sql语句因为崩溃或者其他原因执行失败,那么该组所有的sql语句都不会执行。如果没有显示启动事务,数据库会根据autocommit的值,默认每条sql操作都会自动提交。事务的特性ACID原子性(A)...原创 2019-11-14 21:04:35 · 200 阅读 · 0 评论 -
Redis基础你掌握多少了?来查漏补缺?
Redis 是什么Redis 是 开源,内存 中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如 字符串strings, 散列 hashes, 列表 lists, 集合 sets, 有序集合 sorted sets 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。Redis 还内置了 复制...原创 2019-11-08 17:29:04 · 141 阅读 · 0 评论 -
Spring Cloud Security:Oauth2结合JWT使用
摘要Spring Cloud Security 为构建安全的SpringBoot应用提供了一系列解决方案,结合Oauth2还可以实现更多功能,比如使用JWT令牌存储信息,刷新令牌功能,本文将对其结合JWT使用进行详细介绍。JWT简介JWT是JSON WEB TOKEN的缩写,它是基于 RFC 7519 标准定义的一种可以安全传输的的JSON对象,由于使用了数字签名,所以是可信任和安全...原创 2019-11-06 22:59:49 · 694 阅读 · 0 评论 -
java 多线程里面经常提到原子性,那原子性到底是什么呢
上次主要说了一个结论就是volatile,线程安全可见性的问题,大部分情况下可见性都不需要管理的,但是多线程编程的代码中,我们会使用到volatile关键字,通过volatile关键字解决可见性问题,一个线程对共享变量的修改,能够及时的被其他线程看到。只要加了volatile关键字,所有对变量的读取立刻进行同步。volatile关键字的用途:禁止缓存;相关的变量不做重排序。...原创 2019-11-08 15:14:22 · 1017 阅读 · 0 评论 -
图解Redis RDB持久化、AOF持久化
1.持久化1.1 持久化简介持久化(Persistence),持久化是将程序数据在持久状态和瞬时状态间转换的机制,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。1.2 redis持久化redis为内存数据库,为了防止服务器宕机以及服务器进程退出后,服务器数据丢失,Redis提供了持久化功能,即将Redis中内存数据持久化到磁盘中。Redis 提供了不同...原创 2019-11-05 16:19:25 · 270 阅读 · 0 评论 -
DocKer实战书籍,阿里架构师精细整理
《Docker实战》的宗旨是向开发人员、系统管理员和混合技能的其他计算机用户,介绍Docker项目和Linux容器的概念。Docker和Linux都是开源的项目,有丰富的在线文档,.但无论如何,入门仍是一项艰巨的任务。Docker是有史以来增长最快的开源项目之一,在其周围的生态系统也是以类似的速度不断发展。由于这些原因,本书的重点完全在于Docker 的工具集。这一范围限定不仅能使内容选材更精准...原创 2019-11-03 21:40:02 · 528 阅读 · 0 评论 -
「JAVA」- 知识点小结
java面向对象编程面向对象(概念):三大特性: 封装: 封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。一个类就是一个封装类了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改...原创 2019-11-03 15:28:26 · 308 阅读 · 0 评论 -
一文带你学习SpringBoot
一、SpringBoot简介1.什么是SpringBoot 产生背景:Spring开发比较繁琐,配置文件很多,部署流程复杂,整合第三方框架难度大。这会降低开发效率 SpringBoot是一个简化Spring应用创建和开发的框架 整合了整个Spring技术栈,是JavaEE开发一站式解决方案2.为什么使用SpringBoot优点:可以快速构架Spring项目,并与主...原创 2019-11-03 14:33:05 · 618 阅读 · 0 评论 -
Java中异常处理的实践
Java中的异常处理不是一个简单的主题。初学者发现它很难理解,甚至有经验的开发者也可以花几个小时讨论如何以及应该抛出或处理哪些异常。这就是为什么大多数开发团队都有自己的一套如何使用它们的规则。如果你是一个团队的新手,你可能会惊讶这些规则与你之前使用的规则有多么不同。尽管如此,大多数团队都使用了几种最佳实践。以下是帮助你入门或改进异常处理的9个最重要的内容。1.在finally块中清理资...原创 2019-11-03 15:34:54 · 283 阅读 · 0 评论 -
java注解核心知识总结
1. 前言前几年我们的项目还在structs 2 上跑,有一次问一个同事是否知道 Spring Boot,同事说那不是用注解来开发的吗。虽然这个答案并不完全对,但是从客观上Spring Boot对刚刚接触它的人来说最醒目的就是注解了。那么今天我们来了解一下Java语言的核心功能——注解。2.注解是什么public @interface Anno { }以上就是一个最简单的注解声...原创 2019-11-01 20:40:14 · 96 阅读 · 0 评论 -
Java特性之枚举、注解和Lambda表达式
导语: Java语言自诞生起,经历了两次较大的革新:第一次是在2004年,Java5引入了枚举类型、注解和泛型;第二次是在2014年,Java8引入了lambda表达式。本文就重点介绍一下枚举、注解和lambda表达式。枚举定义枚举类型Java5使用关键字enum来表示枚举类型。定义一个枚举很简单,如下所示:public enum Season{ SPRING,SUMMER,A...原创 2019-11-01 13:46:53 · 200 阅读 · 0 评论 -
Java中Object类常用的11个方法,你用过几个?
前言Java 中的 Object 方法在面试中是一个非常高频的点,毕竟 Object 是所有类的“老祖宗”。Java 中所有的类都有一个共同的祖先 Object 类,子类都会继承所有 Object 类中的 public 方法。先看下 Object 的类结构(快捷键:alt+7):1. getClass 方法public final native Class&l...原创 2019-10-31 21:17:25 · 1517 阅读 · 0 评论 -
JAVA 基础 之 线程池
在执行一个多线程应用程序时创建多个线程,如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率。因为线程的切换,创建和销毁都需要花费额外的开销。所以就推出了线程池的方式,把创建的线程都交给统一的集合去管理,使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务1: ThreadPoolExecutor 类介绍...原创 2019-10-30 20:49:54 · 110 阅读 · 0 评论 -
整理了一些Java基础流程图/架构图
前言:整理了一些Java基础流程图/架构图,做一下笔记,大家一起学习。1.spring的生命周期Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要; 首先容器启动后,对bean进行初始化 按照bean的定义,注入属性 检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例...原创 2019-10-27 17:11:09 · 441 阅读 · 0 评论 -
聊聊Java中的内存
JVM的内存先放一张JVM的内存划分图,总体上可以分为堆和非堆(粗略划分,基于java8)那么一个Java进程最大占用的物理内存为:Max Memory = eden + survivor + old + String Constant Pool + Code cache + compressed class space + Metaspace + Thread st...原创 2019-10-23 21:39:48 · 411 阅读 · 0 评论 -
Java并发编程入门(十一)限流场景和Spring限流器实现
一、限流场景限流场景一般基于硬件资源的使用负载,包括CPU,内存,IO。例如某个报表服务需要消耗大量内存,如果并发数增加就会拖慢整个应用,甚至内存溢出导致应用挂掉。限流适用于会动态增加的资源,已经池化的资源不一定需要限流,例如数据库连接池,它是已经确定的资源,池的大小固定(即使可以动态伸缩池大小),这种场景下并不需要通过限流来实现,只要能做到如果池内链接已经使用完,则无法再获取新的连接则可...原创 2019-10-23 16:26:28 · 805 阅读 · 0 评论 -
深入浅出并发编程底层原理
1.Java内存模型——底层原理1.1 什么是底层原理Java程序编译到运行需要经过将.java后缀的文件通过javac命令编译成.class文件(此时与平台无关),然后将对应的.class文件转化成机器码并执行,但是由于不同平台的JVM会带来不同的“翻译”,所以我们在Java层写的各种Lock,其实最终依赖的是JVM的具体实现和CPU指令,才能帮助我们达到线程安全的效果。2 三兄...原创 2019-10-20 20:11:12 · 229 阅读 · 0 评论 -
大家都说 Java 反射效率低,你知道原因在哪里么
预备知识1.了解 Java 反射基本用法看完本文可以达到什么程度1.了解 Java 反射原理及 Java 反射效率低的原因文章概览我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运用更是常见。我相信,每次提到反射,大家的第一反应一定是反射效率低,尽量少使用。但是反射的效率到底低多少?反射效率低的原因在哪里?这篇文章就来探索一下这些问题。由于本机...原创 2019-10-16 21:34:59 · 637 阅读 · 0 评论 -
Java基础知识的27个点
1、JAVA中的几种基本数据类型是什么,各自占用多少字节。2、String类能被继承吗,为什么不能。在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的。3、String,Stringbuffer,StringBuilder的区别。4、ArrayList和LinkedList有什么区别。简单的区别: 1.ArrayList是实现了基于动态数组的...原创 2019-10-16 16:26:15 · 193 阅读 · 0 评论 -
重学Java-一个Java对象到底占多少内存
内存是程序员逃不开的话题,当然Java因为有GC使得我们不用手动申请和释放内存,但是了解Java内存分配是做内存优化的基础,如果不了解Java内存分配的知识,可能会带偏我们内存优化的方向。所以这篇文章我们以“一个对象占多少内存”为引子来谈谈Java内存分配。文章基于JDK版本:1.8.0_191文章标题提出的问题是”一个对象到底占多少内存“,看似很简单,但想说清楚并不容易,希望本文的探讨...原创 2019-10-14 21:43:34 · 248 阅读 · 0 评论 -
Java 代码性能优化
原文链接:https://blog.csdn.net/richard_jason/article/details/53004974代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于...原创 2019-10-14 19:27:27 · 139 阅读 · 0 评论 -
JAVA经典算法40题(4)
【程序31】 题目:将一个数组逆序输出。程序分析:用第一个与最后一个交换。其实,用循环控制变量更简单: for(int k=11;k>=1;k--) System.out.print(myarr[k]+",");【程序32】 题目:取一个整数a从右端开始的4~7位。程序分析:可以这样考虑:(1)先使a右移4位。(2)设置一个低4位全为1,其余全为0的数。可...原创 2019-10-11 20:25:49 · 100 阅读 · 0 评论 -
Java泛型简单的使用
[Github(https://github.com/ilssio/java-base-ilss)前言Java里面的泛型在实际开发中运用的很多,学过C++的同学一定知道C++的模板,而Java中的泛型,一定程度上和它还是挺像的。相信写Java的人,大都有用过List的实现类ArrayList。在Java没有泛型之前,它的内部是一个Object的数组实现的。这也导致一个问题,每次使用里面的元素...原创 2019-09-30 17:18:44 · 78 阅读 · 0 评论 -
Github中java语言中收获最多star的前十个项目
1. CyC2018/CS-Notesstar: 59.3k介绍: 技术面试必备基础知识、Leetcode 题解、后端面试、Java 面试、春招、秋招、操作系统、计算机网络、系统设计 :链接概览:2. elastic/elasticsearchstar: 40.7k介绍: 开源,分布式,RESTful搜索引擎 链接概览:3. ReactiveX/RxJavastar: 38...原创 2019-10-08 20:56:46 · 258 阅读 · 0 评论 -
常用java工具类的镇整理收集
原文链接*1.json转换工具1. package com.taotao.utils; 3. import java.util.List; 5. import com.fasterxml.jackson.core.JsonProcessingException; 6. import com.fasterxml.jackson.databind.JavaType; 7. import ...原创 2019-10-08 20:57:39 · 108 阅读 · 0 评论