摘要:
赋值操作 1.Integer与int类型的赋值 把Integer类型的赋值给int类型,调用intValue()方法进行拆箱赋值。 把int类型赋值给Integer,会调用valueOf()方法对int进行装箱赋值。 2.Integer与int类型的比较 先对Integer调用intValue()进行拆箱,然后进行值比较 比较操作 1.Integer之间的比较 对象比较 2.int之间的比较 进... 阅读全文
摘要:
以AtomicInteger来说明 1.value实例变量是用来存储整数的时间变量,这里被声明为volatile,确保了并发情况下的可见性 2.valueOffset实例变量是用来记录value本身在内存的偏移地址,在更新操作在内存中找到value的位置,方便比较。 3.以getAndSet为例。使用了Unsafe 的getAndInt方法,该方法先取AtomicInteger存储的value值,... 阅读全文
摘要:
parse 方法为什么不线程安全 1.有一个共享变量calendar,而这个共享变量的访问没有做到线程安全 2.parse方法生成CalendarBuilder,然后通过CalendarBuilder 设值到calendar,最后calendar.getTime(); 3.api方法说明 This parsing operation uses the calendar to produce a... 阅读全文
摘要:
1.常见两种方式 漏桶算法和令牌桶算法 漏桶算法:1.有一个固定容量的漏桶,已固定的速率流出水滴。 2.可以任意速率流入水滴到漏桶 3.当漏桶满了,水溢出(相当于丢弃) 令牌桶算法: 1.以固定的速率向桶里放令牌 2.当桶内的令牌数量达到最大值后,后续放入的令牌被丢弃 3.当需要发送N个单位大小的数 阅读全文
摘要:
要点: 1.凡是使用加号进行相加,都会进行拆箱操作,进行数值的加减。 2.使用new Integer 的方式,是创建新的对象 3. Integer i = 40; 对于等号右侧是数值,不是对象,系统会调用Integer valueOf(int i)将其装箱,如果在-128-127之间,从常量池获取对 阅读全文
摘要:
问题1 怎么判断两个对象是相同的? 1.使用等号== 判断两个对象是否相同,这种是严格的相同,即内存中的同一个对象 Object的equal方法就是使用==判断两个对象是否相同 2.对于一些业务场景,当两个对象相同时,并不要求它们是内存中的同一个对象 ,只要满足业务上相同规则就可以认为它们相同。比如 阅读全文
摘要:
IP信息获取来源 从request的header信息中获取 打印出header中的所有信息 <% Enumeration enu = request.getHeaderNames();//取得全部头信息 while (enu.hasMoreElements()) {//以此取出头信息 String 阅读全文
摘要:
没有给赋值,也没有默认值时为null ORACLE允许任何一种数据类型的字段为空,除了以下两种情况:
1、主键字段(primary key),
2、定义时已经加了NOT NULL限制条件的字段 说明:
1、等价于没有任何值、是未知数(未赋值,且没有默认值)。
2、NULL与0、空字符串、空格都不同。
3、对空值做加、减、乘、除等运算操作,结果仍为空。
4、NULL的处理使用NVL函数。
5、... 阅读全文
摘要:
exists 先从外层查询中取第一个元组,然后和内层查询中相关的属性值,处理内层查询,若内层where子句为真,则外层的这个元组放入到结果集中。 in 先执行内层查询,将结果存放在临时表中,然后执行外层查询。 in 不对null进行处理,见下图,没有返回结果。 总结: 内层查询得出的结果集记录较少,外层查询中得到的结果集较大且有索引,适合用in。 外层查询得出的结果集记录较少,内层... 阅读全文