随笔分类 - java
摘要:先来看看线程池的7大参数: corePoolSize,maximumPoolSize,keepAliveTime,timeUnit,blockingQueue,threadFactory,rejectedExecutionHandler 常见的几个线程池 FixedThreadPool == 创建一
阅读全文
摘要:ReentrantLock ReentrantLock是AQS中独占模式的一种实现。内部定义了一个继承了AQS类的Syn类。该类有两个子类。而Syn类定义模板方法lock()方法给子类去实现。其中一个子类是实现公平锁,另一个是实现非公平锁。 非公平锁的实现 非公平锁的实现很简单,通过CAS操作判断s
阅读全文
摘要:在面试过程中面试官可能会问你关于锁的知识,并让你手写一个死锁的案例。下面我们来写一个简单的小Demo来实现一个死锁。 死锁案例 这段代码 显而易见会block住 来看结果 并且程序是一直运行着的状态,那么程序出了这种状况应该怎么去排查呢?对于简单的案例我们直接用jstack就可以来查看具体是哪里的问
阅读全文
摘要:Jdk1.6之后对锁的优化 偏向锁 偏向锁的意思就是,偏向于第一个获取该资源的锁,如果在接下来的过程中没有其他的线程获取到该锁,那么该获取到锁的线程将不需要获取同步的操作 自旋锁 竞争锁的线程如果没有获取到锁将会被挂起,当持有锁的线程释放掉锁的话将会被唤醒,这样挂起唤醒的操作效率很低,所以出现了自旋
阅读全文
摘要:Java中的内部类 Java中在类的内部定义的类叫做内部类,而外面的类叫做外部类,内部类可以分为四种,分别是静态内部类,成员内部类,局部内部类,匿名内部类 静态内部类 在静态内部类中可以访问外部类的静态方法和静态变量,即使是private类型的。 静态内部类的实例化不需要依赖于外部类 成员内部类 将
阅读全文
摘要:Java深拷贝和浅拷贝的区别 浅拷贝 被复制的对象的所有的变量都与原对象有相同的值,而所有的引用对象仍然指向原来的对象。换言之,浅拷贝只是复制所考虑的对象,不复制引用对象。 1 class Experience { 2 private String skill; 3 public void setS
阅读全文

浙公网安备 33010602011771号