- 要求变量使用要严格符合规定,所有变量都必须先定义后才能使用(安全性高,速度慢)
- Java就是一种强类型语言(还有.net 、Python、C++等语言)
- 强类型语言的严谨性可以避免不必要的错误
- 强类型语言是一种强制类型定义语言,一旦某个变量被定义类型,如果不经过强制转换,则它永远就是该数据类型了。(例如:定义了一个整数,如果不进行强制转换,则不可以将该整数转换为字符串型)
-
弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。
-
弱类型语言包括vb 、PHP、javascript等语言。
-
例如:
var A =5; var B = "5"; SumResult = A +B; MinResult = A -B;
输入SumResult的答案不是10,而是55,再次是将A的类型转化为了字符串,然后进行拼接。输入MinResult的答案是0,是将B的类型转化为了数字,然后进行减法。
无论是强类型语言还是弱类型语言,判别的根本是是否会隐性的进行语言类型转变。强类型语言在速度上略逊于弱类型语言,但是强类型定义语言带来的严谨性又能避免不必要的错误。
Java的数据类型分为两大类 基本数据类型- 整形
| 类型 | 字节数 | 数据表示范围 |
|---|---|---|
| buty | 1(8位) | -128~127 |
| short | 2(16位) | -32768~32767 |
| int | 4(32位) | -2147483648~2147483647 |
| long | 8(64位) | -2^64 ~ 2^64 -1 |
- 浮点型
| 类型 | 字节数 | 数据表示范围 |
|---|---|---|
| float | 4(32位) | 10^-64 ~ 10^64 ,7位有效数字 |
| double | 8(64位) | 10^-308 ~ 10^308 ,15位有效数字 |
- 字符型
| 类型 | 字节数 | 数据表示范围 |
|---|---|---|
| char | 2(64位) | 表示一个字符,如(‘a’,‘A’,‘0’,‘家’) |
- 布尔型
| 类型 | 字节数 | 数据表示范围 |
|---|---|---|
| boolean | 1位 | 只有两个值,true与false |
long类型要在数字后面加L
float类型要在数字后面加F(有限,离散,舍入误差,大约数,接近但不等于),最好完全不使用浮点型进行比较
引用数据类型- 类
- 接口
- 数组
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
- 低 -----------------------------------------> 高
- byte,short,char -> int -> long -> float -> double
-
运算中,不同类型的数据先转化为同一类型,然后进行运算
-
强制类型转换 :(类型)变量名 高转低才需要强制转换
-
自动类型转换 :低转高,自动转换
-
注意点 :
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换(转换时注意低容量大小范围,防止内存溢出)
- 转换的时候可能存在内存溢出或者精度问题



