一、强类型语言
强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。
java、.NET、C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。
与其相对应的是弱类型语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
二、弱类型语言
弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。弱类型语言包括vb 、PHP、javascript等语言。
举个例子:
var A =5;
var B = "5";
SumResult = A +B;
MinResult = A -B;
输入SumResult的答案不是10,而是55,再次是将A的类型转化为了字符串,然后进行拼接。输入MinResult的答案是0,是将B的类型转化为了数字,然后进行减法。
三、数据类型
八种基本数据类型:byte、short、int、long、float、double、boolean、char。
概念
byte
8位、有符号的以二进制补码表示的整数
最小值 :-128(-2^7)
最大值:127(2^7-1)
默认值: 0
对应包装类:Byte
short
16位、有符号的以二进制补码表示的整数
最小值: -32768(-2^15)
最大值: 32767(2^15 - 1)
默认值: 0
对应包装类:Short
int
32位、有符号的以二进制补码表示的整数
最小值 : -2,147,483,648(-2^31)
最大值: 2,147,483,647(2^31 - 1)
默认值: 0
对应包装类:Integer
long
64位、有符号的以二进制补码表示的整数
最小值: -9,223,372,036,854,775,808(-2^63)
最大值:9,223,372,036,854,775,807(2^63 -1)
默认值: 0
对应的包装类:Long
float
单精度、32位、符合IEEE 754标准的浮点数
float 在储存大型浮点数组的时候可节省内存空间
浮点数不能用来表示精确的值,如货币
默认值: 0.0f
对应的包装类:Float
double
双精度、64位、符合IEEE 754标准的浮点数
浮点数的默认类型为double类型
double类型同样不能表示精确的值,如货币
默认值: 0.0d
对应的包装类:Double
char
char类型是一个单一的 16 位 Unicode 字符
最小值:\u0000(即为0)
最大值:\uffff(即为65,535)
char 数据类型可以储存任何字符
对应的包装类:Character
boolean
boolean数据类型表示一位的信息
只有两个取值:true 和 false
这种类型只作为一种标志来记录 true/false 情况
对应的包装类:Boolean
四、引用类型
JDK1.2 之前,一个对象只有“已被引用”和"未被引用"两种状态,这将无法描述某些特殊情况下的对象,比如,当内存充足时需要保留,而内存紧张时才需要被抛弃的一类对象。在 JDK.1.2 之后,Java 对引用的概念进行了扩充,将引用分为了:强引用(Strong Reference)、软引用(SoftReference)、弱引用(Weak Reference)、虚引用(Phantom Reference)4 种,这 4 种引用的强度依次减弱。