spring依赖注入的三种方式,以及各自的优缺点 1.变量注入 @Controllerpublic class AdminController { /*依赖注入 接口注入(spring已经不推荐)*/ @Autowired private UserMapper userMapper; //......} 优点: 注入方式简单,非常简洁,没有任何多余代码 缺点:
重写: 在继承关系中,子类会自动继承父类中公共的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写 方法的重写的规则: 1.方法名称相同 2.参数列表相同 3.返回值类型相同或者是其子类 4.访问权限修饰符不能严于父类 重载和重写的区别: 重载的定义:1.同一
JavaWeb 1. web服务器: 1.1 前言: web开发: web,网页的意思,www.baidu.com· 静态web html,css 提供给所有人看的数据始终不会发生变化! 动态web 淘宝,几乎是所有的网站; 提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同! 技术栈:Ser
package com.hopedove.processserver.util; /** * 字符串格式化 * * @author ruoyi */ public class StrFormatter { public static final String EMPTY_JSON = "{}"; public static final char C_BACKSLASH = '\\'; public static final c
1.被final修饰的变量不可以被改变,又被称为常量 2.被final修饰的方法不可被重写. 3.被final修饰的类不可以被继承. 例如: 然后你就改不了了
关于final修饰问题 public class Demo2 { public void test(final int[] array) { if(array.length>1) { array[0]=100; } System.out.println(Arrays.toString(array)); } public static void main(String args[]) { Demo2 demo=new Demo2(); int[] arr=new int[100];
一、CAS CAS, compare and swap比较并替换。 CAS有三个参数:需要读写的内存位值(V)、进行比较的预期原值(A)和拟写入的新值(B)。当且仅当V的值等于A时,CAS才会通过原子方式用新值B来更新V的值,否则不会执行任何操作。程序在在某个变更新时,会有一个校验逻辑——认为V的值应该是A,如果是
目的: 对于多个独立的任务,可以以并发的方式执行任务,以提高 CPU 利用率,提高处理效率。 思路 在一个线程池中,开启指定数量的线程,每个线程从任务队列中获取任务执行。 执行的过程中,判断当前线程是否在执行任务的状态,如果没有执行任务,取一条任务执行,如果正在执行,则跳过,下轮再判断。 在
Snapshot图(代码快照图) 这里首先回顾一下软件构造最初提出过一个“三维度八视图”的概念,(此概念是软件构造和后期维护过程中的一个概念,讨论的是如何构造的问题)三维度分别是时刻和阶段维度,代码和构件维度,编译和运行维度,而八视图指的就是2 x 2 x 2 = 8了,这里的Snapshot图描绘的是八维
public class Cont { public static void main(String[] args) { // 只能使用 不能更改 System.out.printf("常量" + Constant.AGE); System.out.printf("NAME" + Constant.NAME); } } class Constant{ public static fina
问题分析 A依赖B B又依赖A所构成的一种循环,也可以称为循环依赖,试想下这个场景在MyBatis中会怎样?如果不管的话那就是无限制的去数据库查询了。 demo <resultMap id="authorMap" type="org.apache.ibatis.demo.Author"> <result column="id" property="id"/> <result col
AQS是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO队列来完成资源获取线程的排队工作,并通过一个int类变量表示持有锁的状态。 我将以ReentrantLock为切入点,阅读ASQ源码。 注:ReentrantLock默认是线程不安全的,当然也可以设置为线程安全。 一、l
修饰符一起使用问题 外部类 成员变量 代码块 构造器 方法 局部变量 public √ √ × √ √ × protected × √ × √ √ × private × √ × √ √ × static × √ √ × √ × final √ √ × × √ √ abstract √ × × × √ × native × × × × √
Kotlin调用Java 调用普通类 public class Person { private String name; private boolean married; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isMarried()
final可以用来修饰类、方法、变量,并分别代表不同的含义,final的类具有不可继承扩展的特性,final的变量不可修改,只能被赋值一次,赋值后不可再改变,final的方法不能被重写(override)但是能被子类所继承使用。 finally是Java的保证机制,用来保证一段代码务必执行的机制,使用try-finally或
由于在做项目的时候需要与主题模型进行对比,对于TWE这个坑困惑了好几天
static修饰符和final修饰在Java中是很常见的,用处非常广。 static修饰符修饰类方法和类变量,局部变量不能被声明为static变量 可以看到在局部变量中使用static报错。 静态方法不能使用非静态变量,可以使用形参进行计算,或者使用静态变量,静态方法中不能使用 this,super关键字,因为在
1.java.lang.Object类的使用: 1.1 java.lang.Object类的根父类 1.2 如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 1.3 Object类中的功能(属性、方法)就具有通用性。 属性:无 方法:equals()/ toString()/ getClass()/ hashCode()/ clone()/ finalize(
Mybatis 增强工具 MyBatis-Plus 集成 [MyBatis-Plus] (https://baomidou.com)是一个 MyBatis (https://www.mybatis.org/mybatis-3)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。我们可以按照如下步骤集成到我们的项目中: 添加 mybatis-plus 的启动器
/*final关键字代表最终、不可改变的。常见四种用法:1.可以用来修饰一个类2.可以用来修饰一个方法3.还可以用来修饰一个局部变量4.还可以用来修饰一个成员变量 */public class Demo01Final {}===================== /*当final关键字用来修饰一个类的时候,格式:public final class 类名
一、JAVA运行机制 Java程序的运行必须经过编写、编译、运行三个步骤。 编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。 编译是指使用Java编译器(JDK中)对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,这不像C语言那样最终
1、XSS过滤器 import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * HTML filtering utility for prot
1. abstract 关键字 1.1 强制重写场分析 父类方法继承给子类使用,子类没有重写的情况,可以执行操作,但是无法满足子类需求 ,子类应该重写父类继承得到方法,满足子类的特征性 1.2 abstract 语法要求 abstract 修饰的方法,子类必须重写 public abstract class LOLHero { abstract public
成员变量 ctl变量 /** * The main pool control state, ctl, is an atomic integer packing * two conceptual fields * workerCount, indicating the effective number of threads * runState, indicating whether running, shutting down etc
public class RedisCache { @Autowired public RedisTemplate redisTemplate; /** * 缓存基本的对象,Integer、String、实体类等 * * @param key 缓存的键值 * @param value 缓存的值 */ public <T> void setCacheObject(final String