HashMap的默认长度为什么是16?

如果两个元素不相同,但是hash函数的值相同,这两个元素就是一个碰撞 因为把任意长度的字符串变成固定长度的字符串,所以存在一个hash对应多个字符串的情况,所以碰撞必然存在 为了减少hash值的碰撞,需要实现一个尽量均匀分布的hash函数,在HashMap中通过利用key的hashcode值,...

2019-06-09 08:26:08

阅读数 14

评论数 0

[Java] 将 boolean 转换为 int

唯一的方法: int myInt = myBoolean ? 1 : 0; 如果使用强制类型转换(int)myBoolean,会出现语法错误。

2019-04-18 15:48:55

阅读数 99

评论数 0

对于Java Web中的Filter和Interceptor的理解

写在前面:因为部门项目中有用户登录验证方面的需求,故而学习了一下相关的验证技术,本文仅是作者个人学习的心得,由于水平有限,如有错误之处还请指出、见谅。 1. 背景 在设计web应用的时候,用户登录/注册是必不可少的功能,对用户登录信息进行验证的方法也是多种多样,大致可以认为如下模式:前端验证+...

2019-03-23 11:26:25

阅读数 32

评论数 0

过滤器(Filter)和拦截器(Interceptor)的区别

过滤器(Filter)和拦截器(Interceptor)的区别 Filter介绍 Filter可以认为是Servlet的一种“加强版”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。Filter也可以对用户请求生成响应,这一点与S...

2019-03-23 11:25:11

阅读数 14

评论数 0

synchronized和ReentrantLock的区别

昨天面试,面试官问了自己一个synchronized和ReentrantLock的区别,感觉自己回答的并不是特别好,今天在翻书学习总结一下,毕竟书读百遍其义自见。 开始进入正题 两者的共同点: 1)协调多线程对共享对象、变量的访问 2)可重入,同一线程可以多次获得同一个锁 3)都保证了可见性和互...

2019-03-14 08:39:21

阅读数 16

评论数 0

自旋锁锁的实现

public class SpinLock { private AtomicReference<Thread> sign =new AtomicReference<>(); public v...

2019-03-12 08:20:56

阅读数 15

评论数 0

线程死锁DEMO

public static void main(String[] args) throws IOException, InterruptedException { for (int i = 0; i < 100; i++) { new Thread(new SyncLo...

2019-03-11 08:41:35

阅读数 19

评论数 0

【Java并发编程】之六:Runnable和Thread实现多线程的区别(含代码)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17161237 Java中实现多线程有两种方法:继承Thread类、实现Runnable接口,在程序开发中只要是多线程,肯定永远以实现Runnable接口为主,因为实现Runnable接口...

2019-03-10 21:45:13

阅读数 14

评论数 0

Spring容器中Bean的作用域

当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域: singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例 prototype...

2019-03-10 20:58:15

阅读数 10

评论数 0

弱引用和软引用的区别与用途

2019-03-10 16:15:27

阅读数 64

评论数 0

Java并发编程:synchronized和锁优化

1. 使用方法 synchronized 是 java 中最常用的保证线程安全的方式,synchronized 的作用主要有三方面: 确保线程互斥的访问代码块,同一时刻只有一个方法可以进入到临界区 保证共享变量的修改能及时可见 有效解决重排序问题 语义上来讲,synchronized主要有...

2019-03-10 11:22:18

阅读数 11

评论数 0

JNDI学习总结(一):JNDI到底是什么?

JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。 那么,JNDI到底起什么作用? 要了解JNDI的作用,我们可...

2019-03-08 23:18:52

阅读数 8

评论数 0

ReentrantLock 图详解

ReentrantLock详解 ReentrantLock详解 Lock lock()过程 公平锁 非公平锁 unlock()过程 lockInterruptibly()过程 tryLock() tryLock(long timeout, TimeUnit...

2019-01-23 23:47:19

阅读数 32

评论数 0

java中时间的截取 Date Calendar

  推迟一周代码: Calendar curr = Calendar.getInstance(); curr.set(Calendar.DAY_OF_MONTH,curr.get(Calendar.DAY_OF_MONTH)+7); Date date=curr.getTime(); 推...

2019-01-23 16:32:58

阅读数 262

评论数 0

happens-before

3.有序性   在Java内存模型中,允许编译器和处理器对指令进行重排序,但是重排序过程不会影响到单线程程序的执行,却会影响到多线程并发执行的正确性。   在Java里面,可以通过volatile关键字来保证一定的“有序性”(具体原理在下一节讲述)。另外可以通过synchronized和Loc...

2019-01-22 08:35:18

阅读数 34

评论数 0

JDK 5.0 中更灵活、更具可伸缩性的锁定机制

先看看 synchronized 的一些限制:       1.1 :无法中断正在等候获取一个锁的线程       1.2 :无法通过投票得到一个锁       1.3 :释放锁的操作只能与获得锁所在的代码块中进行,无法在别的代码块中释放锁 。    ReentrantLock 类实现了 Lo...

2019-01-22 08:04:58

阅读数 70

评论数 0

Java8 Map computeIfAbsent方法说明

computeIfAbsent   // 方法定义 default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) {     ... } /...

2019-01-06 14:24:27

阅读数 17

评论数 0

JAVA泛型通配符T,E,K,V区别,T以及Class的区别

1. 先解释下泛型概念 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。Java语言引入泛型的好处是安全简单。 在Java SE 1.5之前,没有泛型的情况的...

2019-01-06 12:02:32

阅读数 40

评论数 0

java 中的数字格式化

我们经常要将数字进行格式化,比如取2位小数,这是最常见的。Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子。下面是常用的例子:   import java.text.DecimalFormat; public class Test{ pub...

2019-01-04 17:48:19

阅读数 25

评论数 0

collection map 是否可以存储null问题

  TreeMap、TreeSet两个类在加入第二个元素时,会调用Comparator比较器比较先后加入的元素是否重复(TreeMap比较的是Key值)。所以当加入第一个元素时,即使第一个元素是null,也不会报错,因为此时不会调用比较器,再次加入元素则报错。    已测试的其他集合类HashSe...

2019-01-02 11:08:56

阅读数 51

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