首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java
订阅
Gaoweii
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
弄明白CMS和G1,就靠这一篇了
根据不同分代的特点,收集器可能不同。有些收集器可以同时用于新生代和老年代,而有些时候,则需要分别为新生代或老年代选用合适的收集器。一般来说,新生代收集器的收集频率较高,应选用性能高效的收集器;而老年代收集器收集次数相对较少,对空间较为敏感,应当避免选择基于复制算法的收集器。 在…
ConcurrentHashMap 原理浅析
1. 前言 2. ConcurrentHashMap 结构 jdk 1.7 和 jdk 1.8 中,ConcurrentHashMap 的结构有着很大的变化,后面会讲解。 在 jdk 1.7 中,ConcurrentHashMap 是由 Segment 数据结构和 HashEn…
为什么阿里巴巴要禁用Executors创建线程池?
管理一组工作线程。通过线程池复用线程有以下几点优点: 在介绍Executors创建线程池方法前先介绍一下ThreadPoolExecutor,因为这些创建线程池的静态方法都是返回ThreadPoolExecutor对象,和我们手动创建ThreadPoolExecutor对象的区…
Java创建线程的三种方式及对比
和Runnable接口不一样,Callable接口提供了一个call()方法作为线程执行体,call()方法比run()方法功能要强大:call()方法可以有返回值,可以声明抛出异常。 Java5提供了Future接口来接收Callable接口中call()方法的返回值。 Ca…
对「面向对象」的理解
笔者作为一个程序员新人,在之前的工作中往往仅考虑了功能的实现与问题的修复,而缺失了对整体架构的一个思考。 作为一个 Android 开发工程师,平时工作是利用面向对象的编程语言 Java 进行项目开发,同时在近日刚完成了一次项目重构,对此我有了架构上面的一些思考,其中最基础的就…
Java深拷贝和浅拷贝
对象拷贝(Object Copy)就是将一个对象的属性拷贝到另一个有着相同类类型的对象中去。在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用对象的部分或全部数据。 Java中有三种类型的对象拷贝:浅拷贝(Shallow Copy)、深拷贝(Deep Copy)、延迟…
浅拷贝与深拷贝
浅拷贝是创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址 ,所以如果其中一个对象改变了这个地址,就会影响到另一个对象。 深拷贝是将一个对象从内存中完整的拷贝一份出来,从堆内存中开辟一个新…
ArrayList的扩容机制
ArrayList有多个不同的构造函数,不同的构造函数的初始容量是不同的。快速看一下ArrayList源码里关于元素存放的几个私有属性: ArrayList有三个构造方法,不同的构造方法的容量是不一样的,具体可以查看JDK 源码。 如果传入初始容量,会判断这个传入的值,如果大于…
ThreadLocal就是这么简单
今天要研究的是ThreadLocal,这个我在一年前学习JavaWeb基础的时候接触过一次,当时在baidu搜出来的第一篇博文ThreadLocal,在评论下很多开发者认为那博主理解错误,给出了很多有关的链接来指正(可原博主可能没上博客了,一直没做修改)。我也去学习了一番,可惜…
Java8新特性,你应该了解这些!
对于Java开发者来说,Java8的版本显然是一个具有里程碑意义的版本,蕴含了许多令人激动的新特性,如果能利用好这些新特性,能够大大提升我们的开发效率。Java8的函数式编程能够大大减少代码量和便于维护,同时,还有一些跟并发相关的功能。开发中常用到的新特性如下: 1. 接口的默…