record 的使用场景#假设我们想创建一个不可变的类 Point,它有 x 和 y 的坐标。我们想实例化Point对象,读取它们的字段,并将它们存储在 List 中或在 Map 中作为键值使用。我们可以这样实现 Point 类public class Point { private final int x; private final int y; @Override
说明#Java 9 版本中增强了Jar 包多版本字节码文件格式支持,也就是说在同一个 Jar 包中我们可以包含多个 Java 版本的 class 文件,这样就能做到 Jar 包升级到新的 Java 版本时不用强迫使用方为了使用新 Jar 包而升级自己的业务模块 Java 版本,也不用针对不同最低支持 Java 版本提供不同
日常工作中 Map 绝对是我们 Java 程序员高频使用的一种数据结构,那 Map 都有哪些遍历方式呢?这篇文章阿粉就带大家看一下,看看你经常使用的是哪一种。通过 entrySet 来遍历1、通过 for 和 map.entrySet() 来遍历第一种方式是采用 for 和 Map.Entry 的形式来遍历,通过遍历 map.entrySet(
设计模式不是一成不变的,主要是思想,至于形不需要在意,形只是便于理解罢了 3.1、创建型这个类型的模式是专门针对于创建对象的,也就是它的适用机制 换言之:这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象 3.1.1、单例模式定义:保证对象
说明Java SE 9引入了模块系统,模块就是代码和数据的封装体。模块的代码被组织成多个包,每个包中包含Java类和接口;模块的数据则包括资源文件和其他静态信息。在module-info.java文件中,我们可以用新的关键词module来声明一个模块。Java 9将JDK划分为多个模块以支持各种配置。可以使用如
说明Java 9 版本中增强了Jar 包多版本字节码文件格式支持,也就是说在同一个 Jar 包中我们可以包含多个 Java 版本的 class 文件,这样就能做到 Jar 包升级到新的 Java 版本时不用强迫使用方为了使用新 Jar 包而升级自己的业务模块 Java 版本,也不用针对不同最低支持 Java 版本提供不同
JDK13的六大重要特性 JDK13在9月17号全球首发了,Oracle JDK 13通过改善Java SE平台和JDK的性能,稳定性和安全性来提高开发人员的生产力。这次的JDK13包含了5个JEP(Java Enhancement Proposals)和一个Unicode 12.1的支持总共6大主要新特性。下面我们一一详细说明。 支持Unicode 12.1
计算机基础 `冯诺依曼体系结构:控制器、运算器、寄存器、输入设备(Input)、输出设备(Out) CPU(中央处理单元):控制器+运算器 常见语言的发展历程 机器语言:(高1低0电平,由一系列的01组合而成) 汇编语言:(ADD SUB CMP,较为繁琐) 高级语言 C语言(1970年,前身是B语言,面向过程
1. 注释 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到一个注释了,注释就类似于我们上学时候写的笔记,我们看着笔记就知道自己写的什么东西了!在程序中也是如此。我们来看一下Java中的注释怎么写,看以下代码: public class Hel
面向对象编程 OOP 面向对象和面向过程 对于描述复杂的事务,从宏观上需要面向对象的思路,具体到微观,仍然需要面向过程的思路 面向过程——第一步做什么,第二部做什么...... 面向对象——分类的思维模式 类和对象的关系 类——是一种抽象的数据类型,它是对某一类事物的整体描述或定义
Java流程控制 用户交互Scanner 通过Scanner类的next()和nextLine()方法来获取用户输入 读取前可以使用hasNext()和hasNextLine()来判断是否还有输入的值 next:不能得到带有空格的字符串 nextLine:以Enter为结束符,返回的是输入回车前的所有字符,可以获得空白 点击查看代码 Scanne
Java基础语法 注释、标识符、关键字 数据类型 类型转换 变量、常量 运算符 包机制 包的本质就是文件夹 一般利用公司域名倒置作为包名 eg:www.baidu.com-->com.baidu.www 定义包——package,导入包——import JavaDoc 用来生成自己的API文档 @author @version @since(指明需要最早
基本的Dos命令 打开CMD的方式 win+r+输入cmd 管理员方式运行 在系统中的命令提示符右键以管理员方式运行 常用快捷键 盘的切换 D: 查看当前目录下的所有文件 dir 切换目录 cd(change directory) cd /d D: (/d:跨盘切换,参数是右斜杠) cd..(返回上一级) 清理屏幕 cls(clear screen)
初始Java 1.核心机制:垃圾收集器、跨平台 2.JDK、JRE、JVM 数据类型 1.变量和常量 字面常量、字符常量 2.基本数据类型:byte1、short2、int4、long8、float4、double8、char2、boolean1位 引用数据类型:类、接口、数组 3.基本数据类型转换,自动转换、强制转换 运算符 1.算术运算符 2.
史上最全的知识体系脑图,覆盖所有知识点,所有细节,注意事项。 异常处理:包含异常概述与异常体系结构,常见异常,try-catch-finally,throws,手动抛出异常:throw,用户自定义异常类。 更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120214883
史上最全的知识体系脑图,覆盖所有知识点,所有细节,注意事项。 java集合:包含Java集合框架,Collection接口API,Iterator迭代器接口, List接口,Set接口, Map接口,Collections工具类,Collection接口API,Iterator迭代器接口。更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/ar
史上最全的知识体系脑图,覆盖所有知识点,所有细节,注意事项。 泛型:包含为什么要有泛型?使用泛型,泛型的几个重要应用,在集合中使用泛型,自定义泛型类,自定义泛型接口,自定义泛型方法,泛型在继承上的体现,通配符的使用。 更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/art
首先分享一篇关于反射的博文,因为我发现这篇博文写的很详细, 然后开始我的表演: 首先学习反射之前,我要提出疑问: 反射是个什么东西?它是用来做什么的?平时的应用场景有哪些?为啥要用它?它有什么优缺点?它的工作原理是什么?我怎么使用它? 这么多的问题,这是在挑衅啊,既然如此,那么我想起来宫本的
1instanceOf (1)用于比较两个对象是否相等 X instanceOf Y 用于比较X,Y是否存在父子关系 (2)子类转换为父类,可能为丢失子类自己独自拥有的方法 2Static修饰符的补充理解 (1)非静态方法可以去调用静态的方法 (2)静态方法随着类的加载而加载 (3)静态导入代码包 3抽象类
StringBuilder和StringBuffer 1、概述 StringBuilder 是一个可变的字符序列。它继承于AbstractStringBuilder,实现了CharSequence接口。 StringBuffer 也是继承于AbstractStringBuilder的子类;但是,StringBuilder和StringBuffer不同,前者 是非线程安全的,后者是线程安全的。 2、常用方
1、java语言的特点 面向对象、多线程、跨平台、高效、安全可靠、网络编程 2、什么是字节码? 一个java文件,经过javac命令编译之后就变成了字节码的文件,字节码是由十六进制的值组成,jvm以字节为单位进行读取。java之所以可以一次编写,到处运行,主要是无论在什么平台,都可以编译生成字节码
Math类 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。 Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。 【常用值与函数】 Math.PI 记录的圆周率 Math.E 记录e的常量 Math中还有一些类似的常量,都是一些工程数学常用量。 M
包装类 1、包装类介绍 八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。 引用类型数据均继承了 Object 类的特性,要转换为 String 类型(经常有这种需要)时只要简单调用 Object 类中定义的toString()即可,而基本数据类型
深克隆 深克隆:原对象和克隆对象引用地址不同,且对象内的引用成员引用地址也不同 浅克隆的例子稍微修改一下就行 1、Teacher类clone方法修改成如下所示 2、Course类 添加实现接口如下所示 public class Course implements Cloneable 添加本类的clone方法 protected Course clone()
switch 表达式类型只能是byte、short、int、char JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。 case给出的值不允许重复,且只能是字面量,不能是变量。 不要忘记写break,否则会出现穿透现象。 JDK12以上的另一种写法 public void Test() { int num =