12 2018 档案
摘要:setup需要@before注解,实现测试前的初始化工作 teardown需要@after注解,测试完成后垃圾回收等后续工作
阅读全文
摘要:scope作用域,一共有三种作用域:compile(编译)、runtime(运行)、test(测试) 备注:打包必经compile阶段 1、test 测试 2、compile 编译 打包 3、provided 编译 + 测试 4、runtime 运行 默认的依赖范围是compile
阅读全文
摘要:一般情况下mapper的namespace能随便写,不重复即可, 但如果希望使用mybatis动态代理的接口,就需要namespace中的值和需要对应的Mapper(dao)接口的全路径一致。例如:com.zpc.mybatis.dao.UserDao
阅读全文
摘要:mybatis缓存分两种,一级缓存与二级缓存 一级缓存 作用域:session 说明:在同一个session中,如果执行相同的sql语句(语句及参数),就不执行sql,而是从缓存中直接返回,否则,从数据库中查询 默认开启且无法关闭 如何清除缓存? 1. sqlSession.clearCache()
阅读全文
摘要:假设我们的sql需要多个参数,例如: 而我们的函数如下: #{userName}和#{password}能与userName、password自动映射上吗?答案是不能 方法一 通过参数需要来映射 方法二 通过param1与param2来映射,与方法一类似 显然这两种方法都缺乏灵活性 方法三 在形参处
阅读全文
摘要:#{}类似于PreparedStatement的用法,它相当于?(即占位符),之后传入参数来替换 ${}类似于Statement的用法,传入参数来进行字符串拼接 eg: 这种情况下会报错,假设tableName为'a',则会变成select * from 'a',应使用${tableName}
阅读全文
摘要:Spring Boot会自动根据jar包的依赖来自动配置项目,例如当你项目下面有HSQLDB的依赖,Spring Boot会自动创建默认的内存数据库的数据源DataSource, 但我们使用Mybatis自定义配置,想自己创建DataSource时就必须注释掉DataSourceAutoConfig
阅读全文
摘要:Java 连接MySQL需要驱动包,否则JDBC无法访问数据库(无法注册驱动),常用的是mysql-connector-java,在idea中新建项目时可以在选择依赖时勾选Mysql,这样就会自动加载进来。
阅读全文
摘要:mysql搜索是不区分大小写的,这种情况下我们有两种方法解决 知识前提: BINARY binary不是函数,而是一个类型转换运算符,它用来强制字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写。 一般用于查询语句 COLLATE 即校验规则: *_bin: 表示的是binary ca
阅读全文
摘要:首先,对于不同的进制数值系统,分母为多少时能除干净? 答案是以当前进制数的质因子为分母时,以十进制为例,它的质因子为2、5,因此1/2、1/4、1/5、1/8和 1/10都能被除干净,相反,1/3、1/6 和 1/结果都是循环小数。 那么二进制时,质因子为2,所以1/2、1/4 和 1/8都可以被精
阅读全文
摘要:总结自:https://www.cnblogs.com/mjbrian/p/6866263.html char: 定长,长度范围是0~255. 当长度不足255时,用空格来填充剩下的字符。因此在读取数据时,char类型的数据要进行处理,把后面的空格去除。 varchar: 变长,在5.0.3以下的版
阅读全文
摘要:DATETIME与TIMESTAMP都能表达一个完整的日期格式:YYYY-MM-DD HH:MM:SS[.fraction] eg: mysql> create table test(id int,hiredate timestamp); Query OK, 0 rows affected (0.0
阅读全文
摘要:计算机中的定点数与浮点数 在计算机中,数据有两种表达方式:定点数和浮点数,注意,这仅仅是数的两种表达方式,而不是两种数。 定点数:小数点固定在某个位置上的数据,就是一般的写法。 就好像 0.0000001 ,0.0001111; 浮点数:小数点位置可以浮动的数据。就像数学中的 1222.2*10^3
阅读全文
摘要:为什么需要JDBC? 在实际项目中,我们需要在java程序中对数据库进行连接、查询等操作,而JDBC是一种数据库连接技术,为我们提供了一种标准的应用程序设计接口, 使开发人员可以用纯Java 语言编写完整的数据库应用程序,可以用来对数据库进行增删改查等操作。 JDBC本质上是一套规范,也可以理解为是
阅读全文
摘要:mybatis 优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。 备注:通过mapper实现数据库与实体类相互映射 MyBatis 避免了几乎所有的JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 PO
阅读全文
摘要:spring boot既可以打成war发布,也可以找成jar包发布。 jar包:直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置。内置tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,
阅读全文
摘要:1. 在Java7之前,switch只能支持byte、short、char、int或者其对应的封装类以及Enum类型 2. Java7后,开始支持String 3. switch语句中,表达式的值不能是null,否则会在运行时抛出NullPointerException, 4. case子句中也不能
阅读全文
摘要:IoC (Inversion of Control)即控制反转,是面向对象编程中的一种设计原则。它把传统上由程序代码直接操控的对象的调用权交给容器,通过外部容器来实现对象组件的装配和管理。 简单来说,所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。 当使用Sprin
阅读全文
摘要:首先,ArrayList定义只定义类两个私有属性: /** * The array buffer into which the elements of the ArrayList are stored. * The capacity of the ArrayList is the length of
阅读全文
摘要:RandomAccess是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的list中表现的更加高效。 备注:随机访问并不是指能够随机获取一个元素,就像随机数,而是想访问哪个就访问哪个,不受限制。 为什么是快速随机访问呢?我们提供一个函数来分析: bi
阅读全文
摘要:本文总结自:https://www.cnblogs.com/chengxiao/p/6059914.html HashMap结构: 如上可知:HashMap的主干是一个Entry数组,每个元素是一个Entry链表,而每个Entry包含一个key、value(键值对)、hash(运算得到的hash值)
阅读全文
摘要:本文总结自:https://blog.csdn.net/chuixue24/article/details/80027689 二叉树(B树,binary tree) 左子树的键值 < 根的键值 < 右子树的键值 该二叉树的节点进行查找深度为1的节点的查找次数为1,深度为2的查找次数为2,深度为n的节
阅读全文
摘要:外部类 1. 外部public class只能有一个 2. 外部类只能有两种访问控制级别: public 和默认 3. 一个文件中,可以有多个public class,即外部类为public,还可以有public的内部类。 main方法 1 .public static void main(Stri
阅读全文
摘要:1. 当不定义构造方法,系统会为类隐式的创建一个空的无参构造方法 2. 当类定义了有参的构造方法,系统就不会为类创建无参构造方法 3. 子类中,若不显式调用super(), super()会被隐式调用,但如果父类没有无参构造方法,会报错 4. super(xxx)这种带参的情况只能显式调用
阅读全文
摘要:什么是阻塞方法?为什么会抛出InterruptedException? 一般方法的完成只取决于它所要做的事情,以及是否有足够多可用的计算资源(CPU 周期和内存)。 而阻塞方法的完成还取决于一些外部的事件,例如计时器到期,I/O 完成,或者另一个线程的动作(释放一个锁,设置一个标志,或者将一个任务放
阅读全文
摘要:null表示没有地址,它可以赋值给引用变量,但不能将null赋给基本类型变量,例如int、double、float、boolean
阅读全文
摘要:并发编程常有三个概念: 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 可见性:指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 有序性:即程序执行的顺序按照代码的先后顺序执行。 对于物理机内存模型 存在原子性
阅读全文
摘要:多线程缓存一致性问题 程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存当中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束之后,再将高速缓存中的数据刷新到主存当中。 在单线程的情况下,这没有任何问题,但在多核CPU中(多线程),每条线程可能运行于
阅读全文
摘要:1. 构造方法的方法名必须与类名相同。 2. 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。 3. 一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个 4. 构造方法可以重载,以参数的个数,类型,顺序。
阅读全文
摘要:1、子类构造函数调用父类构造函数用super 2、子类重写(覆盖)父类方法后,若想调用父类中被重写的方法,用super 3、未被重写的方法可以直接调用。
阅读全文
摘要:重载就是同一个类中或父子类中,有多个方法名相同,但参数列表不同(包括参数个数和参数类型),与返回值无关,与权限修饰符也无关。 而调用重载的方法时通过传递给它们不同的参数个数和参数类型来决定具体使用哪个方法,这叫多态。 重写(覆盖)就是子类重写基类的方法,方法名,参数列表和返回值都必须相同,否则就不是
阅读全文
摘要:HTML出现乱码 主要原因是html编码是gbk,而其中的中文字内容是用utf-8 备注:gbk的范围囊括中文,只是编码方式冲突 解决方法(使用utf-8编码): 前提:很多情况下(如很多协议传输数据时)都使用ISO 8859-1编码 tomcat 问题: 程序需要发送http请求到服务器,请求的参
阅读全文
摘要:本文总结自:https://blog.csdn.net/zmx729618/article/details/51821024 1. ISO 8859-1 字节数:1 范围:0-255(编码范围是0x00-0xFF),其中0x00-0x7F之间完全和ASCII一致(ASCII是7位编码,能个表示128
阅读全文
摘要:静态内部类才可以声明静态方法。 静态内部类不可以直接访问外围类的非静态数据,而非静态内部类可以直接访问外围类的数据,包括私有数据。 静态方法不可以访问非静态变量。
阅读全文
摘要:如果一个类包含抽象方法,那么该类必须是抽象类。 抽象类的子类必须重写父类的抽象方法,或者声明自身为抽象类。 抽象方法只包含一个方法名,而没有方法体。 eg: 抽象类中可以有一般方法。
阅读全文
摘要:首先,赋值是有返回值的,对于js、java、C,赋什么值,就返回什么值 但如果加上if()的话就不一样了 js会对返回值做Boolean运算,判断为true还是false C会把返回值与0进行比较,如果大于0,为true,否则,为false java不会做Boolean运算 if(x=y)括号内的值
阅读全文
摘要:1. 静态初始化块 > 初始化块 > 构造器 2. 父类 > 子类 综合下来顺序就是: 父类静态初始化块和静态成员变量 子类静态初始化块和静态成员变量 父类初始化块和普通成员变量 父类构造器 子类初始化块和普通成员变量 子类构造器 需要注意静态初始化块是在类第一次加载的时候就会进行初始化, 其余是在
阅读全文
摘要:js有真数组与伪数组 java只有真数组,这是其健壮性的表现 什么是伪数组 定义: 1、伪数组是一个对象2、这个对象必须要有length属性3、如果这个对象的length不为0,那么必须要有按照下标存储的数据 js实现:
阅读全文
摘要:java能检测编译和运行时的错误 java自己操作内存减少了内存出错的可能 java实现了真数组,避免了覆盖数据的可能 Java不支持指针操作,大大减少了错误发生的可能性 。。。 备注: Java能运行虚拟机实现跨平台,这是Java的与平台无关性的特点,不是健壮性
阅读全文
摘要:Java的异常分为两种,一种是运行时异常(RuntimeException),一种是非运行异常也叫检查式异常(Checked Exception) 区别: 运行式异常 虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。简单来说,属于运行错误,不可预计 不需要
阅读全文