自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (2)
  • 收藏
  • 关注

原创 探究-ThreadLocal内存泄露问题

探究这个问题之前,先来说说ThreadLocal是什么东西?ThreadLocal 翻译过来就是线程本地。它存储的内容只在当前线程可见,其他线程则访问不到。下面看一段代码方便理解:代码解读: 1. 定义成员变量ThreadLocal 2. 定义成员变量User对象 3. 定义线程1将User对象set进ThreadLocal中 线程1 通过get获取对象并打印 4. 定义线程2...

2022-05-26 22:04:29 842

原创 探究- JAVA四种引用类型:强软弱虚引用

JAVA中一共有四种引用类型:强引用 Strong Reference,软引用 Soft Reference,弱引用Weak Refrence,虚引用Phantom Reference.接下来会一一介绍每个引用的特点与用处强引用(Strong Reference):强引用是我们平时写代码的时候最经常用的。例如:public class Test{ public static void main(String[] args){ Objec..

2022-05-24 19:58:40 404

原创 JAVA8新特性_07 重复注解 And 类型注解

八、重复注解和类型注解的使用重复注解:可以使同一个注解在一个方法或类上重复使用需要注意的点: 1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃; 2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期; 3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后

2022-01-10 11:28:25 435

原创 JAVA8新特性_06 新日期时间类

七、新日期时间类个人觉得特别好用,比老日期类好用的太多了。。。优点:多线程下也是数据安全的老日期时间类在多线程下数据不安全案例(解释都在里面):import com.afei.AppApplication;import org.junit.jupiter.api.Test;import java.time.*;import java.time.format.DateTimeFormatter;import java.time.temporal.TemporalA...

2022-01-10 11:23:09 207

原创 JAVA8新特性_05 Optional类

六、Optianal 类的使用Optional是一个没有子类的工具类,它避免的null值出现空指针异常案例(解释都在里面):public class OptionalDemo extends AppApplication { @Test void createOptional(){ // 创建Optional的方式 //Optional.of();方法 不能传null,否则空指针异常 Optional<String&gt

2022-01-10 11:18:10 160

原创 JAVA8新特性_04 Stream流的案例

直接上代码(所有案例):public class StreamMethod extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { } /** * 以下是Stream流的常用方法! **/ /*.

2022-01-10 11:12:38 340

原创 JAVA8新特性_03 Stream流

五、Stream流Stream可以当成工厂的流水线,它可以帮助完成数据的加工;获取Stream流的两种方式:通过Collection接口的Stream()方法 List<String> list= Arrays.asList("张三","李四","李四飞","李四喜","王五"); list.stream();通过Stream的of()方法 String[] strs={"张三","李四","李四飞","李四喜","王五"}; St

2022-01-10 11:06:51 113

原创 JAVA8新特性_02 接口增强 And 方法引用

三、接口增强在JDK8中 对接口进行了增强,可以在接口中写静态方法和默认方法。默认方法:默认方法定义后,接口的所有实现类可以不用实现此方法,均可调用。也可以实现方法重写内容;例如:@FunctionalInterface // 此注解就是标记此接口为函数式接口, 只能包含一个方法的接口。public interface Car{ void show(); default void moren(){ System.out.println("这是一个默认方

2022-01-10 10:55:51 247

原创 JAVA8新特性_01 Lambda And 函数式接口

一、Lambda表达式 (参数类型 参数名) -> {方法体}Lambda表达式必须用于接口,且接口中公开的方法只有一个。Lambda表达式只在意参数和方法体,不在意类名和方法名。Lambda表达式中如果参数可以把参数类型省略,如果参数只有一个 那么参数的括号也可以省略。省略前写法:(参数类型 参数名) -> {方法体}省略后写法:一个参数: 参数名 -> {方法体} 《=====》 多个参数则是:(参数名,参数名,参数名)-> {方法体}Lambda

2022-01-10 10:51:25 449

原创 Linux命令大杂烩(部署项目实用)

命令一览 查看进程:ps -ef 杀死进程:kill -9 进程号 查看jdk的运行目录:java -verbose 给sh文件运行权限:chmod u+x *.sh u 代表所有者; x 代表执行权限; + 表示增加权限; *.sh 表示当前目录下所有 .sh 文件; 运行sh文件(在文件所在目录下打开终端运行): sh 文件名.sh 立即使修改的/etc/profile文件生效:s

2022-01-06 14:35:18 1150

原创 SpringBoot集成Druid 数据源的使用

开门见山上代码:第一步、 添加Druid的依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.3</version> </dependency>第二步、在配置文件中...

2021-12-20 11:07:21 572

原创 SpringSecurity 授权和认证

springsecurity 是用户请求进来,判断有没有请求的权限,抛出异常,重定向跳转。它的底层是一个过滤器链。 它自带登录页和退出页,下面的配置中,我设置了默认登录页用自定义的登录页。首先导入依赖jar包<!-- Spring security 用户认证和授权--> <dependency> <groupId>org.springframework.boot</g...

2021-12-20 00:06:30 252

原创 SpringBoot 基于配置文件给bean赋值

方式一、使用yaml文件对bean进行注入 案例:(先来两个实体类做为案例测试用)Car类@Componentpublic class Car { String name; String pinpai; public String getName() { return name; } public void setName(String name) { this.name = name;...

2021-12-13 00:48:59 827

原创 Redis 操作List命令

所有list命令基本都是以l开头的插入##插入语句执行后会返回当前列表的长度##lpush或者rpush 可以把一个或多个值插入到队列中LPUSH list test1 //把test1插入到List的头部(也就是左边) RPUSH list test2 //把test2插入到List的尾部(也就是右边)获取数据LRANGE list 0 -1 //获取列表所有数据LRANGE list 0 2 //获取列表指定范围的数据,下...

2021-12-13 00:06:38 1867

原创 模块项目化---日志记录

通过Redis做消息队列,对其主项目的操作日志进行打印生产消费模式整体流程:主项目的切面类中把要记录的日志信息从Redis消息队列的一头存入信息,而另一个日志记录的项目利用Spring定时任务从Redis队列的另一头取出日志信息并与数据库交互进行添加数据这样做的好处可以减轻对数据库的压力,把数据存放在队列中(Redis)而不直接对数据库进行访问,这样一来日志的记录从多个访问,变成了一个。下面是案例:主项目的切面:...

2021-12-09 15:18:01 427

原创 项目模块化的一些问题

一、切面放置公共子项目中,无法找到其他子项目的Service层解决方案:通过自定义注解来完成 自定义注解 配置切面类的织入路径 在需要被织入的Serivce层的方法上加入自定义注解自定义注解:import java.lang.annotation.*;@Documented@Retention...

2021-12-09 11:03:01 208

原创 前后端分离,解决AJAX跨域问题

直接进入主题:SpringBoot项目需要写一个过滤器,配置Response响应头第一步、/** * 说明:跨域访问处理 * 作者:fei * */@Componentpublic class CORSFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public voi

2021-12-09 10:49:02 377

原创 解决:java.util.ConcurrentModificationException: null

java.util.ConcurrentModificationException: null 异常解决方案

2021-12-04 12:08:55 847

原创 前后端双向异步

AJAX和SpringMVC双向异步完成信息实时更新文章目录前言 一、前后端双向异步是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言前后端双向异步的作用于实时更新数据,比如打车,外卖这种小程序,时刻提示订单本章就介绍了前后端双向异步的写法提示:以下是本篇文章正文内容,下面案例可供参考一、前后端双向异步是什么? 其实就是AJAX和SpringMVC的异步操作,AJAX定时器去后端取Redis...

2021-12-01 15:44:23 800 1

原创 面向对象三大特性:封装、继承、多态

封装:封装:把属性或方法使用private修饰符修饰之后,就叫做封装。修饰符: public 公开的 所有地方都可见的 protected 受保护 同一个包和他的儿子们可见的 default 默认的什么都不写的 他儿子们才能看到的 private 私有的 ,除此类之外都不可见的 实例:/** * @author fei * 2021年9月18日上午9:22:01 * 封装 * public 公开的 所有地方都可见的 * protected

2021-11-01 14:29:01 81

空空如也

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

TA关注的人

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