自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Java程序员非要进大厂才能拿到年薪50W+,从而告别重复的CRUD?

接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题,似乎都在避嫌。就跟有人下班后跑滴滴一样,程序员私有时间接点活挣点钱不也很正常么,不过不要在上班时间就行,就跟你上班期间出去跑滴滴一样。但是我是不建议接私活的,接私活会浪费自己在一大部分的精力,就算不接私活,利用好工作后的八小时也能比别人强,月薪也绝对不会比那些接私活的少。把有限的时间花在提升自己的能力上,技术深度,技术广.

2020-10-26 14:48:38 202

原创 非常强悍的 RabbitMQ 总结,干货满满,看到就是赚到!

RabbitMQ是基于AMQP协议的,通过使用通用协议就可以做到在不同语言之间传递。AMQP协议核心概念server:又称broker,接受客户端连接,实现AMQP实体服务。 connection:连接和具体broker网络连接。 channel:网络信道,几乎所有操作都在channel中进行,channel是消息读写的通道。客户端可以建立多个channel,每个channel表示一个会话任务。 message:消息,服务器和应用程序之间传递的数据,由properties和body组成。p

2020-07-14 16:26:11 271

原创 不只是fastjson,这个你每天都在用的类库也被爆过反序列化漏洞!

工作久了的话,就会慢慢有种感觉:代码都是人写的,是人写的代码就可能存在漏洞,这个是永远都无法避免的,任何牛X的程序员都不可能写出完全没有bug的代码!其实关于序列化的安全性问题,无论是Java原生的序列化技术还是很多其他的开源序列化工具,都曾经发生过。序列化的安全性,一直都是比较大的一个话题,我无意为fastjson辩驳,但是出问题之后直接喷代码写的烂,其实是有点不负责任的。Apache-Commons-Collections这个框架,相信每一个Java程序员都不陌生,这是一个非常著名的开源框架

2020-07-13 11:32:25 318

原创 创建线程那么容易,为什么非要让我使用线程池?(深深深入剖析)

一、概述1、问题先看我们遇到的问题:我们创建线程的方式很简单,new Thread(() -> {...}),就是因为这么简单粗暴的方式,才带来了致命的问题。首先线程的创建和销毁都是很耗时很浪费性能的操作,你用线程为了什么?为了就是异步,为了就是提升性能。简单的new三五个Thread还好,我需要一千个线程呢?你也for循环new1000个Thread吗?用完在销毁掉。那这一千个线程的创建和销毁的性能是很糟糕的!2、解决为了解决上述问题,线程池诞生了,线程池的核心思想就是:线程复用。也

2020-07-11 16:24:09 470 1

原创 github标星81.6k的Java面试突击手册,全面详细对标P7岗

Java是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得弄懂它的 oop 特性:封装、继承、多态。此外还有泛型、反射的特性,很多框架的技术都依赖它,比如 Spring 核心的 Ioc 和 AOP,都用到了反射,而且 Java 自身的动态代理也是利用反射实现的。此外还有 Java 一些标准库也是非常常见,比如集合、I/O、并发,几乎在 Web 开发中无处不在,也是面试经常会被问到的,所以在面试Java后端岗位之前,不妨先打好这些核心的基础。Github作为程序员们的后花园,一直以来都是程.

2020-07-10 17:45:46 246

原创 Java 程序员如何使用 Shiro 框架

一、架构要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙。Shiro的应用不依赖任何容器,它也可以在JavaSE下使用。但是最常用的环境还是JavaEE。下面以用户登录为例:1、使用用户的登录信息创建令牌UsernamePasswordToken token =newUsernamePasswordToken(username, password);token可以理解为用户令牌,登录的过程被抽象为Shiro验证令牌是否具有合法身份以...

2020-07-10 10:49:20 197 1

原创 为什么说Redis是单线程的以及Redis为什么这么快!Redis、面试、缓存、雪崩、分布式锁实现一篇文章搞定!

什么是Redis及其重要性?Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久化的高性能键值对数据库。Redis的之父是来自意大利的西西里岛的Salvatore Sanfilippo,Github网名antirez,笔者找了作者的一些简要信息并翻译了一下,如图:从2009年第一个版本起Redis已经走过了10个年头,目前Redis仍然是最流行的key-value型内存数据库的之一。优秀的开源项目离不开大公司的支持,在2013年5月之前,其开发由VMware赞助,而2

2020-07-08 20:32:33 372

原创 连夜整理了142页Spring知识点总离线文档(源码笔记+思维导图)

