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

相关文章
|
24天前
|
存储 Java
Java中的基本数据类型有哪些?它们的大小和取值范围是多少?
Java基础数据类型:4种整型(byte[-128,127],short[-32,768,32,767]),2种浮点(float,double),1种字符(char,Unicode),1种布尔(true,false)。
17 0
|
2月前
|
Java
JAVA基本数据类型输入输出流
JAVA基本数据类型输入输出流
16 0
|
5天前
|
存储 Java 程序员
Java中的基本数据类型有哪些?
【4月更文挑战第30天】Java中的基本数据类型有哪些?
11 1
|
6天前
|
Java
【Java探索之旅】数据类型与变量 字面常量 整型变量
【Java探索之旅】数据类型与变量 字面常量 整型变量
18 0
|
6天前
|
存储 Java C语言
【Java探索之旅】数据类型与变量 浮点型,字符型,布尔型,字符串型
【Java探索之旅】数据类型与变量 浮点型,字符型,布尔型,字符串型
14 0
|
6天前
|
存储 Java 开发者
JAVA基本数据类型
JAVA基本数据类型
13 1
|
7天前
|
存储 Java
Java语言--->数据类型转化以及运算符
本文讲述了Java中的基本数据类型转换和运算符。在转换中,布尔型除外的8种类型可通过默认或强制转换相互转化,如`byte->short->int->long->float->double`。默认转换发生在不同类型运算时,系统会转为更大容量类型。强制转换可能引起精度损失或溢出。运算符包括算术(如+可做加法或字符串拼接)、比较、逻辑和赋值运算符。比较运算符如`==`、`<`等产生`boolean`结果,逻辑运算符`&&`、`||`具有短路效应。赋值运算符如`+=`简化了赋值过程。运算符的优先级也进行了简要说明。
|
8天前
|
Java
Java数据类型
Java数据类型
|
10天前
|
Java
【java常用】数据类型转换
【java常用】数据类型转换
22 1
|
12天前
|
存储 缓存 Java
春眠不觉晓,Java数据类型知多少?基础牢不牢看完本文就有数了
我们知道Java是面向对象的静态型编程语言,在Java的世界里万物皆对象。但我认为是万物皆数据,世界由各种各样数据构建起来,我们通过程序去实现数据的增删改查、转入转出、加减乘除等等,不同语言的实现方式殊途同归。
25 3