自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (4)
  • 收藏
  • 关注

原创 HashMap自动扩容机制源码详解

一、简介HashMap的源码我们之前解读过,数组加链表,链表过长时裂变为红黑树。自动扩容机制没细说,今天详细看一下二、扩容机制先说结论:hashmap的容量都是2的倍数,比如2,4,8,16,32,64 …每次扩容都是扩一倍,2到4 ,4到8,8到16, 16到32 等等扩容因子:默认是0.75,也可以指定一个小数扩容时间点:当容器内的元素数量到达:容量*扩容因子 开始扩容三、源码分析(1)先看构造函数static final int DEFAULT_INITIAL_CAPAC

2022-02-14 11:29:25 803

原创 java日志打印使用指南

一、简介日志打印是java代码开发中不可缺少的重要一步。日志可以排查问题,可以搜集数据二、常用日志框架比较常用的日志框架就是logback, 一些老项目会使用log4j,他们用的都是slf4j-api统一接口。(1) 使用log4jlog4j使用:1. slf4j-api-1.5.11.jar2. slf4j-log4j12-1.5.11.jar3. log4j-1.2.15.jar4. log4j.properties代码中import org.slf4j.Logger;

2022-01-17 16:51:49 3101

原创 从零学习SpringSecurity

一、简介SpringSecurity是一个功能强大且高度可定制的身份验证和访问控制框架,和spring项目整合更加方便。二、核心功能认证(Authentication):指的是验证某个用户能否访问该系统。授权(Authorization):指的是验证某个用户是否有权限执行某个操作。三、搭建v1.0版本1、新建一个springboot项目myspringsecurity2、添加maven依赖<dependency> <groupId>org.sprin

2021-07-19 15:26:24 384

原创 Spring知识点-@Configuration使用

一、定义@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Configuration { @AliasFor(annotation = Component.class) String value() default "";}@Configuration的作用,指定一个或多个@Bean方法,由spring加载和生成bean,相当于xml的r

2021-06-18 15:19:14 186

原创 springboot源码解析-管中窥豹系列(合集)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、列表springboot源码解析-管中窥豹系列之总体结构(一)springboot源码解析-管中窥豹系列之项目类型(二)springboot源码解析-管中窥豹系列之Runner(三)springboot源码解析-管中窥豹系列之Initializer(四)springboo

2021-03-25 16:09:44 157 1

原创 springboot源码解析-管中窥豹系列之bean如何生成?(十四)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、bean如何生成?我们之前介绍了beanDefinition的结构: springboot源码解析-管中窥豹系列之BeanDefinition(八)我们之前也介绍了BeanPostProcessor和BeanFactoryPostProcessor我们也介绍了自动装配,各种

2021-03-25 14:30:42 173 1

原创 springboot源码解析-管中窥豹系列之BeanDefine如何加载(十三)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、beanDefinition如何加载我们之前介绍了beanDefinition的结构: springboot源码解析-管中窥豹系列之BeanDefinition(八)我们之前也介绍了BeanPostProcessor和BeanFactoryPostProcessor我们也介

2021-03-19 16:53:45 435

原创 springboot源码解析-管中窥豹系列之BeanPostProcessor(十二)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、BeanPostProcessorBeanPostProcessor和BeanFactoryPostProcessor比,少了一个factoryBeanPostProcessor作用的是bean, BeanFactoryPostProcessor作用的beanfacotry

2021-03-12 11:17:44 134

原创 springboot源码解析-管中窥豹系列之BeanFactoryPostProcessor(十一)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、BeanFactoryPostProcessorBeanFactoryPostProcessor是在bean初始化之前对bean的统一操作package org.springframework.beans.factory.config;import org.springfra

2021-03-09 17:00:04 761

原创 springboot源码解析-管中窥豹系列之EnableXXX(十)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、EnableXXX我们上一节讲了自动装配,用到了@SpringBootApplication里面的@EnableAutoConfigurationspringboot还封装了其它的EnableXXX注解比如我们想开启定时任务,要加上注解:@EnableScheduling

2021-03-04 16:40:09 185 2

原创 springboot源码解析-管中窥豹系列之自动装配(九)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、何为自动装配?我们想用redis,直接引入spring-boot-starter-data-redis的依赖,配置加上就能用。我们想用mongodb, 直接引入mongodb的依赖我们想用缓存,直接引入cache的依赖我们在:springboot源码解析-管中窥豹系列之w

2021-03-02 17:48:01 129

原创 springboot源码解析-管中窥豹系列之BeanDefinition(八)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、BeanDefinitionspring帮我们管理bean,就是通过BeanDefinition实现的,要深研源码,就绕不开BeanDefinition我们通过源码来看看BeanDefinition到底做了什么三、源码分析我们先看看这个类:BeanDefinition

2021-02-08 17:58:05 210

原创 springboot源码解析-管中窥豹系列之web服务器(七)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、web服务器以前的的spring项目或者springmvc项目都需要一个web服务器,tomcat,或者其它的使用springboot之后,我们不再需要配置web服务器,因为springboot帮我们集成了今天我们来分析一下源码,看看在哪里实现的,知其然知其所以然三、源

2021-02-04 17:41:04 162

原创 springboot源码解析-管中窥豹系列之aware(六)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、ApplicationContextAware假设我们想使用某个bean, 如果是在@Component类下面,直接用@Autowired引用就行了假设我们想在某个静态方法里面用,就不能用上面的方法了你可能想用new Bean()的方式,new一个,但是这个bean里面的@

2021-01-14 16:38:47 154 1

