加载中
线程池之ThreadPoolExecutor使用

ThreadPoolExecutor提供了四个构造方法: ThreadPoolExecutor构造方法.png 我们以最后一个构造方法(参数最多的那个),对其参数进行解释: public ThreadPoolExecutor(int corePoolSize, //...

06/24 18:28
43
ThreadPoolExecutor的几个参数理解

new ThreadPoolExecutor( int coreSize, int maxSize, long time,int timeUnit, BlockingQueue<Runnable> taskQueue, ThreadFactory threadFactory): 参数含义如下: coreSize:核心线程数 ...

06/24 18:27
1
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

1. 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 什么是泛型?为什么要使用泛型? 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形...

06/24 09:32
16
你真的完全了解Java动态代理吗?看这篇就够了

之前讲了《零基础带你看Spring源码——IOC控制反转》,本来打算下一篇讲讲Srping的AOP的,但是其中会涉及到Java的动态代理,所以先单独一篇来了解下Java的动态代理到底是什么,Java是怎么实现...

泛型擦除

擦除的现象 当开始深入研究泛型的时,会发现其实有些东西是没有意义的。例如,我们可以声明ArrayList.class,但是却无法声明ArrayList<Integer>.class。 这是因为泛型的擦除机制造成的,考虑...

06/21 18:58
3
JAVA8新特性(吐血整理)

一、Java 8 Lambda 表达式 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用Lambda 表达式可以...

一文带你理解Java中Lock的实现原理

当多个线程需要访问某个公共资源的时候,我们知道需要通过加锁来保证资源的访问不会出问题。java提供了两种方式来加锁,一种是关键字:synchronized,一种是concurrent包下的lock锁。synchro...

06/19 18:33
63
java的两种同步方式, Synchronized与ReentrantLock的区别

ava在编写多线程程序时,为了保证线程安全,需要对数据同步,经常用到两种同步方式就是Synchronized和重入锁ReentrantLock。 相似点: 这两种同步方式有很多相似之处,它们都是加锁方式同步,...

06/19 18:08
7
轻松学习java可重入锁(ReentrantLock)的实现原理

前言 相信学过java的人都知道 synchronized 这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能,但你可能从来没有想过java中的锁底层的机制是怎么实现...

06/19 17:44
2
多线程安全(synchronized、三大特性、Java内存模型)

线程安全问题? 什么是线程安全问题?简单的说,当多个线程在共享同一个变量,做读写的时候,会由于其他线程的干扰,导致数据误差,就会出现线程安全问题。 比如说,多个窗口同时卖票这个案例...

06/19 16:33
29
Java单例模式的5种实现方式

1.饿汉式、不支持并发: package com.ou; //饿汉式 public class Singleton1 { private Singleton1() { } private static Singleton1 instance = new Singleton1(); public stat......

06/19 11:01
43
强引用、软引用、弱引用、虚引用的概念

强引用(StrongReference) 强引用就是指在程序代码之中普遍存在的,比如下面这段代码中的object和str都是强引用: 1 2 Object object = new Object(); String str = "hello"; 只要某个对象有...

06/19 10:58
34
SparseArray、ArrayMap 实现原理学习

一、SparseArray实现源码学习 SparseArray采用时间换取空间的方式来提高手机App的运行效率,这也是其与HashMap的区别;HashMap通过空间换取时间,查找迅速;HashMap中当table数组中内容达到总...

06/19 10:51
7
HashMap 扩容机制

HashMap: public HashMap(int initialCapacity, float loadFactor) { //初始容量不能<0 if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial capacity: " ......

06/19 10:02
8
HashMap工作原理和扩容机制

1. HashMap工作原理 HashMap作为优秀的Java集合框架中的一个重要的成员,在很多编程场景下为我们所用。HashMap作为数据结构散列表的一种实现,就其工作原理来讲单独列出一篇博客来讲都是不过...

06/19 09:59
12
java重写equals()方法和hashCode()方法

1.equals()方法和hashCode()方法是什么? equals()和hashCode()都是是Java中万物之源Object类中的方法; equals方法用于比较两个对象是否相同,Object类中equals方法的实现是比较引用地址来判...

06/19 09:19
43
JAVA中重写equals()方法的同时要重写hashcode()方法

object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true; 注意:当此方法被重写时,通常有必要重写 hashCo...

06/18 22:46
4
为什么要使用泛型?

【为什么要使用泛型】   通过泛型可以定义类型安全的数据结构(类型安全),而无须使用实际的数据类型(可扩展)。这能够显著提高性能并得到更高质量的代码(高性能),因为您可以重用数据...

06/18 22:35
9
synchronized和lock的使用分析(优缺点对比详解)

1.synchronized 加同步格式: synchronized(需要一个任意的对象(锁)){ 代码块中放操作共享数据的代码。 } synchromized缺陷 synchronized是java中的一个关键字,也就是说是java语言的内置的特...

06/18 18:53
41
java基础—HashMap实现原理,如何保证HashMap的线程安全

在多线程条件下,容易导致死循环,具体表现为CPU使用率100%。因此多线程环境下保证 HashMap 的线程安全性,主要有如下几种方法: 1.替换成Hashtable,Hashtable通过对整个表上锁实现线程安全...

06/18 18:48
59

没有更多内容

加载失败,请刷新页面

返回顶部
顶部