数据类型和变量

本文详细介绍了Java中的字面常量、数据类型(基本和引用)、变量的语法,包括整形、浮点数、字符、布尔类型以及它们的范围和转换规则。此外,还涵盖了类型转换和类型提升的概念,以及字符串类型及其与其他数据类型之间的转换方法。
摘要由CSDN通过智能技术生成

一.字面常量

在最简单的程序中的

System.out.println("hello");

中的"hello"就是字面常量

常量就是程序运行期间,固定不变的量,比如一年十二个月等

字母常量的分类:

1.字符串常量:由""括起来的,比如”1234"吗,"你好"。

2.整形常量:程序中直接写的数字(注意没用小数点),比如:100,1000。

3.浮点数类型:程序中直接写的小数,比如:3.14,0.49.

4.字符常量:由''括起来的单个字符,比如'A','1'。

5.布偶类型:只有两种true和false

6.空类型:null

这些在Java中都被称为数据类型

二.数据类型

Java中数据类型主要分为两类:基本数据类型和引用数据类型。

基本数据类型有四类八种:

四类:整型,浮点型,字符型以及布尔型

八种:

注:

不论是16位系统还是32位系统,int都占四个字节,long都占八个字节

整形和浮点型都是带有符号的

整形默认为int型,浮点型默认为double

字符串属于引用类型

什么是字节?

字节是计算机中表示空间大小的基本单位

计算机使用二进制表示数据,我们认为八个二进制位(bit)为一个字节(byte)

单位:bit  8-  byte  1024-   kb    1024- gb  1024-tb   1024-pb

三.变量

变量就是可以改变的量,比如人的体重年龄。

1.语法格式

数据类型 变量名=初始值;

2.长整形

long

为了区分int和long类型,一般建议long类型变量后面的初始值后加L或者l(推荐+L)

long A=10L

长整形不管哪个系统下都占8个字节

长整形的表示范围为:-2^63~(2^63)-1

 long的包装类型为Long

最大值和最小值:

3.短整形

short在任何系统下都占两个字节

short的包装类型为Short

4.字节型

byte的包装类型为Byte

5.浮点型变量

1.双精度浮点型double(八个字节)

double b=3.14;

注意:两个int相除结果不会是小数,只有浮点型计算才会出现小数

double的包装类型为Double

double类型的内存布局遵守IEEE 754标准(和C语言一样),尝试使用有限的空间表示可能无限的小数,势必会存在一定的误差,因此浮点数是个近似值,并不是精确值

2.单精度浮点型float

    float num = 1.0f;//写作1.0F也行

float类型在Java中占4个字节,同样遵守IEEE 754标准,由于表示的数据精度范围较小,一般在工程上用到浮点数都考虑double

float的包装类型为Float         

6.字符型变量

char a = '帅';

计算机中的字符本质上是一个整数,在C语言中使用ASCII表示字符,而Java中使用Unicode表示字符,因此一个字符占用两个字节,表示的字符种类更多,包括中文

char的包装类型是Character

7.布尔型变量

常用来表示真假

boolean b=true;
System.out.println(b);

b=false;
System.out.println(b);

注:

boolean类型的变量只有两种取值,true表示真,false表示假。

Java的boolean类型和int不能相互转换,不存在1表示true,0表示false的用法

boolean类型没用明确规定的大小

boolean的包装类型是Boolean

8.类型转换

Java是一个强类型编程语言,当不同类型之间的变量相互赋值的时候,会有较为严格的校验

int a=10;
long b=100L;
b=a;  //可以通过编译
a=b;  //编译失败

在Java中,当参与运算的数据类型不一样时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式)和强制类型转换(显式)

1.自动类型转换(隐式)

代码不需要任何处理,编译时编译器会自动处理。

特点:数据范围小的转为数据范围大的时候会自动进行

System.out.println(1024);  //整形默认情况下是int
System.out.println(3.14);  //浮点型默认情况下是double

2.强制类型转换(显式)

特点:数据范围大的到数据范围小的

int a=10;
long b=100L;
b=a;     //int -> long 数据范围由小到大,隐式转换
a=(int)b;  //long->int  数据范围由大到小,需要强转,否则编译失败
double d=5.12;
a=d; //报错,类型不兼容
a=(int)d  //int没用double表示的数据范围大,需要强转,小数点后全丢弃

byte b1=100;  //100默认为int,没用超过byte范围,隐式转换
byt b2=(byte)257  //157默认为int,超过byte范围,需要显式转换,否则报错

boolean flag=true;
a=flag  //编译失败,类型不兼容

9.类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的

1.int与long之间:int会被提升为long

2.byte与byte的运算

由于计算机的cpu通常是按照4个字节为单位从内存中读写数据,为了硬件上的方便

小于四个字节的类型,会提升为int类型再参与运算

比如

a和b都会变成int,得到的结果也是int

小结:

1.不同类型的数据混合运算,范围小的会提升为范围大的

2.对于short,byte这种比四个字节小的类型,会先提升成四个字节的int再计算

四.字符串类型

Java中使用String类定义字符串类型,比如:

在有些情况下,需要将字符串和数字之间进行转换:

1.int转换成String

int num=10;
//方法一
String str1=num+""; // 这里的+是拼接的意思,就是num拼接上""里面的字符串
//方法二
String str2=String.valueOf(num);

2.String转换成int

String str="100";
int num=integer.parselnt(str);

  • 53
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值