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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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知识点拾遗(基本语法)_静态初始化


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,"登龙剑";

参考资料


以上是关于java知识点拾遗(基本语法)的主要内容,如果未能解决你的问题,请参考以下文章

java语法拾遗

java知识点拾遗:)

JAVA拾遗录

Java线程知识拾遗

JavaScript语言精髓之语法概要拾遗(转)

今日拾遗 20200627:java 的动态分派,到底包含哪些知识点?