lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读

随笔分类 -  corejava-高级应用

摘要:Java中十进制二进制相互转换的方法 在计算机中,数字的表示方式有多种,其中最常见的两种是十进制和二进制。十进制是我们日常生活中最熟悉的数制,它有10个数字符号,从0到9。二进制是计算机内部使用的数制,它只有两个数字符号,0和1。 在Java中,有时我们需要在十进制和二进制之间进行转换,例如在处理位 阅读全文
posted @ 2023-07-19 19:07 白露~ 阅读(4716) 评论(0) 推荐(1) 编辑

摘要:Java字符串按字符排序的方法 字符串排序是一种常见的编程需求,它可以让我们按照一定的规则对字符串进行比较和排列。在Java中,有多种方法可以实现字符串按字符排序,本文将介绍四种常用的方法,并给出相应的示例代码。 1. 使用String类的compareTo()方法 String类提供了一个comp 阅读全文
posted @ 2023-07-14 22:09 白露~ 阅读(19041) 评论(0) 推荐(0) 编辑

摘要:被volatile修饰的变量在编译成字节码文件时会多个lock指令,该指令在执行过程中会生成相应的内存屏障,以此来解决可见性跟重排序的问题。内存屏障的作用:1.在有内存屏障的地方,会禁止指令重排序,即屏障下面的代码不能跟屏障上面的代码交换执行顺序。2.在有内存屏障的地方,线程修改完共享变量以后会马上 阅读全文
posted @ 2023-02-18 11:25 白露~ 阅读(675) 评论(0) 推荐(0) 编辑

摘要:为什么需要AtomicInteger原子操作类? 对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1, 明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题。 测试代码如下: public class 阅读全文
posted @ 2022-12-26 01:13 白露~ 阅读(190) 评论(0) 推荐(0) 编辑

摘要:一. 性能对比 阿里开发手册推荐jdk8使用LongAdder替代AtomicLong 示例代码 题目:热点商品点赞计算器,点赞数加加统计,不要求实时精确。50个线程,每个线程100W次,统计总点赞数 比较synchronized、AtomicInteger、AtomicLong、LongAdder 阅读全文
posted @ 2022-12-25 22:56 白露~ 阅读(67) 评论(0) 推荐(0) 编辑

摘要:1. 概述 AtomicLong通过循环CAS实现原子操作,缺点是当高并发下竞争比较激烈的时候,会出现大量的CAS失败,导致循环CAS次数大大增加,这种自旋是要消耗时间cpu时间片的,会占用大量cpu的时间,降低效率。 那这个问题如何解决呢? JUC给我们提供了一个类,LongAdder, 它的作用 阅读全文
posted @ 2022-12-25 22:49 白露~ 阅读(184) 评论(0) 推荐(0) 编辑

