Java是一种强类型语言,因此所有的变量都必须声明类型。Java总共有八种基本数据类型,四种是基本数据类型,两种是浮点类型:一种是布尔类型,一种是字符类型。整数类型只用于处理各种长度的整数计算,浮点类型根据精度可分为double型与float型,布尔型主要用于表示逻辑判断的真假,字符型只能用于表示一个字符,在实际中常被String替代。
1、什么是强类型语言
强类型语言也称为强类型定义语言。变量的使用必须严格定义,所有变量都必须先定义后在使用。Java、python、C++等都是强类型定义的。也就是说,一个变量被指定了某个数据类型,如果不进行强制转换,就永远是那个数据类型了。
eg:一个整数,如果不显式地转换,不能将其视为一个字符串。
对应的弱类型语言,这样的语言数据类型可以被忽略,一个变量可以设置成不同数据类型的值。
eg:Javascript其定义的类型统一为var,代码:
var date = new Date();
var i = 5;
var s = "you"
java 之所以是一种安全性高且稳健的语言?
(1)、他是一种强类型语言。每个变量都有类型,每个表达式都有类型,而且每种类型是严格定义的。
(2)、所有的数值传递,不管是直接还是通过方法调用经由参数传过去的,都要进行类型相容性检查,这样可以有效的防止黑客通过构造方法所不能接受的参数类型导致程序崩溃。
2、整型
整型有四种byte,short,int,long四种类型。这四种类型均可表示正负。
类型 | 内存分配 | 数值范围 |
byte | 1B | -128到127 |
short | 2B | -32768到32767 |
int | 3B | -2 147 483 648到2 147 483 647 |
long | 4B | -9 223 372 036 854 775 808L到 9 223 372 036 854 775 807L |
一个数字20,在Java中,默认为int型,即20;long型必须加上L,即20L;八进制必须加上0,即020,;十六进制必须加上0x,即0x20;
四种数据类型可以由数值范围小的转换到数值范围大的;eg :
int i = 299;
long l = i;
不能由数值范围大的转换为数值范围小的,因为会发生数据截断的风险。
3、浮点型
double型和float型,double是float型精度的2倍。
类型 | 内存分配 | 数值范围 |
float | 4B | +_3.40282347E+38F(约8位) |
double | 4B | 约+-1.797693134862315701+38 |
4、字符型
只有char一种,用单引号括住,双引号在Java中表示String类型数据。Java中字符内部是以Unicode编码,就是采用2B长度的数字来表示一个字符,这意味着Java最多能支持65536个不同的字符。由于char底层也是数字类型,因此它与整形可以相互转化。由转义字符实现。
转义字符 | 对应字符 | Unicode值 |
\b | 退格 | \u0008 |
\t | tab | \u0009 |
\r | Enter | \u000d |
\n | Enter | \u000a |
\'' | 双引号 | \u0022 |
\' | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
布尔型用于逻辑判断,只有true和false两个值。C++中0与整数可以用来表示布尔型。
6、变量
变量是针对常量而言一经声明就不可更改,而变量的值可以在程序中更改。格式:
数据类型 变量名
eg:int i;
double l;
变量名的首字母必须是下划线数字或字母,有意思的是支持Unicode字符,也就是支持中文,不能用关键字命名。如果要快速定义同类型的数据变量,int i,j;这种方式不推荐使用,因为会降低程序的可读性。
还有一些约定的俗称:
变量名首字母最好小写。
如果变量名有多个单词构成,出首个单词之外其余首字母都大写。
除非是通用的简写,变量名取名尽量不要使用简写。
表示固定值时最好全用大写,单词间以下划线连接。
许多程序员为了方便常常将变量名取与类同名,如果要这麽做的话就最好在前面加个a。如:Car aCar。
7、常量
Java没有真正意义上的全局变量,因为Java所有的设计都基于对象,Java所谓的全局变量都基于类中所以声明的static就是实质上的全局变量。
Java中只有static和非static变量。如果需要全局变量如PI,就可以写一个类Math,定义static变量PI,调用Math.PI就行
eg:public static final int RADIUS = 5;
在其他类中直接访问:
方法是:类.静态变量名