整数类型

整数类型是最容易理解的类型!既然我们知道了计算机中的二进制数字是如何表示的,那么我们就可以很轻松的以二进制的形式来表达我们十进制的内容了。

在Java中,整数类型包括以下几个:

  • byte 字节型 (8个bit,也就是1个字节)范围:-128~+127
  • short 短整形(16个bit,也就是2个字节)范围:-32768~+32767
  • int 整形(32个bit,也就是4个字节)最常用的类型!
  • long 长整形(64个bit,也就是8个字节)最后需要添加l或L

long都装不下怎么办?BigInteger!

数字已经达到byte的最大值了,还能加吗?为了便于理解,以4bit为例:

0111 + 0001 = 1000 => -8(你没看错,就是这样!)

整数还能使用8进制、16进制表示:

  • 十进制为15 = 八进制表示为017 = 十六进制表示为 0xF = 二进制表示 1111 (代码里面不能使用二进制!)

字符类型和字符串

在Java中,存在字符类型,它能够代表一个字符:

  • char 字符型(16个bit,也就是2字节,它不带符号!)范围是0 ~ 65535
  • 使用Unicode表示就是:\u0000 ~ \uffff

字符要用单引号扩起来!比如 char c = ‘淦’;
字符其实本质也是数字,但是这些数字通过编码表进行映射,代表了不同的字符,比如字符’A’的ASCII码就是数字65,所以,char类型其实可以转换为上面的整数类型。

Java的char采用Unicode编码表(不是ASCII编码!),Unicode编码表包含ASCII的所有内容,同时还包括了全世界的语言,ASCII只有1字节,而Unicode编码是2字节,能够代表65536种文字,足以包含全世界的文字了!(我们编译出来的字节码文件也是使用Unicode编码的,所以利用这种特性,其实Java支持中文变量名称、方法名称甚至是类名)

既然char只能代表一个字符,那怎么才能包含一句话呢?(关于数组,我们这里先不了解,数组我们放在面向对象章节讲解)

String就是Java中的字符串类型(注意,它是一个类,创建出来的字符串本质是一个对象,不是我们的基本类型)字符串就像它的名字一样,代表一串字符,也就是一句完整的话。

字符串用双引号括起来!比如:String str = “一日三餐没烦恼”;

小数类型

小数类型比较难理解(比较难理解指的是原理,不是使用)首先来看看Java中的小数类型包含哪些:

float:单精度浮点类型,精度是8位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间
double:双精度浮点类型,精度是17位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间
两者处理速度不同,CPU处理float的速度比处理double快。double的精度高,double消耗内存是float的两倍
如果不声明,小数默认是double类型,用float时需要进行强转,或者在小数后加上f

布尔类型

布尔类型(boolean)只有true和false两种值,也就是要么为真,要么为假,布尔类型的变量通常用作流程控制判断语句。(C语言一般使用0表示false,除0以外的所有数都表示true)布尔类型占据的空间大小并未明确定义,而是根据不同的JVM会有不同的实现。