![](https://img-blog.csdnimg.cn/20210508012022877.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 89
Java基础
一直不懂
笔记
展开
-
【Java基础】Spliterator
Spliterator接口是1.8新加的不包含重复元素的集合。更正式地说,集合不包含元素对e1和e2,使得e1.equals(e2)和至多一个null元素。字面意思可分割的迭代器,不同以往的iterator需要顺序迭代,Spliterator可以分割为若干个小的迭代器进行并行操作,既可以实现多线程操作提高效率,又可以避免普通迭代器的fail-fast机制所带来的异常。Spliterator可以配合1.8新加的Stream进行并行流的实现,大大提高处理效率。我们先看Spliterator接口的几个方法,然后转载 2021-06-06 15:27:09 · 3106 阅读 · 0 评论 -
深入浅出MappedByteBuffer
前言java io操作中通常采用BufferedReader,BufferedInputStream等带缓冲的IO类处理大文件,不过java nio中引入了一种基于MappedByteBuffer操作大文件的方式,其读写性能极高,本文会介绍其性能如此高的内部实现原理。内存管理在深入MappedByteBuffer之前,先看看计算机内存管理的几个术语:MMC:CPU的内存管理单元。物理内存:即内存条的内存空间。虚拟内存:计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个转载 2020-06-14 14:43:41 · 822 阅读 · 0 评论 -
【Java基础】Java char 型了解一下
Java 中 char 型,两字节,16位,字面量用单引号扩起来,例如 ‘A’ 是编码值为 65 所对应的字符常量。 ‘A’ 与 “A” 不同,后者是包含一个字符 A 的字符串。所以 char 型有什么特别的地方呢?Talk is cheap, show you my code!public class Demo{ public static void main(String... args){ String str = " "; System.out.print转载 2021-01-18 14:47:34 · 3682 阅读 · 0 评论 -
Java方法的参数是按值传递还是按引用传递?
当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么这里到底是「按值传递」还是「按引用传递」? 答:是按值传递。Java 语言的参数传递只有「按值传递」。当一个实例对象作为参数被传递到方法中时,参数的值就是该对象的引用的一个副本。指向同一个对象,对象的内容可以在被调用的方法内改变,但对象的引用(不是引用的副本) 是永远不会改变的。Java 的参数传递,不管是基本数...转载 2019-06-22 23:25:59 · 496 阅读 · 0 评论 -
Java中的String有没有长度限制?
String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西容易被忽略的。就如本文我们要讨论的问题:Java中的String有没有长度限制?这个问题要分两个阶段看,分别是编译期和运行期。不同的时期限制不一样。1、编译期首先,我们先来合理的推断一下,当我们在代码中使用String s = "";的形式...转载 2019-08-14 13:56:08 · 522 阅读 · 0 评论 -
CompletableFuture -- 如何构建异步应用
什么是Future 接口很多场景下,我们想去获取线程运行的结果,而通常使用execute方法去提交任务是无法获得结果的,这时候我们常常会改用submit方法去提交,以便获得线程运行的结果。而submit方法返回的就是Future,一个未来对象。 使用future.get() 方法去获取线程执行结果,包括如果出现异常,也会随get方法抛出。Future 接口的缺陷当我们使用future.get()方法去取得线程执行结果时,要知道get方法是阻塞的,也就是说为了拿到结果,当主线程执行到get()方法,当转载 2020-12-01 15:43:54 · 341 阅读 · 0 评论 -
JAVA Instrumentation
什么是Instrumentation?java Instrumentation指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序。这种监测和协助包括但不限于获取JVM运行时状态,替换和修改类定义等。 Java SE5中使用JVM TI替代了JVM PI和JVM DI。提供一套代理机制,支持独立于JVM应用程序之外的程序以代理的方式连接和访问JVM。java.lang.instrument是在JVM TI的基础上提供的Java版本的实现。 Instrumentatio转载 2020-09-18 16:42:41 · 3613 阅读 · 1 评论 -
synthetic Java合成类型
Synthetic 看Class源码的时候,看到有个关键字Synthetic以及isSynthetic()方法,遂有兴趣查阅了一番。 一开始以为,就是复合类型(引用类型),也就是非基本类型,可后来看到Java语言规范的描述(以及写代码测试),才知道不是,但看了许久,也不知道具体:Any constructs introduced by a Java compiler that do ...转载 2019-08-11 11:21:50 · 864 阅读 · 0 评论 -
【Java基础】强引用,软引用,弱引用,虚引用
1、强引用在程序代码中普遍存在,类似Object obj = new Object()这类的引用,只要强引用还存在,当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。垃圾收集器永远不会回收掉被引用的对象.例子1: 强引用先解释finalize()方法: 每一个对象的finalize()...转载 2019-06-22 22:49:44 · 216 阅读 · 0 评论 -
JMX的使用
一、JMX的定义 JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。这是官方文档上的定义,我看过很多次也无法很好的理解。我个人的理解是JMX让程序有被管理的功能,例如你开发一个WEB网站,它是在24小时不间断运行,那么你肯定会对网站进行监控,如...转载 2019-01-09 00:45:31 · 2070 阅读 · 0 评论 -
【Java基础】bridge method(桥接方法)
在看spring-mvc的源码的时候,看到在解析handler方法时,有关于获取桥接方法代码,不明白什么是桥接方法,经过查找资料,终于理解了什么是桥接方法。什么是桥接方法桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法。我们可以通过Method.isBridge()方法来判断一个方法是否是桥接方法,在字节码中桥接方...转载 2018-07-12 10:52:53 · 1040 阅读 · 0 评论 -
【Java基础】synthetic Java合成类型
Synthetic 看Class源码的时候,看到有个关键字Synthetic以及isSynthetic()方法,遂有兴趣查阅了一番。 一开始以为,就是复合类型(引用类型),也就是非基本类型,可后来看到Java语言规范的描述(以及写代码测试),才知道不是,但看了许久,也不知道具体:Any constructs introduced by a Java compiler that do not ...转载 2018-07-11 17:33:22 · 1437 阅读 · 2 评论 -
【Java基础】属性编辑器PropertyEditor
在Spring配置文件里,我们往往通过字面值为Bean各种类型的属性提供设置值:不管是double类型还是int类型,在配置文件中都对应字符串类型的字面值。BeanWrapper填充Bean属性时如何将这个字面值转换为对应的double或int等内部类型呢?我们可以隐约地感觉到一定有一个转换器在其中起作用,这个转换器就是属性编辑器。 “属性编辑器”这个名字可能会让人误以为是一个带用户界面的输入器...转载 2018-05-12 22:03:30 · 13849 阅读 · 0 评论 -
【Java基础】Annotation详解
转自http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annot...转载 2018-05-12 16:25:50 · 442 阅读 · 0 评论 -
【Java基础】Type详解
转自https://blog.csdn.net/gdutxiaoxu/article/details/68926515为什么要写这一系列的博客呢?因为在 Android 开发的过程中, 泛型,反射,注解这些知识进场会用到,几乎所有的框架至少都会用到上面的一两种知识,如 Gson 就用到泛型,反射,注解,Retrofit 也用到泛型,反射,注解 。学好这些知识对我们进阶非常重要,尤其是阅读开源框架源...转载 2018-05-12 14:45:06 · 2053 阅读 · 1 评论