
Java 学习
文章平均质量分 95
Java 学习
acc8226
https://feipig.fun
展开
-
00. 认识 Java 语言与安装教程
是由腾讯专业 JVM 技术团队维护开发的,基于 OpenJDK 的,提供长期支持并按季度更新的 JDK 发行版本。GraalVM JDK 是一个高性能的 JDK 发行版,它旨在加速用 Java 和其他 JVM 语言编写的应用程序的执行,同时还为 JavaScript、Python、基于 LLVM 的语言(如 C 和 C++)以及许多其他流行编程语言提供运行时。Java 在 20 多年发展过程中,与时俱进,为了适应时代的需要,经历过两次重大的版本升级,一个是 Java 5,它提供了泛型等重要的功能。原创 2024-03-20 23:21:45 · 846 阅读 · 1 评论 -
01. Java 中的数据类型
在两种格式中,除了表示正常的数,标准还规定了一些特殊的二进制形式表示一些特殊的值,比如负无穷、正无穷、0、NaN(非数值,比如 0 乘以无穷大)。无论是使用 float 还是 double,进行运算时都会出现一些非常令人困惑的现象,比如 0.1f * 0.1的结果看上去应该是 0.01,但实际上,屏幕输出却是 0.010000001,后面多了个 1。自动类型转换就是需要类型之间转换是自动的,不需要采取其他手段,总的原则是小范围数据类型可以自动转换为大范围数据类型,列类型转换顺序如图所示,从左到右是自动。原创 2024-03-20 23:23:05 · 1752 阅读 · 0 评论 -
02. Java 中的关键字、标识符、运算符、分隔符和注释
变量的作用域也称变量的有效范围,它是程序的一个区域,变量在其作用域内可以通过它的名字来引用。作用域也决定系统什么时候为变量创建和清除内存。根据变量在程序声明的位置。成员变量(包含静态和非静态)可添加修饰符,包括访问权限修饰符publicprivateprotected和非访问权限修饰符staticfinalnative等。如果没有给对象属性赋初值,则对象属性的初始值由相应数据类型的默认值决定,如数值型数据的默认值为 0,boolean的默认值为 false,字符串的默认值为 null。原创 2024-03-21 19:57:50 · 941 阅读 · 0 评论 -
03. Java 的流程控制
Java 5 之后推出 foreach 循环语句,使用 for-each 循环不必按照 for 的标准套路编写代码,它是专门为集合和数组的遍历而设计的,注意 foreach 并不是一个关键字。else-if 结构实际上是 if-else 结构的多层嵌套,它明显的特点就是在多个分支中只执行一个语句组,而其他分支都不执行,所以这种结构可以用于有多种判断结果的分支中。注意:do while 循环和 while 循环的区别在于,do while 循环至少会执行一次,而 while 循环则需要满足循环条件才能执行。原创 2024-03-21 19:58:41 · 1091 阅读 · 0 评论 -
04. Java 数组
由于 length 的类型为 int 类型,理论上可以表示的最大长度是 int 类型的最大值。数组类型和基本类型是有明显不同的,一个基本类型变量,内存中只会有一块对应的内存空间。提示 严格意义上说 Java 中并不存在真正意义上的多维数组,可认为依旧是一维数组,不过数组中的元素也是数组,以此类推三维数组就是数组的数组的数组了,例如。声明完成就要对数组进行初始化,数组初始化的过程就是为数组每一个元素分配内存空间。由于 Java 多维数组是数组的数组,因此会衍生出一种不规则数组。原创 2024-03-24 23:14:37 · 841 阅读 · 0 评论 -
05. Java 类与对象
new 用到了 class 文件,所以先会找到 class 文件并加载到内存执行类的 static 代码块在堆内存中开辟空间,分配内存地址在堆内存中建立对象的特有属性,并默认初始化对属性显式初始化构造代码块初始化构造函数初始化将内存地址赋给栈内存变量。所以加载顺序中:属性显示初始化早于构造代码块初始化早于构造函数初始化与之类似,静态属性显示初始化早于静态构造代码块初始化。原创 2024-03-24 23:15:18 · 858 阅读 · 0 评论 -
06. 详解 Java 的 Object 类和常见类
new 每次都会创建一个新对象,而除了 Float 和 Double 外的其他包装类,都会缓存包装类对象,减少需要创建对象的次数,节省空间,提升性能。在前面,我们提到,创建包装类对象时,可以使用静态的 valueOf 方法,也可以直接使用 new,但建议使用 valueOf 方法,为什么呢?包装类与基本类型的转换代码结构是类似的,每种包装类都有一个静态方法 valueOf(),接受基本类型,返回引用类型,也都有一个实例方法 xxxValue() 返回对应的基本类型。方法,可以进行包装对象的比较。原创 2024-03-27 22:58:02 · 1098 阅读 · 0 评论 -
07. 详解 Java 字符串
UTF-16 是一种编码方式,或者叫映射方式,它将编号映射为 2 或 4 个字节,对 BMP 字符,它直接用 2 个字节表示,对于增补字符,使用 4 个字节表示,前两个字节叫高代理项(high surrogate),范围为 0xD800~0xDBFF,后两个字节叫低代理项(low surrogate),范围为 0xDC00~0xDFFF。UTF-8 使用变长字节表示,每个字符使用的字节个数与其 Unicode 编号的大小有关,编号小的使用的字节就少,编号大的使用的字节就多,使用的字节个数为 1~4 不等。原创 2024-03-27 22:59:36 · 857 阅读 · 0 评论 -
08. 详解 Math 类以及大数运算
Java 语言是彻底地面向对象语言,哪怕是进行数学运算也封装到一个类中的,这个类是 java.lang.Math,Math 类是 final 的不能被继承。int compareTo(BigInteger val):将当前对象与参数 val 进行比较,方法返回值是 int,如果返回值是 0,则相等;7. 幂运算:static double pow(double a, double b)`,返回第一个参数的第二个参数次幂的值。原创 2024-03-28 11:08:03 · 464 阅读 · 0 评论 -
09. Java 异常
有些公司为了提高代码的可重用性,自己开发了一些 Java 类库或框架,其中少不了自己编写了一些异常类。实现自定义异常类需要继承 Exception 类或其子类,如果自定义运行时异常类需继承 RuntimeException 类或其子类。我们通过继承 Exception 或者 RuntimeException 来定义一个异常。super();} }super();和很多其他异常类一样,我们没有定义额外的属性和代码,只是继承了Exception,定义了构造方法并调用了父类的构造方法。原创 2024-03-28 11:10:10 · 481 阅读 · 0 评论