Java基础整理

发布时间 2023-05-17 09:42:08作者: 种自己的花儿

环境配置

  • 在IDEA创建空项目后,new一个module!
  • 标准配置:jdk1.8 + language 8

注释

  • // 单行注释
  • /* */ 多行注释
  • 文档注释
JavaDoc
/**
*@author
*@description
*/

设置注释的字体和样式,在IDEA中按以下步骤

settings->Editor->color scheme->java->comment


强(弱)类型语言

  1. 强类型语言中,所有的变量必须先经过定义才能够使用该变量;
  2. 弱类型语言中,变量无需定义即可使用

数据类型

  • 整数类

    type

    short

    int (4字节)

    long(8字节):定义该类的时候,必须要在末尾加一个Leg: long num = 30L;

  • 浮点类

    float(4字节)定义该类的时候,必须要在末尾加一个Feg: float num = 30.2F;

    double(8字节)

  • 字符类

    • char (2字节):定义该类的时候,必须使用‘ ’,eg: char ch = 'a';
    • 字符本质上还是数字,其中涉及了Unicode编码问题,a:97,A:65
  • 布尔类

    boolean flag = true;

    boolean flag = false;

数据类型的优先级

byte,short,char -> int ->long ->float ->double

低--------------------------------------------------------------->高

​ 低 -> 高 自动转换

​ 高 -> 低 强制转换

  • 其中,布尔类型不能进行转换
  • 在转换的过程中,存在内存溢出或者精度问题

进制表示

2进制:0b 满2进1 0 1 10

8进制:0 满8进1 0 1 2 3 4 5 6 7 10

16进制:0x 满16进1 0 1 2 3 4 5 6 7 8 9 A B C D E F 10


float型数据的一些注意事项

float a1 = 0.1f;
double a2 = 1.0/10;    
// out:a1与a2不等
float d1 = 231425789248f;
float d2 = d1+1;
// out:d1与d2相等

注意事项:float型数据字长有限,离散,有舍入误差,大约数,接近但不等于

因此要完全避免利用float型数据进行数字比较运算,容易出错!!!尤其是在银行业务中~~


转义字符

  • /t 制表符

  • /n 换行变量作用域问题


变量作用域问题

  • 类变量要加关键字static

  • 类变量不需要初始化,若不初始化,则默认如下

  • 实例变量从属于对象,若不进行初始化,则数值型变量默认为0或者0.0

    布尔型变量默认为false

    除8大基本类型变量之外,其余皆为null

局部变量必须要声明且初始化值

  • final修饰常量,且尽量为大写,eg:final double PI = 3.14;

运算符相加问题

a+b+c+d

  • 只要有long,则结果为long
  • 只要有double,则结果为double
  • 其余皆为int,eg:byte+short->int(经实践)
  • 若既有long,也有double,则为double(经实践)

++问题

  1. a++:执行顺序 b=a;a=a+1;

    执行完a++后,才会执行a=a+1.

    若a++命令不执行,则a为原值.

    也就是说,可以从a的值是否变化来判断a++命令是否运行了.

  2. ++a: 执行顺序 a=a+1;b=a

  3. 快捷键复制:ctrl+d

  4. Java中数学计算乘方:Math.pow()


位运算符

A:0011 1100

B:0000 1101

A & B : 0000 1100 (全1才为1,否则为0)

A | B : 0011 1101 (全0才为0,否则为1)

(抑或)A ^ B : 0011 0001 (相同为0,否则为1)

(非) ~B:1111 0010

》右移运算符:除以2

《左移运算符:乘以2

二进制 8 0000 1000

二进制16 0001 0000 左移1位相当于*2


字符串连接符

int a= 10;
int b=20;
sout(""+a+b);
// 输出值为1020,进行了拼接


sout(a+b+"");
// 输出值为30,不进行拼接