Java的数据类型

简介: 在学习一门语言之前,我们不可避免地要知道相关的数据类型,想必在之前大家应该学过C语言吧,Java的数据类型与C语言有很多的相似,但也存在着不同。那么今天我就给大家分享我学习到的关于Java的数据类型。变量分为整型变量、浮点型变量、字符类型变量、字节类型变量、布尔类型变量与字符串类型变量。接下来我将为大家一一介绍。

整型变量


整型变量又分为不同种类,分别是短整型变量、整型变量和长整型变量。


短整型变量


短整型变量的基本语法格式是: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呢?我们来看看执行结果

31.png


是不是又觉得很神奇呢?那么为什么又会出现这种情况呢?因为在小数部分中很难像整数那样表达每一个数字,例如:二进制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的时候可能会出现以下错误:

image.png

这是为什么呢?因为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"");

这样很显然是行不通的。因为“会跟最近的”相匹配,所以并不能达到我们的目的。那么我们又该怎么做呢?在这里我们需要了解什么是转义符。转义符有很多,其中常见的有以下几种:

33.png

所以我们可以这样写:

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数据类型的知识,感谢大家的观看。

相关文章
|
3月前
|
Java
当Java数据类型遇上“爱情”,会擦出怎样的火花?
当Java数据类型遇上“爱情”,会擦出怎样的火花?
55 1
|
2月前
|
Java
java基础(8)数据类型的分类
Java数据类型分为基本数据类型(8种)和引用数据类型。基本类型包括byte, short, int, long, float, double, boolean, char。每种类型有固定占用空间大小,如int占用4字节。字符编码如ASCII和Unicode用于将文字转换为计算机可识别的二进制形式。
73 2
|
3月前
|
Java 程序员
Java数据类型:为什么程序员都爱它?
Java数据类型:为什么程序员都爱它?
54 1
|
3月前
|
存储 Java
Java数据类型:你究竟有多少面孔?
Java数据类型:你究竟有多少面孔?
38 1
|
3月前
|
存储 算法 Java
我与Java数据类型的那场“风花雪月”
我与Java数据类型的那场“风花雪月”
45 0
|
3月前
|
存储 自然语言处理 Java
Java数据类型:为何它如此“撩人”?
Java数据类型:为何它如此“撩人”?
43 0
|
3月前
|
存储 算法 Java
从菜鸟到大神,Java数据类型是如何改变我的人生的?
从菜鸟到大神,Java数据类型是如何改变我的人生的?
32 0
|
14天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
39 4
|
12天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
30 1
|
27天前
|
存储 Java 关系型数据库
[Java]“不同族”基本数据类型间只能“强转”吗?
本文探讨了不同位二进制表示范围的计算方法,重点分析了Java中int和char类型之间的转换规则,以及float与int类型之间的转换特性。通过具体示例说明了显式和隐式转换的条件和限制。
35 0
[Java]“不同族”基本数据类型间只能“强转”吗?
下一篇
无影云桌面