![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 77
mossGao
性格开朗,热爱编程,善于与人沟通,对开源技术有极大热情。
展开
-
JVM数据结构一览及分析
JVM整体数据结构原创 2022-12-22 09:17:24 · 423 阅读 · 0 评论 -
多线程生产者、消费者模式中,如何停止消费者
多线程生产者、消费者模式中,如何停止消费者 ?多生产者情况下对“毒丸”策略的应用生产者、消费者模式是多线程中的经典问题。通过中间的缓冲队列,使得生产者和消费者的速度可以相互调节。发散:一个主线程控制多个子线程,多个主线程控制多个子线程(countDownLunch使用理解)对于比较常见的单生产者、多消费者的情况,主要有以下两种策略: 通过volatile boolean prod...原创 2020-03-27 16:48:08 · 2873 阅读 · 1 评论 -
jdk8 Optional 的正确姿势
我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了 Optional<User> user = ...... if (user.isPresent()) { return u...转载 2018-09-28 18:01:44 · 477 阅读 · 0 评论 -
web项目实行自定义banner
springboot中支持自定义banner,只要在resource下放置一个banner.txt的文件,里面输出一些自定义信息即可,那如果在传统的web项目中如何实现,自定义banner呢? 其实用监听器即可简单实现,废话不多说,直接上代码:web.xml中配置监听器:<listener> <listener-class>com.xx.xx.*.xx.My...原创 2018-09-28 17:45:34 · 1627 阅读 · 0 评论 -
InheritableThreadLocal 实现原理
介绍 InheritableThreadLocal 之前,假设对 ThreadLocal 已经有了一定的理解,比如基本概念,原理,如果没有,可以自行百度java多线程 ThreadLocal了解原理。这里再复习下 ThreadLocal 的原理,因为会对 InheritableThreadLocal 的理解 有重大的帮助:每个线程都有一个 ThreadLocalMap 类型的 thread...原创 2018-08-24 17:37:42 · 316 阅读 · 0 评论 -
jdk8 Optional 的正确姿势
我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了Optional<User> user = ......if (user.isPresent()) {return user.getOrders();} els...转载 2018-05-03 17:39:57 · 182 阅读 · 0 评论 -
int与Integer的区别
1 int与Integer的基本使用对比(1)Integer是int的包装类;int是基本数据类型; (2)Integer变量必须实例化后才能使用;int变量不需要; (3)Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ; (4)Integer的默认值是null;int的默认值是0。2 int与Integer的深入对比(1)由于Integer变量实际上是...转载 2018-05-03 17:11:47 · 168 阅读 · 0 评论 -
java反射与动态代理
一、反射JAVA反射机制定义: JAVA反射机制是java程序在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 反射就是把Java类中的各种成分映射成相应的Java类。Java反射机制主要提供了以下功能: 1、在运行时判断任意一个对象所属的类;2、在运...原创 2018-05-03 17:10:18 · 152 阅读 · 0 评论 -
Java强引用、软引用、弱引用、虚引用(幻象引用)详解
一、概述:众所周知,Java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就...转载 2018-05-03 17:07:38 · 4180 阅读 · 0 评论 -
exception 和 error的区别
Exception:是程序本身可以处理的异常Error:是程序无法处理的错误,这些错误标识故障发生于虚拟机自身或者发生在虚拟机试图执行应用时,一般不需要程序处理,例如:内存空间不足,栈溢出检查异常(编译器要求必须处置的异常):除了Error,其他的Exception类及其子类都属于可查异常,这种异常的特点是java编译器会检查他,也就是是说,当程序中出现此类异常的时候,要么try-catch捕获,...原创 2018-05-03 17:03:08 · 6164 阅读 · 0 评论 -
Java的解释执行是先全部解释完后再执行还是边解释边执行
它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。既然Ja...转载 2018-05-03 17:01:08 · 3443 阅读 · 0 评论