- 浏览: 209639 次
- 性别:
- 来自: 哈尔滨
最新评论
文章列表
待整理2018-01-28
- 博客分类:
- 其他知识
4.
long double 32位,分高低位存放,非原子性操作,其他基本数据类型是原子性
基本数据类型的线程安全
-------------------------------------------
------------------------------------------
@JrdLoginCheck
注解使用方式
通过AOP获取接口是否带有该注解
PCSecurityInterceptor
------------------------------------------
SELECT COUNT(0)
FROM p2p_td_project
WHE ...
分页实现
jr-MyBatis
PageBean PageBeanPlugin
Spring-MyBatis.xml
sqlSessionFactory
问题:分库分表
为每个表添加一个公共的状态位,但不修改PO MAPPER
如何实现?
是否可以参考此处的分页实现原理?在SQL提交前进行语句的拼接及修改
---------------------------------
EXPLAIN
SELECT COUNT(0)
FROM p2p_td_notice site
WHERE site.C_TIME > IFNULL((
SELECT lk.C_NOTICE_TI ...
查询时应注意的事项
1.从库查询,减轻主库压力
2.缓存,不是实时要求的数据,放入缓存
Excel导入异常Cannot get a text value from a numeric cell解决
http://blog.csdn.net/ysughw/article/details/9288307
doubleCheck问题
ABA问题 CAS 加version
乐观 ...
2017年12月01日
笔试题目
1.
final finally finalize 的区别
2.
String str = new String("xyz"); 创建几个对象
3.
start()会执行run(),为什么不能直接运行run()
4.
线程 t1 t2 t3 按顺序执行,编程
countdownlacht ,对方说用 join完成
5.排序算法
-----------------------------------------
面试
问:数据用的是
答:MySQL
问:分页是如何实现的
答:limit 偏移量,每页数量
问:写SQL时应注意 ...
问题:一个的日志文件中存放IP地址,按照访问量对IP地址取访问量最大的IP,内存大小4M
解答:
1.由于内存大小的限制,分而治之
2.IP地址,0.0.0.0 ~ 255.255.255.255 ,
255(10) = 11111111(2)
共 4*8 = 32 bit 表示一个IP地址
每位上共两种变化,所以共 2^32 个不同的IP地址
拆分为1024文件
2^32 / 2^10 = 2^22 = 4M,每份文件中最多存放4M个不同的IP地址
3.计算IP地址的HASH值
IP.hash % 1024 ,让IP地址落在不同的文件中
计算Hash值再取余,
类比Has ...
问题描述:
建表,字段类型 tinyint 长度 1 ,映射为PO类中的字段类型为 Boolean
tinyint(3) --> Byte
tinyint(1) --> Boolean
问题原因:
1.MySQL中无Boolean类型数据;MySQL中将Boolean==》tinyint(1)
2.BOOL, BOOLEAN
These types are synonyms(同义词) for TINYINT(1). A value of zero is considered(认为是) false. Nonzero(不为0) values are considered true ...
Number
一、总结
1.jdk 1.8.0
2.
二、源码分析
/**
* The abstract class {@code Number} is the superclass of platform
* classes representing numeric values that are convertible to the
* primitive types {@code byte}, {@code double}, {@code float}, {@code
* int}, {@code long}, and {@code short}.
*
...
Unsafe
一、总结
1.jdk 1.8.0
2.不可仿照 AtomicInteger 的方式直接调用 Unfase
// 声明全局的静态变量,运行时会出现异常 SecurityException("Unsafe")
private static final Unsafe unsafe = Unsafe.getUnsafe();
3.从源码注释得知,这个类是用于执 ...
CAS
CAS:Compare and Swap, 翻译成比较并交换。
java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。
CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。
无阻塞算法:一个线程的失败或者挂起不应该影响其他线程的失败或挂起的算法
原子性操作:CAS通过调用JNI的代码实现的。JNI:Java Native Interface为JAVA本地调用,允许java调用其他语言
缺点:
ABA问题。因为CAS需要在操作值的时候检查下值有没 ...
volatile
一、总结
1.作用:保证线程间的数据是可见的(共享的)
乐观锁和悲观锁
1. 悲观锁与乐观锁
我们都知道,cpu是时分复用的,也就是把cpu的时间片,分配给不同的thread/process轮流执行,时间片与时间片之间,需要进行cpu切换,也就是会发生进程的切换。切换涉及到清空寄存 ...
AtomicInteger
一、总结
1.jdk 1.8.0
2.
基于CAS的乐观锁实现
基于JNI调用硬件级别的锁实现原子性操作
CAS算法,此算法是由unsafe的底层代码实现,它是一个原子的操作,CAS(V,E,N) V 变量,E expected 预期的旧值,N new 新值,Compare And Swap 比较交换,仅当 V中存放的值与E相等时,才将V赋值为N;否则,不做任何处理
语言层面不做处理,我们将其交给硬件—CPU和内存,利用CPU的多处理能力,实现硬件层面的阻塞,再加上volatile变量的特性即可实现基于原子操作的线程安全。所以说,CAS并不是无阻塞,只是阻 ...
问题描述:
根据前端同事提供的HTML页面嵌套JSP页面
删除了顶部的
<!DOCTYPE html>
倒置样式错乱
问题解释:
不是简单的注释,而是标明当前的解析格式。
ReferenceQueue
一、总结
1.jkd 1.8.0
2.作用
该队列作为引用中的一员,可以和上述三种引用类型组合使用,该队列的作用是:创建Reference时,将Queue注册到Reference中,当该Reference所引用的对象被垃圾收集器回收时,会将该Reference放到该队列中,相当于一种通知机制。
二、源码分析
/**
* Reference queues, to which registered reference objects are appended by the
* garbage collector after the appropri ...
Reference
一、总结
1.jdk 1.8.0
2.引用级别
FinalReference,不对外提供使用,类的访问权限为默认 protect,即使抛出 out of memory 异常也不会回收所占内存
SoftReference,在内存不够用时,在抛出 out of memory 前回收内存空间
WeakReference,第 ...