#{}号的含义默认情况下,使用 #{} 参数语法时,MyBatis 会创建 PreparedStatement 参数占位符,sql预编译,并通过占位符安全地设置参数(就像使用 ? 一样)。${}号含义${ } 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换 ${ } 的变量的替换阶段是在动态 SQL 解析阶段。两者对比(1)#{} 为参数占位符 ?,即sql 预编译
描述有6条配置命令,它们执行的结果分别是:命 令 执 行 reset reset what reset board board fault board add where to add board delete no board at all reboot backplane impossible backplane abort install first he he unknown comman
LIMIT关键字mapper代码<select id="selectByPageInfo" resultMap="BaseResult"> select * from tb_user limit #{pageNo}, #{pageSize}</select>业务层直接调用public List<User> findByPageInfo(PageInfo info
is-a has-ais-a( 是 “a” 小明是人类)表示的是属于得关系。比如兔子属于一种动物(继承关系)。has-a( 有 “a” 汽车有轮胎) 表示组合,包含关系。比如兔子包含有腿,头等组件;就不能说兔子腿是属于一种兔子(不能说是继承关系)"is a"关系和"has a"关系假设有两个类:Computer和Employee。明显地,这两个类之间不存在"is a"的关系,即Employee不是
交替打印FooBar 我们提供一个类:class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("bar"); }
创建方式public Lock lock = new ReentrantLock(); public Condition condition = lock.newCondition();配合lock锁使用public class ConditionUseCase { public Lock lock = new ReentrantLock(); public Condition
ThreadLocal 无法解决共享对象的更新问题ThreadLocal 对象建议使用 static修饰。这个变量是针对一个线程内所有操作共享的,所以设置为静态变量,所有此类实例共享 此静态变量 ,也就是说在类第一次被使用时装载,只分配一块存储空间,所有此类的对象(只 要是这个线程内定义的)都可以操控这个变量。关于ThreadLocalMap<ThreadLocal, Object>弱
题目问题描述:有4个线程和1个公共的字符数组。线程1的功能就是向数组输出A,线程2的功能就是向字符输出B, 线程3的功能就是向数组输出C,线程4的功能就是向数组输出D。要求按顺序向数组赋值ABCDABCDABCD,ABCD的个数由线程函数1的参数指定。 [注:C语言选手可使用WINDOWS SDK库函数]接口说明: void init(); //初始化函数 void Release(); //资源
描述 Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫Levenshtein Distance。Ex:字符串A:abcdefg字符串B: abcdef通过增加或是删掉字符”g”的方式达到目的。这两种
描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。链表结点定义如下:struct ListNode{int m_nKey;ListNode* m_pNext;};正常返回倒数第k个结点指针,异常返回空指针本题有多组样例输入。输入描述: 输入说明 1 输入链表结点个数 2 输入链表的值 3 输入k的值输出描述: 输出一个整数示例1 输入: 8 1 2
描述以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上角数到右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3。输入n(n <= 1000000000) 本题有多组输入数据,输入到文件末尾,请使用while(cin>>)等方式读入 输入描述: 输入一
建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"
引用计数(Reference Counting)算法引用计数算法在每个对象都维护着一个内存字段来统计它被多少”部分”使用—引用计数器,每当有一个新的引用指向该对象时,引用计数器就+1 ,每当指向该引用对象失效时该计数器就-1 ,当引用数量为0的时候,则说明对象没有被任何引用指向,可以认定是”垃圾”对象.由于只维护局部信息,所以不需要扫描全局对象图就可以识别并释放死对象;但也因为缺乏全局对象图信息,
题目假设有这么一个类:class ZeroEvenOdd {public ZeroEvenOdd(int n) { ... } // 构造函数public void zero(printNumber) { ... } // 仅打印出 0public void even(printNumber) { ... } // 仅打印出 偶数public void odd(printNumber)
强引用( Strong Reference }:在一个线程内,无需引用直接可以使用的对象,除非引 用不存在了,否则强引用不会被 GC 清理。我们平时声明变量使用的就是强引用,普通 系统 99%以上都是强引用,比如, Strings =”Hello World”。软引用( Soft Reference l : JVM 抛出 OOM 之前, GC 清理所有的软引用对象。垃圾 回收器在某个时刻决定回收软
描述 输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37…70,71,72,73…)的个数(一组测试用例里可能有多组数据,请注意处理)输入描述: 一个正整数N。(N不大于30000)输出描述: 不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.示例1输入: 20 10输出: 3 1代码public class Huawei挑7 { publi
Full GC & Minor GC新创建的对象都存放在年轻代。因为大多数对象很快变成引用不可达(死 亡〉,所以大多数对象在年轻代中创建,然后消失。当对象从这块内存区域消失时,我们说发 生了一次“MinorGC”,工作流程如图 所示,存活对象根据幸存区、老年代区间的实际大 小进行调整。如图:space1和space2交换,使用保持from为空。存活下来的年轻代对象被复制到老年代。 老年代的
描述 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。s输入n,请输出n以内(含n)完全数的个数。计算范围, 0 < n <= 500000本题输入含有多组样例。输入描述:
年轻代&老年代( Young Generation & Old Generation)年轻代:年轻代其实分为两部分,分别是1个Eden区和2个Survivor区(分别叫from和to),默认比例是8:1,一般情况下,新创建的对象都会被分配到Eden区,(除非一些特别大的对象会直接放到老年代),当Eden没有足够的空间的时候,就会触发jvm发起一次Minor GC,如果对象经过一次Minor
Stop-the-World,简称 STW,指的是 GC 事件/过程4发生过程当中停止所有的应用程序线程的执行。 这让我想起了我丈母娘对我喊 着: “我扫垃圾的时候你站在原地不要动”。垃圾回收器的任务是识别和回收垃圾对象进行内存清理。为了让垃圾回收器可以正常且高 效地执行,大部分情况下会要求系统进入一个停顿的状态。停顿的目的是终止所有应用程序的 执行,只有这样,系统中才不会有新的垃圾产生,同时停顿
描述 找出字符串中第一个只出现一次的字符输入描述: 输入几个非空字符串输出描述: 输出第一个只出现一次的字符,如果不存在输出-1示例1输入: asdfasdfo aabb输出: o -1代码public class Huawei找出字符串中第一个只出现一次的字符 { public static void main(String[] args) throws IOException {
执行dhclient,即可。我这边亲测确实可以1,先修改ip,和uuid解决克隆的虚拟机centos7/8 找不到ip的问题如果不行试试先执行下面操作:修改ens33也可以试试,我这边改了ens33后执行dhclient命令的
描述 有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个,其余几个丢弃。现在,修改过的那个单词属于字母表的下面,如下所示:A B C D E F G H I J K L M N O P Q R S T U V W X Y ZT R A I L B Z E S C D F G
描述 现有一组砝码,重量互不相等,分别为m1,m2,m3…mn; 每种砝码对应的数量为x1,x2,x3…xn。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。注:称重重量包括0输入描述: 输入包含多组测试数据。 对于每组测试数据: 第一行:n — 砝码数(范围[1,10]) 第二行:m1 m2 m3 … mn — 每个砝码的重量(范围[1,2000]) 第三行:x1 x2
描述 有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?本题有多组数据。输入描述: 输入int型表示month输出描述: 输出兔子总数int型示例1输入: 9输出: 34代码public class Huawei统计每个月的兔子总数 { public static void main(String[] args
git的安装和使⽤第⼀步 下载并安装git 第⼆步 SSH配置 第三步 配置公钥 第四步 拉取代码第⼀步 下载并安装git官⽅地址(下载速度有点慢) https://git-scm.com/downloads 或者 https://pc.qq.com/detail/13/detail_22693.html (下载速度较快)配置GIT的⽤户名和邮箱 git config --global
描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。 子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”。利用子网掩码可以判断两台主机是否中同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。示例: I P 地址 192.168.0.1 子网掩码 255.255.255.0转化为
1. 线程池相关核心线程满了线程放哪里?阻塞队列满了放哪里?基本线程和阻塞队列都满了放哪里? 核心参数:int corePoolSize, // 线程池长期维持的线程数,即使线程处于Idle状态,也不会回收。 intmaximumPoolSize, // 线程数的上限 long keepAliveTime, TimeUnit unit, //超过corePoolSize的线程的idle时长,超过这
描述 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。本题包含多组输入。输入描述: 输入一行字符串,可以有空格输出描述: 统计其中英文字符,空格字符,数字字符,其他字符的个数示例1 输入: 1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\/;p0-=\][输出: 26 3 10 12代码public class Huawei统计字符 { pu