包含标签 java基础 的文章

Spring bean生命周期方法的调用顺序

pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>tut</groupId> <artifactId>zero</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies> </project> 配置文件 application.yml threshold: 1000` 主程序类 package tut.zero; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application implements CommandLineRunner { @Autowired MyBean bean; public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override public void run(String... args) { bean.serve(); } } 用于观察bean生命周期方法调用顺序而自定义的bean package tut.zero; import org.springframework.beans.BeansException; import org.springframework.beans.factory.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; /** * 一个为了演示bean生命周期方

阅读全文

java多线程安全-Map

线程的定义 线程是操作系统调度的最小单元,也叫轻量级进程。它被包含在进程之中,是进程中的实际运作单位。同一进程可以创建多个线程,每个进程都有自己独立的一块内存空间。并且能够访问共享的内存变量。 线程包含的五种状态 1、新建状态(New): 线程对象被创建后,就进入了新建状态。例如: Thread thread =

阅读全文

Java反射教程

什么是反射 反射是:指程序可以访问、检测和修改它本身状态或行为的一种能力 反射是一种能力,所以给的定义就是说明了它能干嘛。 我们平时用反射主要做: - 获取类型的相关信息 - 动态调用方法 - 动态构造对象 - 从程序集中获得类型。 通过反射机制实例化对象 基础实体 package com.haojishu.entity; public class User { public Integer age; private String Username; private String addr; public User() { Sy

阅读全文

什么时候使用线程池

线程池 什么是线程池 提前创建若干个线程,如果有任务需要处理,线程池里的线程就会处理任务,处理完之后线程并不会被销毁,而是等待下一个任务。由于创建和销毁线程都是消耗系统资源的,所以当你想要频繁的创建和销毁线程的时候就可以考虑使用线程池来提升系统的性能。 什么时候使用线程池 多线程技术主要

阅读全文

Java反射教程

基础知识(小故事) 1、计算机的核心是CPU,他承担了所有计算任务,他就想一个工厂,时刻在运行。 2、假设工厂电力有限,一次只能提供给一个车间使用,也就是说,一个车间开工的时候,其他车间必须要停工。背后的含义就是,单个CPU一次只能运行一个任务。 3、进程就好比工厂的车间,他代表CPU

阅读全文

jsoup教程

jsoup 什么是Jsoup Jsoup是用于解析Html,就类似XML解析器用于XML. jsoup能用来做什么? 从URL,文件或字符串中刮取并解析HTML 查找和提取数据,使用DOM遍历或CSS选择器 操纵HTML元素,属性和文本 根据安全的白名单清理用户提交的内容,以防止XSS攻击 输出整洁的H

阅读全文

自定义Ioc

SpringIoc自定义 第一种方式 ​ 在写代码的时候,我经常纳闷Spring @Autowired到底是如何实现的,我是不是自己实现一个,完后就有这篇文章 编写自定义注解 /** @author sulwan */ @Target({ ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Sulwan { boolean required() default true; } @Target: @Target说明了Annotation所修饰的对象范围

阅读全文

Mybatis注解权限

Mybatis注解权限 ​ 我们在写项目的时候,很多时候都是需要判断权限,比如你是哪个部门的有那个权限,比如你是哪个层级的管理需要那个权限,这个时候我们不能再SQL中固定死,其主要原因是因为我们不知道增加多少权限或者分组,所以这个时候就需要注解的闪亮登场了! 编写注解 package com.pv3.springboot_base.Annotation; import java.lang.annotation.*; /** @author sulwan */ @Target(ElementType.METHOD)

阅读全文

quickSort快速排序

快速排序 概念 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 步骤分

阅读全文

bubbleSort冒泡排序

冒泡排序 概念 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成

阅读全文