摘要:
看Integer源码的时候发现的= =感觉非常有意思。。。 public static int highestOneBit(int i) { // HD, Figure 3-1 i |= (i >> 1); i |= (i >> 2); i |= (i >> 4); i |= (i >> 8); i 阅读全文
摘要:
= =纯自己研究出来的。。。估计比正规途径麻烦不少只是记录一下。。。 (找不到靠谱答案) 牛客的华为练习题 https://www.nowcoder.com/practice/f9c6f980eeec43ef85be20755ddbeaf4?tpId=37&tqId=21239&rp=0&ru=/t 阅读全文
摘要:
= =看李永乐的视频想到的算法。。。。。。觉得不错所以记录一下 原理: 欧几里得的反转相除法 104 和 40的最大公约数: 104 ÷ 40 = 2 。。。 24 40 ÷ 24 = 1 。。。 16 24 ÷ 16 = 1 。。。 8 16 ÷ 8 = 2 没有余数,则8就是最大公约数 refe 阅读全文
摘要:
volatile主要用来使线程之间数据可见 不同线程操作同一个对象时,会先把对象复制一份给自己的运行内存然后操作完了再放回去。 如果两个线程一起操作对象,两者之间操作的对象其实不是同一个,而是各自拿到的主内存中的复制。 而volatile修饰的对象属性,会保证其可见性,使用这个属性时会同步到主内存, 阅读全文
摘要:
mybatis有2级缓存 一级缓存(本地缓存, sqlsession级别) 二级缓存(全局缓存) 缓存时会把查询结果暂时存入内存,下次调用时直接返回结果,不再访问数据库。 . 一级缓存失效的情况: 1. 两次数据库会话 (不同的数据库回话会有各自独立的缓存空间) 2. 同一个sql,不同的参数(等于 阅读全文
摘要:
mybatis是用来负责和数据库进行交互的框架(DAO (data access object))。 数据库交互的方法: 1. jdbc: java自带的最原始的方法,调用连接方法(数据库ip,账号密码,查询条件等都是参数),然后拼接sql语句进行操作 耦合性太大(修改数据库后需要修改所有java相 阅读全文
摘要:
AOP: 面向切面编程(Aspect oriented Programming) 说白了就是把常用业务方法打包,在放在需要的位置。这个和OOP(面向对象)是不冲突的,只是为了完善面向对象编程中的一些业务逻辑问题。 比如: A在运行的时候,打印日志。 B在运行的时候,打印日志。 传统方法: A运行结束 阅读全文
摘要:
https://www.cnblogs.com/clamp7724/p/11757304.html 之前做的ssm结构的小练习,结合这个看比较好。 1. @Controller 控制器, 添加给controller(servlet)层 2. @Service 服务,添加给service(业务逻辑)层 阅读全文
摘要:
代码很简单,主要是思路可能会有点绕- -||| reference: https://www.bilibili.com/video/av54029771?p=162 package search; public class MatchString { public static void main( 阅读全文
摘要:
- -一个月前没搞明白,最近再学习一遍搞明白了。 问题: 给定3个物品 a 价值1000, 重量1kg b 价值2000, 重量4kg c 价值1500, 重量3kg 用容量为4kg的背包最多可以装价值多少的物品? 背包问题就是类似这种给定容量求最优解的问题,有很多种,这里说的是01背包问题。 01 阅读全文