文章

java重拾-语法

java重拾-语法

关键字 保留字

abstract

抽象类与抽象方法,使用抽象方法必须为抽象类,属于是半个接口

boolean

bool类型,基本数据类型

byte

8位有符号数,基本数据类型

short

16位有符号数,基本数据类型

int

32位有符号数,基本数据类型

long

64位有符号数,基本数据类型

char

8位字符,基本数据类型

float

单精度浮点,基本数据类型

double

双精度浮点,基本数据类型

enum

枚举类,理解为字符和int的映射

try-catch-finally

异常捕获与处理

extends

类的继承

final

表示该变量的值无被修改,该方法无法被重写,该类无法被继承,但是都可以被调用

如String类就是强制final的,为了实现

  • 字符串常量池
  • 线程安全
  • HashCode不可变

String 对象一旦被创建后就固定不变了,对 String 对象的任何修改都不会影响到原来的字符串对象,都会生成新的字符串对象

implements

实现接口

interface

接口,所有接口函数都必须在继承后实现,除非继承的也是接口

instanceof

类型判定,包括继承类型

native

本地方法,c/c++实现,JNI

null

空指针,不同虚拟机也许有不同的实现,但应当都是c 标准库所定义的0地址

private-protected-public

private 仅本类可见

protected 只要有继承 包含关系都可见

public 都可见

static

静态,固定在内存中,加载即可使用,无需实例化

在实际的项目开发中,通常使用静态代码块来加载配置文件到内存当中

静态内部类

super

this.father

synchronized

同步:方法 变量 代码块

=await

throw

抛出异常

transient

暂态变量,序列化是重置,值置零,引用置null

volatile

禁止优化重排,保证变量操作不会影响依赖,即

操作前读取的命令都执行完成,操作后写入的命令都未执行

数据类型

数据类型 默认值 大小
boolean false 不确定
char '\u0000' 2 字节
byte 0 1 字节
short 0 2 字节
int 0 4 字节
long 0L 8 字节
float 0.0f 4 字节
double 0.0 8 字节

包装器类型

将基本数据类型包装为对象,实现一些默认功能

  • Byte(对应 byte)
  • Short(对应 short)
  • Integer(对应 int)
  • Long(对应 long)
  • Float(对应 float)
  • Double(对应 double)
  • Character(对应 char)
  • Boolean(对应 boolean)

**使用 Integer 类的 parseInt 方法将字符串转换为整数,或使用 Character 类的 isDigit 方法检查字符是否为数字,还有前面提到的 **Character.forDigit() 方法

  • 自动拆装箱

基本数据类型:

  • 1、变量名指向具体的数值。
  • 2、基本数据类型存储在栈上。

引用数据类型:

  • 1、变量名指向的是存储对象的内存地址,在栈上。
  • 2、内存地址指向的对象存储在堆上。

说白了就是指针

堆和栈

数据放堆,引用和基本数据类型放栈

因为堆是真的存东西,栈只是调用函数的时候给你压进去并退出的时候弹出来,这样才知道上一层函数使用的数据

自动类型转换

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

强制类型转换

自己管好数据范围

基本数据类型缓存池

基本数据类型的包装类除了 Float 和 Double 之外,其他六个包装器类(Byte、Short、Integer、Long、Character、Boolean)都有常量缓存池。

  • Byte Short Long Character:-128~127
  • Boolean:true 和 false
public static Integer valueOf(int i) {
    if (i >=IntegerCache.low && i <=IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

运算符

算数

+** - * / %**

关系

== != > >= < <=

& | ^ ~ << >> >>>

逻辑

&& ||

赋值

=

三元

a:b?c

if a then b else c

License:  CC BY 4.0