文章目录

  • Java的变量与类型
  • 数据类型之间的转换
  • 关于ASCII码


Java的变量与类型

Java变量类型共有两大类

基本数据类型:四类8种

  • 整数型:byte /short /int /long
  • 浮点型:float /double
  • 字符型:char
  • 布尔型:boolean

引用数据类型除了基本类型,都是引用类型

  • 字符串:String
  • 数组、集合、类、接口等等

android java int 可空类型 java中空类型参数名称_默认值

默认值

  • 基本数据类型都有默认值
  • 基本数据类型的数值型默认值是0,如(byte)0,(long)0,(float)0…
  • 基本数据类型的boolean默认值为falsechar默认为空格(控制台输出 " ")
  • 引用类型的默认值为:null

字节总结:

1Byte = 8bit 字节(大写B表示字节,小写b表示位,二进制的0和1)

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

说明:

①bit与字节数,成8倍关系

boolean占1bit,值只有两个true和false

③float类型,需要加f/F(建议使用大写)long类型需要加l/L(建议使用大写)

④int最常用,最大范围21个亿

⑤char类型可以表示一个中文(范围是0-65535中文),当然也可以表示任意一个单个字符 ☆

android java int 可空类型 java中空类型参数名称_java_02


字符可以运算

⑥浮点数都是近似值,不精确(因为十进制无法表示1/3)

⑦long类型虽然占的空间比float多,但无法存储float类型

android java int 可空类型 java中空类型参数名称_默认值_03

android java int 可空类型 java中空类型参数名称_默认值_04

没有赋值的变量,不能直接使用】int a; sout(a); 错误

public static void main(String[] args) {
    int a;
    System.out.println(a); //编译错误
}
//但是 这种情况只是在方法中  必须赋值
public class Demo01 {
    int a;
    public static void main(String[] args) {
        System.out.println(new Demo01().a); 	// 0
    }
}

数据类型之间的转换

①自动转换:(隐式)

特点就是自动完成

范围要求:必须是从小到大,因为精度不丢失

范围排序:byte<short<int<long<float<double

写法:

android java int 可空类型 java中空类型参数名称_默认值_05

②强制转换:(显式)

特点是手动完成

范围要求:从大范围到小范围

写法:

android java int 可空类型 java中空类型参数名称_基本数据类型_06

强转问题之数据溢出:洒了

android java int 可空类型 java中空类型参数名称_java_07

强转问题之精度损失:丢了

android java int 可空类型 java中空类型参数名称_默认值_08

注意事项:boolean类型,不能发生数据类型转换


android java int 可空类型 java中空类型参数名称_java_09

注意事项:byte/short/char 这三种类型都可以发生数学运算,且都会被提升称为int类型,然后再进行运算,如果右侧赋值的数值没有超过范围,编译器将会自动隐含地为我们补上一个(byte)(short)(char)

android java int 可空类型 java中空类型参数名称_赋值_10

android java int 可空类型 java中空类型参数名称_基本数据类型_11

关于ASCII码

0 – 48

A – 65

a – 97

android java int 可空类型 java中空类型参数名称_默认值_12

Unicode发行版:UTF-8、UTF-16、UTF-32

国内市场常用的编码:GBK和UTF-8

GBK和UTF-8区别:GBK一个中文占2个字节,UTF-8一个中文占3个字节

结论:ASCII表只需要记住3个数字:48 -> 0、65 -> A、97 -> a