博客 JAVA 拾遗系列之 JAVA 基础 - 语法

JAVA 拾遗系列之 JAVA 基础 - 语法

   数栈君   发表于 2023-11-23 14:11  109  0

浮点数

浮点常量默认为double,要变为float需要在数字末尾加F/f。当然表示double常量的末尾D/d可以省略。
浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数值计算,需要使用BigDecimal类。

import java.math.*;
...

BigDecimal bd=BigDecimal.valueOf(0.1);
bd=bd.subtract(BigDecimal.valueOf(0.1))
//这里可以使用比较运算

BigDecimal bd2=BigDecimal.valueOf(0.1);
BigDecimal bd3=BigDecimal.valueOf(1.0/10.0);
System.out.println(bd2.equals(bd3));
...

字符数据类型

单引号表示char类型,双引号表示String类型。
Unicode范围是从0到65535之间的编码。十六进制从“\u0000”到“\uFFFF”来表示。

char c='\u0061';

boolean类型

值true和false,在内存中占一位,不可以用0或非0替代false和true。

二元运算符的运算规则

整数运算:

如果两个操作数有一个为long,则结果也为long。
没有long时,结果为int。即使操作数全为short,byte结果也是int。

浮点运算:

如果两个操作数有一个为double,则结果为double。
只有两个操作数都是float,则结果才为float。

求余运算

余数的符号与左边操作数相同
如:7%3=1,-7%3=-1,7%-3=1

逻辑运算

非短路运算符:&,|
短路运算符:&&,||

字符串连接

+连接的变量只要有一个是字符串,则按字符串连接处理。
char对于+按照整型加法处理。

java源文件
一个文件中可以定义多个类,但只能有一个类是public的,且public的类名与主文件名同名。

Java的虚拟内存

栈区stack area

(1) 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量,操作数,方法出口等)。
(2) JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数,局部变量等)。
(3) 栈属于线程私有,不能实现线程间的共享。
(4) 栈的存储特性:先入后出
(5) 栈由系统自动分配,速度快。栈是一个连续的内存空间。

堆区heap area

(1) 堆用于存储创建好的对象和数组。
(2) JVM只有一个堆,被所有线程共享。
(3) 堆是一个不连续的内存空间,分配灵活,速度慢。

方法区method area

(1) 方法区也叫静态区。JVM只有一个方法区,被所有线程共享。
(2) 方法区实际也是堆,只是用于存储类,常量相关的信息。
(3) 用来存放程序中永远不变或唯一的内容(类信息,静态变量,字符串常量等)。

10. super()
构造方法的第一句就是super(),如果没定义,Java也会在第一句的位置自动加上一个super()。

在构造方法中调用构造方法

必须用this()形式调用。
this()必须是第一句。
this不能用于static方法中。

静态初始化块

static{
...
//只能操作静态方法和静态属性
}

用于对类进行初始化。

上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。

Java中所有的参数传递都是值传递。

java.lang语言核心包不需要导入,默认导入。

静态导入
可以将静态常量,方法等导入,以便直接使用,无需加前缀。

import static java.lang.Math.*;
...
System.out.println(PI);
...

枚举的基本使用

enum EnumName{
枚举体(常量列表)
}

比如:

enum F4{
XUANZANG,XINGZHE,WUJING,WUNENG
}
数组的静态初始化

int[] a1 = new int[]{1, 2, 3, 4, 5, 6};
int[][] a2 = new int[][]{{1, 2, 3}, {1, 2}, {3, 4, 6}, {4}};
int[][][] a3 = new int[][][]{{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}}, {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}}, {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}}};
Object[] dragon2={3,"瓦塔诺",16,"登龙剑"};


参考资料

https://www.sxt.cn/Java_jQuery_in_action/History_Direction.html
————————————————
版权声明:本文为CSDN博主「beeworkshop」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/beeworkshop/article/details/103223829

免责申明:

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack



0条评论
上一篇:Annotation In Java
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群