整型变量
整型变量又分为不同种类,分别是短整型变量、整型变量和长整型变量。
短整型变量
短整型变量的基本语法格式是:short 变量名 = 初始值;
举个例子:
short a = 0; System.out.println(a);
short占两个字节,所以short类型的取值范围是-2^15~2^15-1,在Java语法中,没有无符号类型,所以统一都是有符号类型。
整型变量
整型变量的基本语法格式是:int 变量名 = 初始值;
例:
int a = 10; System.out.println(a);
在Java中,不管你在多少位的操作系统中,int类型所占的字节都是4个字节,取值范围是-2^31~2^31-1,这也大大体现了Java语言的可移植性强的特点。如果你想计算出int的取值范围,你也可以通过代码来实现:System.out.println(integer.MAX_VALUE) (这计算的是最大取值范围)
System.out.println(integer.MIN_VALUE) (最小取值范围)。
长整型变量
整型变量的基本语法格式是:long 变量名 = 初始值;
例:
long a = 10L; //这里定义一个长整型变量,L表明他是整数(L可以是小写,但不能为1) System.out.println(a);
long占8个字节,取值范围为-2^63~2^63-1,这里也可以用代码来查看long的取值范围,做法跟上面int一样,只是需要把括号里的integer改为Long,我这里就不过多展示了。
这里我们需要注意的是:在C语言中有long long类型,那么在Java中是否也有long long类型呢?答案是没有,这点千万要记住,别搞混了。
浮点类型
浮点类型分为双精度浮点类型和单精度浮点类型。
双精度浮点数
基本语法格式:double 变量名 = 初始值;
例:
double a = 1.0; System.out.println(a);
我们在定义浮点数的时候,记住初始值后面要有小数点,要不然结果后面的小数很可能被舍弃。
我们来看看下面一段代码:
int a = 1; int b = 2; System.out.println(a/b);
结果是不是0.5呢?其实并不是,因为/的两边都是整数,所以得出来的结果也都是整数,也就是说小数部分被舍弃掉了,那么我们要想得到0.5该怎么做呢?这时就轮到我们浮点数发挥作用了:
double a = 1.0; double b = 2.0; System.out.println(a/b);
这样我们就能得到我们想要的0.5,是不是觉得挺神奇的呢?那么我们再来看一段代码,看看这段代码运行的结果又会是什么呢?
double a = 1.1; System.out.println(a*a)
结果会不会是1.21呢?我们来看看执行结果
是不是又觉得很神奇呢?那么为什么又会出现这种情况呢?因为在小数部分中很难像整数那样表达每一个数字,例如:二进制0.1表示0.5,0.01表示0.25,0.001表示0.125,所以浮点数很难做到绝对的准确,可能会存在有点误差。
单精度浮点数
基本格式格式:float a = 1.0f;
有没有发现不同,这个1.0后面为什么要有f呢,因为你如果不带f,它会被认为是双精度浮点数,所以我们在定义单精度浮点数的时候需要注意后面得加上f,防止出现错误。
字符类型变量
基本格式:char 变量名 = 初始值
例:
char ch = 'a'; System.out.println(a);
那么char所占的字节是多少呢?1个字节吗?不不不,跟C语言不一样,在Java中,char类型所占的字节大小是2个字节大小,取值范围是-2^15~2^15,也就是说我们可以将汉字赋值给char类型的变量,例如:
char ch = '爱'; System.out.println(ch);
但是当我们用cmd执行javac的时候可能会出现以下错误:
这是为什么呢?因为Java与一般的执行标准不同,一般按照UTF-8标准,而Java则按照Unicode标准,所以我们在执行Javac的时候需要加上-encoding UTF-8。
字节类型常量
基本格式:byte 变量名 = 初始值;
例:
byte a = 0; System.out.println(a);
字节类型表示的也是整数,它的取值范围是-2^7~2^7-1,字节类型与字符类型是不相干的。
布尔类型变量
基本语法格式:boolean 变量名 = 初始值;
例:
boolean a = true; System.out.println(a);
注意这里的布尔类型的变量只有两种,一种是true,true表示真,一种是false,false表示假。并且布尔类型不能与int类型的值相互转换,1不能表示true,0不能表示false。布尔类型有些JVM的实现是占一个字节,有些是占有个比特位,这个没有明确规定。
字符串类型变量
基本语法格式:String 变量名 = 初始值;
例:
String name = "zhangsan"; System.out.println(name);
""代表字符串。而’‘则代表字符。这里我们也需要加以辨别。
当我们想要在屏幕上打印"a"该怎么做呢?像这样?
String a = "a"; System.out.println(""a"");
这样很显然是行不通的。因为“会跟最近的”相匹配,所以并不能达到我们的目的。那么我们又该怎么做呢?在这里我们需要了解什么是转义符。转义符有很多,其中常见的有以下几种:
所以我们可以这样写:
String a = "a"; System.out.println("\"a\"");
字符串的+操作表示字符串的拼接。
String a = "hello"; String b = "world"; String c = a + b; System.out.println(c);
这段代码的执行结果是helloworld。
那么这一段代码结果是什么呢?
System.out.println("hello"+10+20);
是hello30?不是的答案是hello1020,因为字符串的+结果还是字符串,所以"hello"+10的结果是hello10,然后hello10+20的结果是hello1020。
那么我们要想得到1020hello又该怎么做呢?很简单
System.out.println(10+""+20+"hello");
怎么样学会呢吗?这样以上就是我学到的关于Java数据类型的知识,感谢大家的观看。