乐字节Java变量与数据类型之三:数据类型与转义字符

大家好,小乐又来了,上一篇:乐字节Java变量与数据类型之二:Java常量与变量,

今天接着讲Java变量与数据类型之三:数据类型与转义字符。

一、数据类型

1、定义

Java是一种强类型语言,针对每种数据都提供了对应的数据类型。
图片描述

Java数据类型

2、分类

A:基本数据类型:4类8种

B:引用数据类型:类,接口,数组。

3、基本数据类型

①整型 占用字节数 比特/位 取值范围

byte(字节型) 1 8位 [-128 , 127]

short(短整型) 2 16位 [-32768,32767]

int (整型 ) 4 32位 [-21亿, 21亿]

long(长整型) 8 64位 很大很大

注意:整数数值默认为int类型,如果需要定义一个long类型的变量,当超出int的范围时,需要在该值后加 l或者L

②浮点型

float(单精度) 4

double(双精度) 8

float有效位是7位,double有效位是14位

注意:浮点数默认为double类型,如果需要定义一个float类型的变量,则数值后需要加 f或者F

③字符型(0~65535)

char(字符型) 2 一个字符能存储一个中文汉字

要求:用 ' '将字符括起来

④逻辑型(布尔型)

boolean(布尔类型) 1位

4、注意:

整数默认是int类型,浮点数默认是double。

长整数要加L或者l,单精度的浮点数要加F或者f。

二、数据类型转换

1、定义

boolean类型不参与转换

2、默认转换

A:从小到大

B:byte,short,char --> int long float double

C:byte,short,char之间是平级的,不相互转换,直接转成int类型参与运算。

3、强制转换

A:从大到小

B:可能会有精度的损失,一般不建议这样使用。

C:格式:

目标数据类型 变量名 = (目标数据类型) (被转换的数据);

4、思考题和面试题:

A:下面两种方式有区别吗?

float f1 = 12.345f;

float f2 = (float)12.345;向下类型转换,浮点数默认是double类型

B:下面的程序有问题吗,如果有,在哪里呢?

byte b1 = 3;

byte b2 = 4;

byte b3 = b1 + b2;

short s1=3;

short s2=3;

short s3=s1+s2;

char c1=3;

char c2=4;

char c3=c1+c2;

byte、short、char在运算时,会自动向上转型为int型,所以返回的结果是int类型,而接收的类型均不是int,由于类型不匹配,所以报错

byte b4 = 3 + 4;

short s=3+4;

常量进行计算后的值,预编译时能够判断其是否超出范围

int a=1;

int b=2;

int c=a+b;

long l1=3l;

long l2=3l;

long l3=l1+l2;

float f1=2.3f;

float f2=2.3f;

float f3=f1+f2;

double d1=3.7;

double d2=3.9;

double d3=d1+d2;

均不会报错,java进行了优化。

C:下面的操作结果是什么呢?

byte b = (byte)130;

D:字符参与运算

是查找ASCII里面的值

'a' 97

'A' 65

'0' 48

空格 32

System.out.println('a');

System.out.println('a' + 1);

E:字符串参与运算

这里其实是字符串的连接

System.out.println("hello"+'a'+1);

System.out.println('a'+1+"hello");

System.out.println("5+5="+5+5);

System.out.println(5+5+"=5+5");

运行结果:helloa1

98hello

5+5=55

10=5+5

三、转义字符

’:代表一个单引号

\:代表一个反斜线字符””

”:代表一个双引号字符

b:退格 ,是将光标移动到当前字符的前一个字符,并不会删除当前字符。

注意:eclipse当中不识别,需要在DOS环境下运行

n:换行,将当前位置移到下一行的开头

r:回车,将当前位置移到本行的本行开头

注意:n、r在eclipse没有区别,需要在DOS环境下运行

t:水平制表位:跳到下一个Tab位置

阅读 190发布于 7月5日
推荐阅读
目录