写在前面由于Spring家族的东西很多,一次性写完也不太现实。所以这一次先更新Spring【最核心】的知识点:AOP和IOC无论是入门还是面试,理解AOP和IOC都是非常重要的。在面试的时候,我没怎么被问过MyBatis/Hibernate/Struts2这样的框架,而Spring就经常被问到。本次PDF共有【142】页,涉及到的内容有:IOC和AOP的全面讲解 Spring事务详解和相关问题 Spring IOC/AOP相关面试题Spring AOP/IOC源码笔记这.

2020-07-08 16:53:32 200

原创 谁再悄咪咪的吃掉异常,我上去就是一 JIO

这图太魔性了啊这次分享一下上个月碰到的离奇的问题。一个简单的问题,硬是因为异常被悄咪咪吃掉,过关难度直线提升,导致小黑哥排查一个晚上。这个美好的晚上,本想着开两把 LOL 无限火力,在召唤师峡谷来个五杀的~哎,就这样没了啊!我知道,你们一定能理解这种五杀被抢的感觉~下次,真的,谁再让我看到悄咪咪的吃掉异常,我真的要上去一 Jio 了!好了,本文可不是水文,看完本篇文章,你可以学到以下知识点:Arthas 排查技巧 啥是 NoClassDefFoundError...

2020-07-08 10:30:48 297

原创 拥有大厂梦,却因为MySQL败下阵来,那你一定要看这本经典之作

