0
点赞
收藏
分享

微信扫一扫

java知识点拾遗(基本语法)


  1. 浮点数
  • 浮点常量默认为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));
...

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

char c='\u0061';

  1. boolean类型
  • 值true和false,在内存中占一位,不可以用0或非0替代false和true。
  1. 二元运算符的运算规则

整数运算:

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

浮点运算:

  • 如果两个操作数有一个为double,则结果为double。
  • 只有两个操作数都是float,则结果才为float。
  1. 求余运算
  • 余数的符号与左边操作数相同
    如:7%3=1,-7%3=-1,7%-3=1
  1. 逻辑运算
  • 非短路运算符:&,|
  • 短路运算符:&&,||
  1. 字符串连接
  • +连接的变量只要有一个是字符串,则按字符串连接处理。
  • char对于+按照整型加法处理。
  1. java源文件
    一个文件中可以定义多个类,但只能有一个类是public的,且public的类名与主文件名同名。
  2. Java的虚拟内存
  • 栈区stack area

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

  • 堆区heap area

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

  • 方法区method area

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

java知识点拾遗(基本语法)_java


10. super()

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

  1. 在构造方法中调用构造方法
  • 必须用this()形式调用。
  • this()必须是第一句。
  • this不能用于static方法中。
  1. 静态初始化块

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

用于对类进行初始化。

  • 上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。
  1. Java中所有的参数传递都是值传递。
  2. java.lang语言核心包不需要导入,默认导入。
  3. 静态导入
    可以将静态常量,方法等导入,以便直接使用,无需加前缀。

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

  1. 枚举的基本使用

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

比如:

enum F4{
XUANZANG,XINGZHE,WUJING,WUNENG
}

  1. 数组的静态初始化

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​​


举报

相关推荐

0 条评论