JavaSE-基本数据类型

  • 一些基础:
  1. 字节与字符、字节与位;1个字节=8位(bit)(最高位是符号位,0正数1负)bit是电脑记忆体中最小的单位,在二进位电脑系统中,每一bit 可以代表0 或 1 的数位讯号。bps 是 bits per second 的简称。一般数据机及网络通讯的传输速率都是以bps为单位。如56Kbps、100.0Mbps 等等
  2. Float类型的数值都会有后缀F或者f,没有这个后缀的浮点数默认为double类型,当然也可以为浮点数添加后缀D和d;长整数类型有一个后缀L或者小写的l;十六进制有一个前缀0X或者0x;二进制前缀0b或者0B
  3. 从Java7开始,可以为数字字面量添加下划线,比如一百万可以表示为1_000_000,编译器在编译的时候会去除这些下划线
  • 基本数据类型/引用数据类型
  1. 内存使用:基本数据类型直接存放在栈内存里。而引用类型则是,内容存放在堆内存,地址存放在栈内存,访问时通过栈内存的地址找到堆内存的内容
  2. 变量赋值:基本数据类型是直;接把值赋给变量。而引用类型是,把值的地址复制给新变量,通过地址再找到内容
  • 传值的问题

  

  • 基本数据类型(4类8种):整数类型(4种),小数点类型/浮点类型(2种),布尔类型(1种),字符类型(1种)

    整数类型:byte、short、int 、long

    范围与字节的公式:

byte:1个字节,-128-127,(按理说应该是-127-127,因为0有+0和-0的区别,所以多了一个-0,而-0被看成了-128,印度人做的贡献)

short:2个字节,-32768-32767

int:4个字节,-2147483648-2147483647  正好超过了20亿

long:8个字节,-2^63~2^63-1,大概是9*10^18  海量数可以通过字符串或者字符数组来解决

小数类型:float、double

    Float:单精度类型,4个字节,大约有效位数6-7位

             -3.403E38~3.403E38

Double:双精度类型,8个字节,大约有效位数15位

注:

float a=1.3;这个会报错,因为1.3默认为double,高精度转低精度会损失精度。正确的应该是float a=1.3f;Float的第七位数字会产生四舍五入

用于表示溢出和出错情况的三个特殊浮点数值:正无穷大(double.positive_infinity)、负无穷大(double.negative_infinity)、NaN(Double.NaN)以及相应的float类型的常量。其中NaN不是一个数字,不可以用于判定一个变量是否是==NaN,正确的使用方法是double.isNaN(xxxx)返回布尔值

    布尔类型:true和false

    字符类型:char、string

      char:单个字符,2个字节,可以存放汉字;string:多个字符(String不是基本数据类型,而是引用数据类型)

  • 其他:
  1. “A”的Ascii码是65,“a”的Ascii码位97,汉字用的是unicode码
  2. 强制转换:

数据类型可以自动从低精度转换到高精度,高精度到低精度需要强制转换

Int a =(int)1.2;

Int a = (int)1.9; 最后结果里面a均为1,即不管后面,只是截取前面整数部分      

Float a=1.2; //报错,损失精度,因为Java中的小数默认是double类型

Float a =1.2f; //正确

Int a=3;

Int b=a+3.4;//计算机中,先计算a+3.4并且往高精度转,所以得到6.4,但此时并不能存入int类型(加减乘除都会往高精度转)

  3.引用数据类型:数组、类、接口、枚举

  4.未初始化的变量不能拿来直接使用,编译器会报错;变量的初始化和声明可以放在同一行,也就是声明赋值在同一句代码里;利用final指示常量,表示一旦被赋值之后,就不能再更改了,习惯上常量用全大写来表示,如果需要某个常量被一个类的多个方法使用的              话,可以在前面添加static

猜你喜欢

转载自www.cnblogs.com/ThreeJinBlogs/p/8985116.html