首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java
订阅
红叶君
更多收藏集
微信扫码分享
微信
新浪微博
QQ
20篇文章 · 0订阅
Java虚拟机关闭钩子(Shutdown hook)
Shutdown hook是Jvm关闭的钩子,是通过Runtime#addShutdownHook(Thread hook)方法来实现的,根据api是注解可知它就是一系例的已初始化但尚未执行的线程对象。我们可以通过向Jvm注册一个钩子,实现在程序退出时关闭资源、平滑退出的功能。…
延迟执行与不可变,系统讲解JavaStream数据处理
最近在公司写业务的时候,忽然想不起来Stream中的累加应该怎么写? 无奈只能面向谷歌编程,花费了我宝贵的三分钟之后,学会了,很简单。 自从我用上JDK8以后,Stream就是我最常用的特性
重学Java-一个Java对象到底占多少内存
文章标题提出的问题是”一个对象到底占多少内存“,看似很简单,但想说清楚并不容易,希望本文的探讨能让你有收获。 在开始之前我还是决定先提一个曾经阴魂不散,困扰我很久的问题,了解这个问题的答案有助于我们理解接下来的内容。 在Java中数据类型分为二大类。 Java中基础数据类型有8…
Java中的Type类型详解
参数化类型即我们通常所说的泛型类型,一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类…
源码|使用FutureTask的正确姿势
线程池的实现核心之一是FutureTask。在提交任务时,用户实现的Callable实例task会被包装为FutureTask实例ftask;提交后任务异步执行,无需用户关心;当用户需要时,再调用FutureTask#get()获取结果——或异常。 随之而来的问题是,**如何优…
ThreadLocal的用法以及内部原理
1. ThreadLocal的用途 ThreadLocal它通过为每个线程提供一个独立的变量副本解决了变量并发访问的冲突问题。 场景1:每个线程需要一个独享的对象(通常是工具类,比如:SimpleDateFormat和Random) 我们就可以用ThreadLocal来保存对象…
创建线程那么容易,为什么非要让我使用线程池?(深深深入剖析)
先看我们遇到的问题:我们创建线程的方式很简单,new Thread(() -> {...}),就是因为这么简单粗暴的方式,才带来了致命的问题。首先线程的创建和销毁都是很耗时很浪费性能的操作,你用线程为了什么?为了就是异步,为了就是提升性能。简单的new三五个Thread还好,我…
常用的 Java 工具类之 Guava 使用
上篇我们介绍 Apache 的相关工具类的使用,这次我们介绍 Google 的工具类 Guava。 Guava 为集合类提供相关工具类以及一些集合的新类型,方便我们日常开发。 Lists.newArrayList() 使用静态方法直接创建 List 集合。 但是使用这个类的是需…
基础篇:高并发一瞥,线程和线程池的总结
java线程拥有属于自己的虚拟机栈,当JVM将栈、程序计数器、工作内存等准备好后,会分配一个系统原生线程来执行。Java线程结束,原生线程随之被回收 原生线程初始化完毕,会调Java线程的run方法。当JAVA线程结束时,则释放原生线程和Java线程的所有资源 Runnable…