saas架构之druid解析表名-编程思维
public void preHandle(BoundSql boundSql, RequestEntity requestEntity) { System.out.println("要执行的SQL:" + boundSql.getSql()); System.out.println("要执行的SQL参数:" + Arrays.toString(boun
morethink program
public void preHandle(BoundSql boundSql, RequestEntity requestEntity) { System.out.println("要执行的SQL:" + boundSql.getSql()); System.out.println("要执行的SQL参数:" + Arrays.toString(boun
package com.xf; import java.util.concurrent.Callable; public class bbb implements Callable { private final String b1; public bbb(String b1) { this.b1 = b1; } @Override
#!/bin/bash if [ -z "$1" ]; then ### 1.先找到消耗cpu最高的Java进程 ### pid=`ps -eo pid,%cpu,cmd --sort=-%cpu | grep java | grep -v grep | head -1 | awk 'END{print $1}' ` if [ "$pid" =
【1】CopyOnWrite容器是基于并发模式Copy-on-Write模式(最简单的并发解决方案)实现的用于避免共享的数据集合。 【2】CopyOnWrite容器又被成为写时复制的容器,即当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对C
推荐写在 try 的括号中 /** 方式一、方式二是等价的 * <li>推荐使用方式一</li> * @since 2023/5/18 0018 * @author CC **/ public void closeStream() throws IOException { //使用方式一(推荐):各种“流”,
https://baijiahao.baidu.com/s?id=1637211558024016793&wfr=spider&for=pc 集合是Java开发日常开发中经常会使用到的。在之前的一些文章中,我们介绍过一些关于使用集合类应该注意的事项,如《为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作》、《为什么阿里巴巴建议
1.计算机的组成,包括硬件和软件。 2.冯·诺依曼体系: 输入设备--存储器(运算器,控制器)--输出设备 3.快捷键,功能键: Tab:切换菜单,空出四格。 Shift:上面的符号。 Ctrl+Shift:改变输入法。 Ctrl+C:复制;+V:粘贴;+A全选;+X:剪切;+Z:撤销;+S:保存。 Alt+F4:关闭窗口。 Ctrl+Shift+ESN:打开任务管理器。 Shift+Dele
1. 注释符 a./ /单行注释符 b./* */多行注释符 c./** */文档注释符 2. 关键字(不能做标识符) abstract byte volatile const while try null this char void new static super double break for final implements false
工作中的小玩意~~ 流程: 注解实现 反射工具类 注解定义及实现 注解定义: @Documented @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface CheckParam { String value() default "-1"; } 简单解释上述其相关注解 Targ
大家是否见过这种for循环,在for循环前加了个标记的: outerLoop: for (; ; ) { for (; ; ) { break outerLoop; } } 我之前有一次在公司业务代码中见过有这种写法的,没在意,今天在看JDK线程池的代码时,又看到ThreadPoolExecutor的addWorker方法中有这种写法。于是就查了相关资料,也比较
最近的需求里有这样一个场景,要校验一个集合中每个对象的多个Id的有效性。比如一个Customer对象,有3个Id:id1,id2,id3,要把这些Id全部取出来,然后去数据库里查询它是否存在。 @Data @AllArgsConstructor public class Customer { private String name; private String id1;
数据类型: java的数据类型分为两大类:基本类型和引用类型 基本类型: 整数类型: byte 一个字节 -128-127 short 2个字节 32768-32767 int 4个字节 很大 long 8个字节 巨大 用long的时候赋值要在数字后加 L 扩展: public class HelloWorld { public st
JAVA方法: 何为方法 方法是语句的集合,这个集合执行一个功能 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 java全是值传递 方法的定义和调用 方法的定义: 修饰符 返回类型 方法名(参数类型 参数){ 方法体 return 返回值; } 修饰符(可选):告诉编译器如何调用该方法 返回值类型:方法可能会返回值;无返回值的方法用void 方法名:开头小
构造器 构造器:在实例化的一个对象的时候会给对象赋予初始值,因此我们可以通过修改构造器,来改变对象的初始值,构造器是完成对象的初始化,并不是创建对象 我们也可以创建多个构造器实现不同的初始化,即构造器的重载 默认初始化: 数字: 整形是0 浮点型是0.0 char:u0000 boolean:false 引用: null 一个类即使什么也不写,它的class文件也会自带一个构造方法,这个
继承的原理: 继承用于解决代码复用性 继承的本质就是对某一批类的抽象,即取一批类的共同有的属性和方法组成一个父类;继承也是类和类之间的一种关系 继承通过在类名后面加上extends +父类名 来实现, 也就是子类是父类的扩展 子类继承了父类就会拥有父类的全部方法和属性 前提是,父类的方法和属性修饰符是public 修饰符的优先级: public 最高的,继承一般用这个 protec
多态 多态的基础: 多态可以解决代码的复用性不高,不利于代码维护的问题 多态只能用于方法的多态,不能用于属性的 多态是建立在封装和继承的基础之上的 多态也叫多种状态,指方法或对象具有多种状态;多态能体现在以下这几个方面: 方法重载的多态 public class Demo01 { public static void main(String[] args) { A
1. 概述 今天在项目中看到下面两行代码,看注释说是获取当前工作路径,之前也没有用过这种用法,比较好奇还能这样用,所以研究了一下源码。 //获取当前工作路径 File file = new File(""); String currentWorkDirectory = file.getAbsolutePath(); 2. new File("")解析 首先,new File()是创建一个虚拟的
1、计算机 首先我们需要讲解下计算机的模型:现代计算机模型是基于-冯诺依曼计算机模型 我们不用管输入和输出设备,最主要的就是中间计算器和存储器之间的交互,也就是CPU与主内存之间取数、存数。 大家会看到有一个IO总线在进行数据的流通,所以CPU与此磁盘的交互也会通过IO总线,但是IO总线上有其他的一些数据在流通,比如显示器、鼠标键盘等,并且现在的CPU计算速度普遍在GHz,但是我
加锁目的:由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可变状态的访问。 加锁方式:java锁分为两种--显示锁和隐示锁,本质区别在于显示锁需要的是程序员自己手动的进行加锁与解锁如ReentrantLock需要进行lock与unlock。而隐式锁则是Synchronized,jvm内置锁,jvm进行操作加锁与解锁。 Synchronized关键字 每个对象创建后都会存
jvm内存模型 主要包含类加载器、jvm内存、字节码执行引擎、GC; 类加载器 类加载器主要包含:应用程序加载器、扩展类加载器、启动类加载器。 启动类加载器:主要进行加载java核心类,例如:rt.jar包下的类。 扩展类加载器:主要进行加载java中ext包下的类。 应用程序类加载器:主要加载我们自己写的java类。 类加载机制:双亲委派机制和全