02 Java语言的基本成分
默认大家都有C语言基础,所以一些东西只是简单的提一下,甚至忽略
基本成分:
- 字符集
- 词法元素
- 标识符和关键字
- 运算符、限届符和分隔符
- 字面量
- 注释
- 数据类型
- 什么是数据类型
- 数据类型的含义
- 预定义数据类型
- 数据类型的实例
- Java类型系统的概述
- Java的基本数据类型
- 什么是数据类型
- 表达式
- 含义
- 计算过程中的类型转换
- 类型兼容赋值
- 自动类型转换
- 表达式的运算顺序
- 语句
- 子程序
一、数据类型
(1) 数据类型定义
- 类型名
- 取值范围
- 操作集合
(2) 数据类型分类
- 预定义数据类型
- 基本数据类型
- 自定义数据类型
-
基本数据类型:如Java的int,cher等,设立目的
- 刻画数据的最基本的成分
- 作为类型构造的最小元素
- 提升运行速度(为了提高整体速度,常用汇编等语言设计实现基本类型)
-
预定义数据类型包括:基本数据类型和Java的类库
-
自定义数据类型:在复杂的应用场景下,预定义数据类型显然不够用,也不够灵活,为了满足用户需要新的数据类型可以自定义,而出现了自定义数据类型。
(3) 数据类型的实例
计算的数据被称为计算量,它是数据的实例。即数据类型的取值范围的一个值。
在命令式程序员范型中,数据存储于内存单元。计算量代表着特定的的内存单元,变量名代就是内存单元的名字,变量值就是内存单元的存储的值。其中变量的取值是可以变化的,但是变量的类型是不可以变化的。
(4) Java数据类型分类
基本数据类型:
- 整型:byte,short,char,int,long
- 浮点型:float,double
引用类型:class,interface,数组
(5) Java引用数据类型
-
堆和栈的关系,堆是给引用类型变量所指向的真实结构类型划分空间的容器,栈是为基本类型划分空间的容器。
-
null 比较特殊,当 Object object = null,注意已经为其分配一个栈内存,但是还没有初始话堆内存(即,堆内存的真实结构没有构造)。
-
int [] a 和 int a[] 是一个意思,但是推荐使用前一个。
-
数组初始化:int [] a = {1, 2, 3},只有在申明的时候可以这么写,其它地方会报错。
-
只有可以被正确被分配空间的声明才有效:
int [] [] a = new int [3][]; int [] [] b = new int [][3]; //无法计算内存分配
-
字符串:Java中,它可以直接看作对象。String是极其使用频繁的引用类型,且极其造成内存泄漏,Java专门设置一个字符串常量池,用于储存(这个池,也是在堆内存中)
String str1 = 'zix'; //查找Java字符串常量池,如果有,则将其地址赋值给str1;如果没有,在常量池中建一个 'zix' String 对象,返回其地址 String str2 = 'zix'; // str1 == str2 => true String str3 = new String('zix') // 在堆内存创建一个String 类型结构对象,返回其地址给str3 // str3 == str2 => false
(3) 表达式
自动类型转换:
- if 和 while 的条件判断,都必须确保其内表达式的最终结构为boolean类型
if(2) { // 编译无法通过 System.print.out('zix') }
- 对byte、short型变量,不管是否存在其他类型,都将自动提升为int型
- 对其它类型,则转换与其他类型最接近的高宽度类型
- byte、short、cahr ==> int ==> long ==> float ==> double
强制类型转换:
(类型) + 表达式
char c = (char)('a' + 1);