写在前面在互联网行业,MySql数据库毫无疑问已经是最常用的数据库。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择MySql作为网站数据库。作为一名编程人员,对MySql一定不会陌生,尤其是互联网行业,对MySql的使用是比较多的。对于求职者来说,MySql又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。要学习Mysql,那就必须给大家安利一波《高性能MySql(第3版)》这本MySql领域的经典之作了。(全书共

2020-07-07 20:54:35 257

原创 我敢说这是Java面试史上最全的JAVA专业术语面试100问,先放50问

前言:说在前面,面试题是根据一些朋友去面试提供的,再就是从网上整理了一些。先更新50道,下一波吧后面的也更出来。求赞求关注!!废话也不多说,现在就来看看有哪些面试题1、面向对象的特点有哪些?抽象、继承、封装、多态。2、接口和抽象类有什么联系和区别?3、重载和重写有什么区别?4、java有哪些基本数据类型?5、数组有没有length()方法?String有没有length()方法?数组没有length()方法,它有length属性。 S...

2020-07-07 11:27:45 176

原创 看完这篇Redis 分布式锁实现原理,面试官都被你征服!

谈起redis锁,下面三个,算是出现最多的高频词汇:setnx redLock redissonsetnx其实目前通常所说的setnx命令,并非单指redis的setnx key value这条命令。一般代指redis中对set命令加上nx参数进行使用,set这个命令,目前已经支持这么多参数可选:SETkeyvalue[EXseconds|PXmilliseconds][NX|XX][KEEPTTL]当然了,就不在文章中默写Api了,基础参数还有不清晰的...

2020-07-06 18:03:14 431

原创 Java程序员的必修课之Spring理解透彻了吗?不会还咋去面试?

在实际研发中,Spring是我们经常会使用的框架,毕竟它们太火了,Spring相关的知识点也是面试必问点。有次被问到Spring IOC的时候,就顺带打了个比方,IOC类似于一个菜筐,以前需要自己去菜市场买菜,现在只要在家门口放一个菜框applicationcontext.xml,就会有人来给你配菜。除了IOC之外,AOP也是Spring整个系列的核心的概念。简而言之,将对象创建过程的职责赋予容器,通过容器管理对象的生老病死。IOC是factory加上依赖管理,通过IOC, AOP事...

2020-07-06 11:19:32 210

原创 简直了!顶级架构师分享心得,如何在项目中兼容多种数据库

前段时间,在和一个做了十年的顶级叫故事聊天,他说,在开发项目的时候,往往碰到的不同的需求情况,兼容不同类型的数据库是我们项目以不变应万变的举措之一,在底层能够兼容多种数据库会使得我们开发不同类型的项目得心应手,如果配合快速的框架支持,那更是锦上添花的举措。他开发的项目或者框架,采用了微软企业库Enterprise Library的模块,倾向于支持多种数据库,也为我们开发不同类型的项目提供非常方便、快速、统一的处理方式。一般常规的数据库包括MS Server、Oracle、MySQL、PostgreSQL、.

2020-07-04 10:48:43 1410 2

原创 被面试官问懵B了,十亿级数据ES搜索怎么优化?

面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?文末可领取大厂真实面试题面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问都会比较慢,比较卡么?所以你要是没玩儿过 es,或者就是自己玩玩儿 demo,被问到这个

2020-07-02 11:33:05 159

原创 面试官官:如何在 Spring 异步调用中传递上下文

什么是异步调用?异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行。异步调用指,在程序在执行时,无需等待执行的返回值即可继续执行后面的代码。在我们的应用服务中,有很多业务逻辑的执行操作不需要同步返回(如发送邮件、冗余数据表等),只需要异步执行即可。本文将介绍 Spring 应用中,如何实现异步调用。在异步调用的过程中,会出现线程上下文信息的丢失,我们该如何解决线程上下文信息的传递。Spring 应

2020-07-01 11:29:38 687 1

原创 JVM 面试题 | JVM 中运行时数据区的划分以及类加载机制

本系列文章讲解 面试中常见的 JVM 问题。这些问题之所以常见,是因为很基础,对于一个有点逼格的程序猿来说, JVM 的相关特性和原理在工作也需要熟知。笔者也在面试的过程中屡屡受挫,屡败屡战,总结一些常见知识点,这些知识点既可以应付面试,也可以帮助读者深入了解 JVM 提供大纲。在用 C 之类的编程语言时,程序员需要自己手动分配和释放内存。而 Java 不一样,它有垃圾回收器,释放内存由回收器负责。Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。那我们来.

2020-06-30 10:39:37 492

原创 Golang 里千万别踩到这50 个雷(一)

前言Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的坑是很常见的,新手跳过这些坑,能减少大量调试代码的时间。初级篇:1-351. 左大括号 { 一般不能单独放一行在其他大多数语言中,{ 的位置你自行决定。Go 比较特别,遵守分号注入规则(autom

2020-06-29 20:09:36 564

原创 Java 线程池 | ThreadPoolExecutor 原理分析

在我们的开发中“池”的概念并不罕见,有数据库连接池、线程池、对象池、常量池等等。下面我们主要针对线程池来一步一步揭开线程池的面纱。使用线程池的好处1、降低资源消耗可以重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控线程池的工作原理首先我们看下当一个新的任务提交到线程池

2020-06-29 15:26:35 119

原创 一文让你学会SpringAOP的动态代理

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0com.gupaoedugupaoedu-springaop0.0.1-SNAPSHOTgupaoedu-springaop1.8org.projectlomboklombok1.16.10org.slf4jslf4j-api1.7.25ch.q

2020-06-27 20:22:02 163

原创 一文教你轻松搞定JVM性能优化

实战性能优化重新认知JVM之前我们画过一张图,是从Class文件到类装载器,再到运行时数据区的过程,现在咱们把这张图不妨丰富完善一下,展示了JVM的大体物理结构图。执行引擎:用于执行JVM字节码指令主要由两种实现方式:(1)将输入的字节码指令在加载时或执行时翻译成另外一种虚拟机指令;(2)将输入的字节码指令在加载时或执行时翻译成宿主主机本地CPU的指令集。这两种方式对应着字节码的解释执行和即时编译。9.2 堆内存溢出9.2.1 代码记得设置参数比如-X..

2020-06-27 10:20:14 267

原创 Spring Boot的这些基操你都会了嘛?

1 Pom文件1.1 spring-boot-starter-parent表示当前pom文件从spring-boot-starter-parent继承下来,在spring-boot-starter-parent中提供了很多默认配置,可以简化我们的开发。<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-pare

2020-06-26 14:01:17 126

原创 LRU原理和Redis的LRU实现

LRU原理在一般标准的操作系统教材里,会用下面的方式来演示 LRU 原理,假设内存只能容纳3个页大小,按照 7 0 1 2 0 3 0 4 的次序访问页。假设内存按照栈的方式来描述访问时间,在上面的,是最近访问的,在下面的是,最远时间访问的,LRU就是这样工作的。但是如果让我们自己设计一个基于 LRU 的缓存,这样设计可能问题很多,这段内存按照访问时间进行了排序,会有大量的内存拷贝操作,所以性能肯定是不能接受的。那么如何设计一个LRU缓存,使得放入和移除都是 O(1) 的,我们需要把访.

2020-06-23 14:51:47 142

原创 程序员究竟要做到什么程度才算得上优秀?

作为一个在it行业混的老鸟,一直有一个疑虑:自己究竟要做到什么程度才算得上优秀?一个优秀程序员(指工资比一般程序员高的那种)最重要的能力是什么?写代码的最高境界是什么样的?带着这个疑虑,我总结了以下几点:一、 编程能力不用多说,作为Java程序员,精通Java基础是必须的。这种精通,不是说看了一本《24小时精通XXX》,抄了几个程序就能说精通的,要靠长时间的积累和浸淫。我曾经看多很多程序员写的代码,在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写

2020-06-23 11:25:21 409

原创 4000字长文介绍Java日志中框架,最全面

在项目开发过程中,我们可以通过 debug 查找问题。而在线上环境我们查找问题只能通过打印日志的方式查找问题。因此对于一个项目而言,日志记录是一个非常重要的问题。因此,如何选择一个合适的日志记录框架也非常重要。在Java开发中,常用的日志记录框架有JDKLog、Log4J、LogBack、SLF4J、SLF4J。这些日志记录框架各有各的特点,各有各的应用场景。了解这些框架的特点及应用场景,有利于我们做技术选型的时候做出正确的判断。JDKLogJDKLog是JDK官方提供的一个记录日志的方式,.

2020-06-22 15:24:45 163

原创 mojito: 麻烦给我的爱人来一份 RxSwift

序学过 Swift 的 同学都知道, RxSwift 宛如 周董的 mojito开始微醺再者上头为什么要学习 RxSwift ?卡蜜尔说过优雅,永不过时麻烦给我的爱人来一份 RxSwiftRxSwift 是 Rx 系列的 Swift 版本,相较于 OC 版的 ReactiveCocoa它们有着异曲同工之妙 函数响应式编程(FRP)什么是 函数响应式编程 ?函数式:函数式编程的核心思想是 stateless,无状态。函数本身并不关心外界输入的值它..

2020-06-16 17:21:48 222

原创 Eclipse的Debug介绍与技巧

之前发过一篇关于intellij idea必备插件的文章,很多小伙伴反馈,目前主要的IDE还在使用Eclipse,我博客中之前写过一篇关于Eclipse中debug技巧的文章。推送给还在使用Eclipse的小伙伴们。没有任何程序员能够一气呵成的写出没有任何BUG的代码,所以很多程序员有相当一部分时间是花费在Debug上的,程序调试是每个程序员必须面对的工作,如何使用Eclipse进行有效的、尤其是高效的进行代码调试是一个值得学习的技巧。使用过Eclipse的人都知道,Eclipse都是自带..

2020-06-16 16:30:44 228

原创 在 Java 中初始化 List 的五种方法

Java 中经常需要使用到 List,下面简单介绍几种常见的初始化方式。1.构造List后使用List.add初始化List<String> stringList =newLinkedList<>();stringList.add("a");stringList.add("b");stringList.add("c");这是最常规的做法,用起来不太方便。2.使用{{}}双括号语法List<Str...

2020-06-16 13:50:23 303

原创 16个经典面试问题回答思路

在一般的互联网公司的技术人员的面试中,大概会经历3到4轮的面试,差不多2-3轮的技术面,还有1轮的HR面试,今天给你总结的这些问题,都是和技术无关的,但是技术人员也可能会被问到的。这些问题没有标准答案,但是也有一定的套路可以遵循。以下的16个问题中,在我曾经参加阿里的校招面试时,至少有3道被问过。我认为我回答的不是很好,所以,希望大家都可以把这类问题回答好。1:"请你自我介绍一下"思路:1、这是面试的必考题目。2、介绍内容要与个人简历相一致。3、表述方式上尽量...

2020-06-16 10:37:23 156

原创 java工程师从入门到精通需要学的知识点整理在这

一、基础篇JVMJVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定JVM参数及调优Java对象模型oop-klass、对象头HotSpot即时编译器、编译优化类加载机制classLoader、类加载过程、双亲委派(破坏双亲委派)、模块化(jboss modules、osgi、jigsaw).

2020-06-16 09:03:58 336

原创 Java对象的序列化与反序列化

序列化与反序列化序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等。在网络传输过程中,可以是字节或是XML等格式。而字节的或XML编码格式可以还原完全相等的对象。这个相反的过程又称为反序列化。Java对象的序列化与反序列化在Java中,我们可以通过多种方式来创建对象,并且只要对象没有被回收我们都可以复用该对象。但是,我们创建出来的这些Java对象都是存在于JVM的堆内存中的。只有JVM处于运行状态的

2020-06-15 20:24:14 609

原创 墙裂建议大家使用枚举来实现单例

关于单例模式,我的博客中有很多文章介绍过。作为23种设计模式中最为常用的设计模式,单例模式并没有想象的那么简单。因为在设计单例的时候要考虑很多问题,比如线程安全问题、序列化对单例的破坏等。如果你对单例不是很了解,或者对于单例的线程安全问题以及序列化会破坏单例等问题不是很清楚,可以先阅读以上文章。上面六篇文章看完之后,相信你一定会对单例模式有更多,更深入的理解。我们知道,单例模式,一般有七种写法,那么这七种写法中,最好的是哪一种呢?为什么呢?本文就来抽丝剥茧一下。哪种写单例的方式最好..

2020-06-15 16:38:24 109

原创 Java代码到底是如何编译成机器指令的

在《Java代码的编译与反编译》中,有过关于Java语言的编译和反编译的介绍。我们可以通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的class文件。这是我们通常意义上理解的编译。但是,字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令。这个过程是Java虚拟机做的,这个过程也叫编译。是更深层次的编译。在编译原理中,把源代码翻译成机器指令,一般要经过以下几个重要步骤:根据完成任务不同,可以将编译器的组成部分划分为前端(Front End)与.

2020-06-15 15:21:11 1142

原创 图说:为什么Java中的字符串被定义为不可变的

字符串,想必大家最熟悉不过了,通常我们在代码中有几种方式可以创建字符串,比如:String s = "Hollis";这时,其实会在堆内存中创建一个字符串对象,其中保存了一个字符数组,该数组中保存了字符串的内容。上面的箭头可以理解为“存储他的引用”。当我们在代码中连续创建两个相同的字符串的时候,其实会指向同一个对象。因为当一个字符串被被创建的时候,首先会去这个字符串池中查找,如果找到,直接返回对该字符串的引用。但是,如果在程序中明确声明要新创建一个字符串的话是可以在堆上重新创建一个对

2020-06-15 14:22:05 161

原创 基于微服务的软件架构模式

今天阅读了两篇关于微服务的文章,总结一些笔记,不敢贸然翻译:一是因为水平不够,翻译的过程会丢掉作者的原意;二是因为技术翻译是一个略微吃力不讨好的活。微服务(micro services)这个概念不是新概念,很多公司已经在实践了,例如亚马逊、Google、FaceBook,Alibaba。微服务架构模式(Microservices Architecture Pattern)的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易得局部改良。 Micro这个词意味着每个服务

2020-06-15 11:25:38 405

原创 工程化专题之Maven(上)

前言在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的.....OK,博主就曾经被Maven“伤害”过,那么该专题的目的就是:彻底搞定Maven!Thinking in Maven回想一下,当你新到一家公司,安装完JDK后就会安装配置Maven(MAVEN_.

2020-06-15 10:22:13 72

原创 Java后端,你没看过的最全知识点,码住你就成功了

你可能有所感悟。零散的资料读了很多,但是很难有提升。到处是干货,但是并没什么用,简单来说就是缺乏系统化。另外,噪音太多,雷同的框架一大把,我不至于全都要去学了吧。这里,我大体根据基础、Java基础、Java进阶给分了下类,挑的也都是最常用最重要的工具。基础知识数据结构基本的数据结构是非常重要的,无论接触什么编程语言,这些基本数据结构都是首先要掌握的。具体的实现,就体现在java的集合类中。这些数据结构,就是这些复杂工具的具体原始形态,要烂记于心。培训机构一般没有时间...

2020-06-15 09:15:21 193

原创 Java 面试知识点解析——Web篇

(一)J2EE 相关知识点不涉及任何框架,对 J2EE 相关知识点的解析1)Servlet 的生命周期?在 Web 容器中,Servlet 主要经历 4 个阶段,如下图:1. 加载 Servlet:当 Tomcat 第一次访问 Servlet 的时候,Tomcat 会负责创建 Servlet 的实例。2. 初始化 Servlet:当 Servlet 被实例化之后,Tomcat 会调用 init() 方法来初始化这个对象。3. 处理服务:当浏览器访问 Servlet 的时候,S

2020-06-13 17:10:23 291

原创 springboot-01(springboot简介、springboot项目创建)

springboot简介: - 介绍   微服务架构   Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。   该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。     通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapidapplication development)成为领导者。 -为什么用springboot   创建独立的 Spring 应用..

2020-06-12 23:29:39 144

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除