java基础
文章平均质量分 65
残灯半盏
这个作者很懒,什么都没留下…
展开
-
Springboot中@Value注解未注入值
在bootstrap.yml中配置了七牛云的相关值,但在代码中通过@Value注解未注入该值。debug调试发现该值未NULL问题原因问题原因其实很基础,就是@Value注解的生效条件。我是因为使用的是静态变量。@Value注解生效的条件时,该字段不能为,不能是,并且该类必须注册为(加@Component注解)。在使用时必须注入该对象,而的方式创建对象。第一种方案最简单,将static去掉即可。但有的时候我们就希望该字段是静态的该怎么办呢?第二个方法,先思考为什么不能使用@Value注入静态变量的原创 2022-06-27 14:50:12 · 926 阅读 · 0 评论 -
五种I/O模型
I/O模型是指对输入和输出做出的规范与实现同步/异步主要区别在I/O进程需不需要全程参与。同步:全程需要当前进程参与。异步:当前进程发送完请求指令之后,就不需要参与后续的操作,意味着发送请求后执行完其他操作就可以停止了,不需要管I/O是否完成。这也就注定异步I/O不会阻塞。阻塞/非阻塞区别在于调用者进程是否需要挂起进行等待。阻塞:需要等待I/O操作完成后才可以执行后续代码。非阻塞:不需要等待I/O操作完成就可以执行后续的代码。也就是说并不关心I/O的执行状态。💡 这两个概念很容易原创 2022-05-16 13:42:05 · 294 阅读 · 0 评论 -
JAVA锁机制
锁机制一、介绍锁机制是用来实现线程间同步的基础,并非是JAVA中独有的概念。本篇主要讲JAVA中的锁,按照锁分类,有以下几种锁公平锁/非公平锁可重入锁/不可重入锁独占锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁但这些锁并不完全指的是锁,有的是锁设计,有的是锁状态,也有的是锁的特性。下面就介绍一下关于这些锁二、公平锁/非公平锁1. 公平锁就是指当多个线程都要申请锁时,需要按照申请锁的先后顺序来进行获取。2. 非公平锁指当多个线程申请锁时,无原创 2022-04-14 16:56:31 · 3496 阅读 · 0 评论 -
Slf4j踩坑日记--实现冲突和配置文件不生效
Slf4j实现冲突(Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory])Log4j2日志配置文件(log4j2.xml)不生效原创 2022-04-06 17:33:50 · 1850 阅读 · 0 评论 -
JAVA注解(Annotation,@interface)复习
文章目录注解内置注解注解的定义注解的使用注解获取总结注解JAVA注解(Annotation)是JDK5引入的一种注释机制,可用于类、方法、字段、参数、包上。虽然是注释机制,但不同于注释的是注解可以被嵌入到字节码当中,从而让我们可以在运行时获取到注解,也就是说可以通过反射来获取注解中的内容。内置注解JAVA中是有几个内置注解的,像我们最常见的@Override,@Deprecated。下面详细列举一下内置注解。@Override:这个注解应该都不陌生,就是检查本方法是否是重写方法的。@Depre原创 2022-04-04 10:56:20 · 310 阅读 · 0 评论 -
JAVA泛型详细学习
泛型之前对泛型一直没有系统的学习,直到学习函数式编程时才发现还是有很多空缺,现在就系统的学习一下。1. 概述泛型在Java中还是比较重要的,提供了编译时的类型检查。泛型的解释是参数化的类型。这还是比较好理解的,就是将类型作为一个参数提供给方法或者类,就和方法的形参是类似的,不过写法不一样。在我们调用方法的时候才会确定具体需要的类型。泛型可以用在类,接口,方法上,被称为泛型类,泛型接口,泛型方法。2. 对比可能说的还是有点抽象了,举个大家常用的例子对比一下就知道了,我们现在想要存一组数字List原创 2022-03-29 13:57:06 · 245 阅读 · 0 评论 -
函数式编程Stream学习
JAVA函数式编程学习函数式接口java8中有四大函数式接口Function<T, R>(方法),Consumer(消费者), Supplier(提供者), Predicate(谓词)。函数式接口有一个共同特点,即只有一个抽象方法。这为我们可以使用lambda表达式创造了条件。Function<T, R>T:入参,R:出参抽象方法:R apply(T t);ConsumerT:入参,void:出参抽象方法:void accept(T t)SupplierT: 出原创 2022-03-25 16:23:38 · 994 阅读 · 0 评论 -
重写hashCode和equals
hashCode和equals重写重写hashCode和equals时需注意一点,equals相等则hashCode一定相等(相同对象hash值一致);hashCode相同equals不一定相等(hash值相同不能确定为同一个对象)。所以重写时要保证hashCode的字段和equals的字段相同,否则会导致相同对象有不同的hash值!重写hashCodeObject中的hashCode为native方法,我们对类的hashCode重写本质上只是调用Object中的hashCode进行二次运算,不一定原创 2022-03-23 15:41:18 · 1670 阅读 · 0 评论 -
JAVA foreach中不能使用add/remove
JAVA foreach中不能使用add/removejava几种常用的遍历List的方式,for,foreach(增强for循环),iterator。其中在使用foreach和iterator循环时不能使用list的add/remove方法,会导致ConcurrentModificationException。iterator迭代器List实现类中维护了modCount(集合修改次数),而iterator内维护了一个expectedModCount(期望集合修改次数),在初始化iterator时会原创 2022-03-23 09:38:00 · 1170 阅读 · 0 评论