随笔分类 - JAVA基础
摘要:LinkedList继承于AbstractSequentialList的双向链表,实现List接口,因此也可以对其进行队列操作,它也实现了Deque接口,所以LinkedList也可当做双端队列使用,还有LinkedList是非同步的。由于LinkedList的底层是双向链表,因此其顺序访问的效率非
阅读全文
posted @ 2021-01-23 17:06
鄙人取个名字好难
摘要:基于数组实现,是一个动态数组,其容量能自动增长。 ArrayList不是线程安全的,建议在单线程中使用,多线程可以选择Vector或CopyOnWriteArrayList。 实现了RandomAccess接口,可以通过下标序号进行快速访问。 实现了Cloneable接口,能被克隆。 实现了Seri
阅读全文
posted @ 2021-01-22 22:56
鄙人取个名字好难
摘要:List是Collection三大直接子接口之一,其中的数据可以通过位置检索,用户可以在指定位置插入数据。List的数据可以为空,可以重复。 List Collection主要提供一些通用的方法,而List则针对线性表的结构,提供了对位置以及子表的操作。特有方法如下: public interfac
阅读全文
posted @ 2021-01-22 16:36
鄙人取个名字好难
摘要:Collection Collection是List、Queue和Set的超集,它直接继承于Iterable,也就是所有的Collection集合类都支持for-each循环。 public interface Collection<E> extends Iterable<E> { //返回集合的长
阅读全文
posted @ 2021-01-22 15:11
鄙人取个名字好难
摘要:当想要遍历集合时,Java为我们提供了多种选择,通常有以下三种写法: for循环 for循环,就是根据下标来获取元素,这个特性与数组十分吻合。 for (int i = 0, len = strings.size(); i < len; i++) { System.out.println(strin
阅读全文
posted @ 2020-11-25 17:29
鄙人取个名字好难
摘要:基本概念 树(Tree)是n(n≥0) 个结点的有限集。n=0 时称为空树。在任意一棵非空树中: 1. 有且仅有一个特定的称为根(Root)的结点; 2. 当n>1 时,其余结点可分为m (m>0) 个互不相交的有限集T1 、T2、……、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubT
阅读全文
posted @ 2020-11-24 15:49
鄙人取个名字好难
摘要:无论是数组还是链表,其对数据的查询表现都比较无力,要想知道一个元素是否在数组或链表中,只能从前向后挨个对比。出现这个问题的根源在于,没有办法直接根据一个元素找到它存储的位置,而哈希表就是解决查询问题的一种方案。 哈希表与Hash函数 哈希表就是通过关键字来获取数据的一种数据结构,它通过把关键字映射为
阅读全文
posted @ 2020-11-24 15:03
鄙人取个名字好难
摘要:数组 数组在内存中是一段连续的存储单元,每个数据依次放在每个单元中。 创建一个数组,必须声明其长度,以在内存中寻找合适的一段连续存储单元。这也意味着数组的大小是固定的,我们无法动态调整其大小。 想要获取数组中第i个元素,其时间复杂度是 O(1),因为可以根据其地址直接找到它。同理修改也是。 数组对查
阅读全文
posted @ 2020-11-23 15:06
鄙人取个名字好难
摘要:数组 数组在内存中占据一段连续的内存,所有的数据在内存中连续排列。它的大小是固定的,这一特性使得数组对于插入操作并不友好,分析ArrayList时就会看到这种操作的复杂。但数组对于位置的访问是极其友好的,它支持所谓RandomAccess特性,这使得基于位置的操作可以迅速完成,其时间复杂度为O(1)
阅读全文
posted @ 2020-11-23 14:10
鄙人取个名字好难
摘要:单字符匹配 字符 作用 描述 . 任意字符匹配 \. 匹配除换行符 \n 之外的任何单字符 例如a.c可以匹配"abc",但不能匹配"ac"、"a&&c" s 空格字符匹配 \s 匹配一个空格字符,包括空格、制表符、换页符等等,等价于 [ \f\n\r\t\v] 例如 a\sc 可以匹配"a c",
阅读全文
posted @ 2020-05-17 16:13
鄙人取个名字好难
摘要:注解分类 Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以
阅读全文
posted @ 2020-05-12 22:19
鄙人取个名字好难
摘要:1.反射概念 Java中的反射机制是指在运行状态中,对于任意一个类,能够动态获取这个类中的属性和方法;对于任意一个对象,都能够任意调用它的属性和方法。这种动态获取类的信息以及动态调用对象方法的功能称为Java的反射机制。 2.反射的实现方式 方法一:直接通过一个class的静态变量class获取 C
阅读全文
posted @ 2020-05-11 00:02
鄙人取个名字好难
摘要:语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。 语法糖的存在主要是方便开发人员使用。但其实
阅读全文
posted @ 2020-05-05 18:23
鄙人取个名字好难
摘要:线程安全 当多个线程同时访问一个对象时,如果不考虑这些线程在运行时环境下的调度和交替执行,也不需要额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的。 按照线程安全的强弱排序,java语言中各种操作共享的数据分为以下五类:不可变,绝对线
阅读全文
posted @ 2020-05-04 15:30
鄙人取个名字好难
摘要:泛型定义 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。 一些常用的泛型类型变量: E:元素(Element
阅读全文
posted @ 2020-04-25 21:28
鄙人取个名字好难
摘要:1.概述 在 Java 虚拟机规范中制定了虚拟机字节码执行引擎的概念模型。在不同的虚拟机实现里面,执行引擎在执行 Java 代码的时候可能会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备,甚至还可能会包含几个不同级别的编译器执行引擎。但从外观上看起来
阅读全文
posted @ 2020-04-19 22:41
鄙人取个名字好难
摘要:一 概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化。最终形成可以被虚拟机直接使用的java类型的过程就是虚拟机的类加载机制 二 类加载的时机 类从被加载到虚拟机内存到卸出内存为止,整个生命周期如下图所示: 加载,验证,准备,初始化和卸载这5个阶段的顺序是确定
阅读全文
posted @ 2020-04-11 23:59
鄙人取个名字好难
摘要:1.Visualvm兼容范围与插件安装 Visualvm基于NetBeans平台开发工具,具备通过插件扩展功能的能力。有了插件扩展功能,Visualvm可以做到: 显示虚拟机进程以及进程的的配置,环境信息(jps,jinfo) 监视应用存储的处理器,垃圾收集,堆,方法区以及线程的信息(jstat,j
阅读全文
posted @ 2020-04-05 22:34
鄙人取个名字好难
摘要:1.JConsole简介 Jconsole(Java Monitoring and Management Console)是一款基于JMX(Java Management Extensions)的可视化监视,管理工具。它的主要功能是通过JMX的MBean(ManagedBean)对系统进行信息收集和
阅读全文
posted @ 2020-04-05 11:47
鄙人取个名字好难
摘要:1.JHSDB简介 JHSDB是一款基于服务性代理实现的进程外调试工具。服务性代理是HotSpot虚拟机中一组用于映射Java虚拟机运行信息的,主要基于Java语言实现的API集合。 2.JHSDB启动 2.1 启动示例代码 package com.ryj.hotspot; import java.
阅读全文
posted @ 2020-04-04 13:48
鄙人取个名字好难

浙公网安备 33010602011771号