Java基础原理笔记(一)

Java数据类型介绍

本章主要内容

  • 数据类型分类
  • 基本数据类型

数据类型分类

Java语言是强类型(strongly typed)语言,强类型包含两方面的含义:

  • 所有的变量必须先声明、后使用。
  • 指定类型的变量只能接受类型与之匹配的值。

在了解数据类型前先弄懂两个问题:

什么是变量?变量有什么用?

   编程的本质,就是对内存中的数据的访问和修改。程序所用的数据都会保存在内存中,程序员需要一种机制来访问或修改内存中的数据。这种机制就是 变量。每个变量都代表某一小块内存,而且变量是有名字的,程序对变量赋值, 实际上就是把数据装入该变量所代表的内存区的过程
程序读取变量的值, 实际上就是从该变量所代表的内存区中取值的过程变量相当于一个有名称的容器,该容器用于装各种不同类型的数据

Java语言支持的类型分为两种: 基本类型引用类型

基本类型包括Boolean类型和数值类型。数值类型有整数类型和浮点类型。

整数类型包括: byteshortintlongchar

浮点类型包括: floatdouble

注意:char代表字符型,实际上字符型也是一种 整数类型,相当于 无符号整数类型

引用类型包括 类、接口、数组类型,还有一种特殊的 null类型

引用类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针。

数据基本类型

Java中只包含这八种基本类型, 字符串不是基本数据类型,字符串是一个类,即为一个引用数据类型。

整型

int 是最常用的整数类型,因此直接给出一个整数值默认就是int类型。

如果直接将一个较小的整数值(在byte或short类型的表数范围内)赋给一个byte或short变量系统会自动把这个整数值当成byte/short类型来处理。但是使用一个很大的整数,Java不会把它当成long类型处理。

1
2
3
4
//系统不会把99999999999999999当成long类型处理,超出了int范围,引起错误
long bg=99999999999999999;
//应该在巨大整数值后使用L后缀,强制使用long类型
long bg=99999999999999999L;

字符型

字符型值有三种表现形式

  • 通过单个字符指定字符型值,如’A’, ‘1’。
  • 通过转义字符表示特殊字符型值,如’\n’、 ‘\t’。
  • 直接用Unicode值来表示字符型值’\uXXXX’, 其中XXXX代表一个十六进制的整数。

什么是字符集?

  给所有字符的编号组成综合。早期只要一个字节(8位)即可支持256个字符编号,就是ASCII字符集。后来又为所有的书面语言字符进行统一编号,使用2个字节(16位)支持65536个字符,这就是Unicode字符集。

由于计算机底层保存字符时, 实际保存该字符对应的编号,因此char类型的值可直接作为整形值来使用,它相当于一个16位无符号整数,范围是0~65535。可以参与数学运算。

用法

1
2
3
4
5
6
7
8
9
10
11
public class CharTest
{
public static void main(String[] args)
{
char xiang= '\u9999';
//将输出'香'字
System.out.println(xiang);
//直接把一个0~65535内的int整数赋给一个char变量
char a = 12;
}
}

浮点型

浮点型有两种: float、double

它们有固定的表数范围和字段长度,字段长度和表数范围与机器无关,遵循IEEE754标准。采用 二进制数据的 科学计数法来表示浮点数。

float型

单精度浮点数,占4字节、32位

第1位是符号位,接下来8为表示指数,在接下来23为表示尾数

double型

双精度浮点数,占8字节、64位

第1位是符号位,接下来11为表示指数,在接下来52为表示尾数

十进制形式:5.22、52.0 (必须包含一个小数点,否则会被当成int类型处理)

科学计数法: 5.2e2 或 5.2E2 (即5.2*10^2)

Java中浮点类型默认为double型,如果希望把一个浮点类型值当做float型来处理应在这个浮点类型值后紧跟f或F。

Java中有三个特殊的浮点数值: 正无穷大(POSITIVE_INFINITY)、负无穷大(NEGATIVE_INFINITY)、非数(NaN)

正无穷大和正无穷大相等、负无穷大和负无穷大相等、NaN和谁都不相等(包括和NaN)。 只有浮点数除0才可以得到正负无穷大,因为Java会自动把浮点数运算的0当成0.0来处理,如果一个整数除以0,则会抛出异常:ArithmeticException:/by zero

数值中使用下划线

可以在任意数值中自由的使用下划线,通过下划线可以更直观的分辨数值中包含多少位。如:

1
2
int binVal = 0B1000_0000_0000_0000_0000_0000_0011;
double pi = 3.14_15_926_53_59;

布尔型

布尔型只有一个Boolean类型,用于表示逻辑上的“真”或“假”。值只能是 TRUEFALSE。其他的基本数据类型也不能转化成Boolean类型。

布尔类型主要用于流程控制

  • if条件控制语句
  • while循环控制语句
  • do循环控制语句
  • for循环控制语句

布尔类型的变量还可用在三目运算符(?:)中。