原创 springboot源码解析-管中窥豹系列之排序(五)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、排序前几节我们讲源码的时候,会遇到一些排序的问题,我们都避而不谈比如获取initializer时的排序:private <T> Collection<T> getSpringFactoriesInstances(Class<T> ty

2021-01-13 11:07:17 264 1

原创 springboot源码解析-管中窥豹系列之Initializer(四)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、Initializer上一节我们介绍了Runner,它是在项目加载完成之后执行的有后就有前,有没有在项目加载之前执行的呢?我们今天介绍的ApplicationContextInitializer就是在spring的bean加载之前执行的public interface

2021-01-12 14:15:32 198

原创 springboot源码解析-管中窥豹系列之Runner(三)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、Runner假如我们想在springboot项目启动完成之后,做点什么,我们应该怎么办呢?注意我们可以写在bean的初始化方法里面(我们后面讲),但是我们要用到其它已经加载了的bean的能力,又怎么办呢?当然加顺序,加依赖也能解决,就是麻烦这一节我们讨论一下spring

2021-01-11 09:55:15 177

原创 springboot源码解析-管中窥豹系列之项目类型(二)

一、前言Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、项目类型这一节我们先讨论一下springboot项目的怎么自动加载applicationcontext实现类的。以前的spring的项目,都是xml加载bean,常用的都是XmlWebApplicationContext实现类后来出现注解的形式,基本用AnnotationC

2021-01-08 17:37:35 190 1

原创 springboot源码解析-管中窥豹系列之总体结构(一)

一、简介Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去。我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot源码管中窥豹系列。二、框架我们先把springboot源码的框架了解清楚。1、新建一个springboot项目import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigu

2021-01-07 16:49:05 151

原创 最全的RocketMQ学习指南,程序员必备的中间件技能

一、简介RocketMq是阿里开发出来的一个消息中间件,后捐献给Apache。官网上是这样介绍的:Apache RocketMQ™ is a unified messaging engine, lightweight data processing platform.RocketMQ是一个统一的处理消息引擎,轻量级的数据处理平台。低延迟,在高压下,1毫秒内的响应延迟超过99.6%。高可用,具有跟踪和审核功能万亿级消息容量保证自最新的4.1版本以来,使用新的开放式分布式消息传递和流媒体标准

2020-12-09 17:26:20 686

原创 最简单的算法题,你会吗?

leetcode上算法第一题,求两数之和,是最简单的算法题。给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]1、暴力解法认真审题之后,

2020-11-13 09:48:05 299

原创 求斐波那契数,你还在用递归吗?

1、什么是斐波那契数?斐波那契数,又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,  F(1) = 1 F(N) = F(

2020-11-12 14:54:50 145

原创 百度网盘下载太慢,试试阿里云网盘?

还在为百度网盘的令人发指的下载速度忧心吗,近日阿里巴巴集团旗下推出一款网盘产品。你想要的是一款不限速、不打扰、够安全、易于协作的网盘?这些需求都会被满足。1、上传下载不限速2、不被打扰的干净空间3、隐私绝对安全4、免登录就能下载现在是公测申请阶段,现在申请可以获取比别人更大的空间,赶快申请起来吧。(现在只是申请,还不能用哦)关注微信公众号:丰极,回复:阿里云网盘,即可打开公测申请地址。...

2020-10-17 16:34:51 590 1

原创 springAop简单介绍

1、aop是面向切面编程,原理是java的发射技术。2、分为三类,before、after、arround3、springMvc为我们提供了一个适配器HandlerInterceptorAdapter,继承它实现我们自己的拦截器4、例子:package com.interceptor;import javax.servlet.http.HttpServletReques

2017-02-23 16:50:35 363

原创 Filter过滤器

1、filter过滤器是servlet JAR包里面的接口,继承该接口即可实现过滤器,并在web.xml中加载该filter2、filter有三个方法public abstract void init(FilterConfig paramFilterConfig) throws ServletException;public abstract void doFilter(Servlet

2017-02-23 14:22:37 530

原创 slf4j,log4j和logback简介

java日志

2017-02-23 11:10:36 247

原创 springMvc+mybatis搭建项目

springmvc mybatis

2017-02-21 16:12:13 342

原创 spring事务

spring事务

2017-02-14 14:14:30 188

原创 webservice简单学习

1、web service 是跨平台、跨系统的用xml和http描述、发布的分布式的应用程序。2、web service 的元素:(1)soap:简单对象访问协议(2)uddi:通过描述、发现及整合(3)wsdl:webservice描述语言3、webservice 分为soap和restful两种方式。restful可以直接通过http调用soap要配置wsdl和ud

2017-02-10 15:40:00 190

原创 synchronized同步问题完美用法

一、synchronized有两种用法1、加在方法上public synchronized void method1() {}2、写synchronized代码块public void method2() {synchronized (this){}}二、synchronized分为对象锁和类锁1、(一)里面的两个例子都是对象锁2、方法的类锁在方

2017-01-13 15:40:15 463

原创 mysql默认安装的Root问题

myysql提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。解决方案:用管理员身份打开cmd,直接用root登录 mysql -u root -p就可以了

2016-04-01 14:48:50 298

jakarta-tomcat-5.0.28.exe

这个是tomcat5.0的版本,可执行文件,下载后直接点击安装,配下环境变量就可以用了。

2011-08-11

apache-tomcat-5.5.17.zip

tomcat5.5服务器,下载后解压就可以使用了,先要配置一下路径,要保证先安装了jdk

2011-08-10

java笔记.chm

关于java的一些基础用法,不熟的,忘记的朋友可以随时的查一下这个chm文件。

2011-08-10

java基础教程.pdf

java基础教程 包含三部分:java基础程序设计,java面向对象设计,java程序应用

2011-08-10

空空如也

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

TA关注的人

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