摘要:一、原子累加器我们都知道,原子整型可以在线程安全的前提下做到累加功能,而今天介绍的LongAdder具有更好的性能 我们先来看原子累加器和原子整型做累加的对比使用: private static <T> void demo(Supplier<T> supplier, Consumer<T> acti 阅读全文
posted @ 2022-12-25 22:41 白露~ 阅读(694) 评论(0) 推荐(0) 编辑

摘要:面试官:今天我们来聊聊CAS吧?你对CAS了解多少? 候选者:好,CAS的全称为compare and swap,比较并交换 候选者:虽然翻译过来是「比较并交换」,但它是一个原子性的操作,对应到CPU指令为cmpxchg 面试官:好家伙,CPU指令你都知道? 候选者:这没什么,都是背的。 面试官:… 阅读全文
posted @ 2022-12-25 22:12 白露~ 阅读(106) 评论(0) 推荐(0) 编辑

摘要:目录 CAS简介 CAS思路 CAS使用场景 CAS问题 总结 CAS简介 CAS的英文全称是Compare-And-Swap,意思就是比较并交换,他是原子类的底层原理,同时也是乐观锁的原理,CAS的特点是避免使用互斥锁,当多个线程同时更新同一个变量时,只有一个线程可以更新成功,其他的线程都会更新失 阅读全文
posted @ 2022-12-25 21:59 白露~ 阅读(243) 评论(0) 推荐(0) 编辑

摘要:UncaughtExceptionHandler在 Thread API 中提供了 UncaughtExceptionHandler ,它能检测出某个线程由于未捕获的异常而终结的情况,能有效地防止线程泄漏问题当一个线程由于未捕获异常而退出时, JVM 会把这个事件报告给应用程序提供的 Uncaugh 阅读全文
posted @ 2022-12-25 15:08 白露~ 阅读(203) 评论(0) 推荐(0) 编辑

摘要:1、 runAsync 和 supplyAsync方法 CompletableFuture 提供了四个静态方法来创建一个异步操作。 public static CompletableFuture<Void> runAsync(Runnable runnable) public static Comp 阅读全文
posted @ 2021-08-28 14:25 白露~ 阅读(268) 评论(0) 推荐(0) 编辑

摘要:假如我有一个订单相关的统计接口,需要返回3样数据:今日订单数、今日交易额、总交易额。 一般的我们的做法是串行调用3个函数,把调用返回的结果返回给调用者,这3次调用时串行执行的,如果每个调用耗时1秒的话,3次调用总耗时就是3秒。 这种做法效率非常低,因为3次调用之间无所谓先后顺序,所以采用并行执行效率 阅读全文
posted @ 2021-08-28 10:42 白露~ 阅读(310) 评论(0) 推荐(0) 编辑

摘要:个人认为在自己写接口时,需要返回集合时返回一个空集合,比如mybatis查询如果返回一个集合,结果为空时也会返回一个空集合而不是null。 那么这样有什么好处呢?最大的好处就是调用方不用在判断是否为null,可以直接用,因为不用抛空指针。 当然这也有缺点,如果返回Lists.newArrayList 阅读全文
posted @ 2021-07-15 14:53 白露~ 阅读(3392) 评论(0) 推荐(0) 编辑

摘要:Java开发中经常要对对象进行非空判断以防止出现空指针。大部分同学都喜欢用下面这种方式来进行判断: if (obj!=null){ // 判断不等于空 } if (obj==null){ // 判断等于空 } 这种方式没有什么问题。不过在 Java 7 中专门提供了一个工具类java.util.Ob 阅读全文
posted @ 2021-07-08 11:43 白露~ 阅读(223) 评论(0) 推荐(0) 编辑

摘要:1. 简述JVM关闭通常而言,对于JVM的关闭我们很少去关注,但是了解JVM的关闭能帮我们在JVM关闭时做一些合理的事情。首先JVM的关闭方式可以分为三种: 正常关闭:当最后一个非守护线程结束或者调用了System.exit或者通过其他特定平台的方法关闭(发送SIGINT,SIGTERM信号等)强制 阅读全文
posted @ 2021-04-28 19:08 白露~ 阅读(497) 评论(0) 推荐(0) 编辑

摘要:一. shutdownHook的背景 想象一下,如果你现在刚好在 word 上写需求文档,电脑突然重启。等待开机完成,你可能会发现写了一个小时文档没有保存,就这么没了。。。 一个正在运行 Java 应用如果突然将其停止,影响不止数据丢失,还会造成其他影响。比如: 请求丢失:内存队列中等待执行请求丢失 阅读全文
posted @ 2021-04-28 18:18 白露~ 阅读(1276) 评论(0) 推荐(1) 编辑

摘要:开篇 SPI全称为Service Provider Interface,是一种服务提供机制,比如在现实中我们经常会有这种场景,就是对于一个规范定义方而言(可以理解为一个或多个接口),具体的服务实现方是不可知的(可以理解为对这些接口的实现类),那么在定义这些规范的时候,就需要规范定义方能够通过一定的方 阅读全文
posted @ 2021-04-25 14:22 白露~ 阅读(241) 评论(0) 推荐(0) 编辑

摘要:1.什么是SPI SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。 SPI的作用就是为这些被扩展的API寻找服务实现。 2.SPI和API的使用场景 API (Application Program 阅读全文
posted @ 2021-04-25 13:27 白露~ 阅读(702) 评论(1) 推荐(1) 编辑

摘要:注:该源码分析对应JDK版本为1.8 1 引言 这是【源码笔记】的JDK源码解读的第一篇文章,本篇我们来探究Java的SPI机制的相关源码。 2 什么是SPI机制 那么,什么是SPI机制呢? SPI是Service Provider Interface 的简称,即服务提供者接口的意思。根据字面意思我 阅读全文
posted @ 2021-04-24 18:47 白露~ 阅读(197) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示