JAVA八大数据类型与分支结构


前言

Java语言提供了8种基本数据类型。. 分别是 byte、short、int、long、float、double、boolean、char。. String 是对象,不属于基本数据类型. 8种基本数据按类型分可以分为. 4个 整数型:byte、short、int、long. 2个浮点型:float、double. 1个字符类型:char. 1个布尔型:boolean. 八大基本数据类型.


一、java数据类型都有什么?

1.byte–short–int–long–float–double–boolean–char

2.byte:1字节,用来表示-128 - 127之间的整数。赋值的时候可以直接用整数常量赋值。对其包装类也是如此。即 Byte(byte) a = 20;

3.short :2字节,用来表示-2^15 - 2^15-1之间的整数。赋值的时候可以直接用整数常量,对其包装类也是如此。即 Short(short) b = 20;

4.int:4字节,可以表示的数为-2^31 - 2^31-1。整数的默认类型。封装类也如此 。整数相除的时候,会舍弃小数部分。结果也是整数,例如 5/3 = 1;且整数在运算的时候,要注意内存溢出的问题

5.long:8字节,可以表示的数为 -2^63 – 2^63-1。常用来表示int表示不了的整数类型。例如System.currentTimeMills()方法,返回的是1970.1.1到今天所经历的毫秒数。这个数字就是int所不能表达的,必须用long来表达。如果long类型还不能表达你所要的整数,推荐用bigInteger,可以表示任意的整数
long a = 20;是可以的,但是如要使用他的封装类,那么数字后面必须加L/l 例如 Long a = 20L;

long a = 1000000L;

6.float:4字节,由于浮点数的默认类型是double,因此想使用float的时候就要在浮点数后面加f/F。整数后面可以不用加,因为这是强制转化。在封装类Float中,无论是整数还是浮点数,后面都要加f/F

float a = 3.14159F;

7.double:8字节:常用来表示浮点数。默认的浮点数数据类型(Double中也如此)。且在计算机二进制中,无法正确的表示十分之一。所以会出现舍入误差,如果double类也无法达到你所要表示的浮点数,推荐使用BigDecimal来表示,他可以表示任意的浮点数

8.boolean:1个字节:只有两种值,true/flase

9.char:2字节,只能表示0-2^16-1也就是0- 65535的整数。这个值对于Unicode编码。对于世界上所有的字符符号。对char类型和他的包装类Character的赋值如下

char a = 5254;直接使用(0-65535)常量赋值.

char a = ‘A’; 直接使用字符赋值

char a = ‘\u0041’使用Unicode中16进制的格式

二、数据类型转换

1.自动类型转化:从小类型到大类型之间的转化称为自动类型转化,因为大类型肯定可以表示小类型的数据,不会发生精度丧失。编译器会帮我们自动的进行自动类型转化。类型间的大小关系如下。在多种类型的运算中,结果会自动向较大的类型转化。且在三目运算符中,结果也会向较大的数据类型转化,如:
int a = (5 > 4)? 20 : 6.0; 此时a为20.0.因为在三目运算符中有浮点数,因此,结果会自动向大类型转化

2.强制类型转化:从大类型到小类型之间的转化。需要强制转化符。且可能出现精度丧失或者精度溢出的风险。精度丧失指的是小类型无法准确的描述大类型的数据,尤其时浮点数。很可能小数点后面的几个就不见了。精度丧失不会四舍五入。而是直接抹去后面无法表示的内容。例如 int a = (int) 20.56484615;a = 20;
精度溢出是指大类型的数据超出了小类型的容量,此时编译器不会报错,但是结果就不如你意了。例如 int a = (int)1024^4*20; 此时a = 0;

3.int/short/byte/char之间的赋值,有他们独特的规定。也就说说,short/byte/char类型的赋值。如果赋值为一个整数常量,虽然整数常量默认是int,但是也无须进行强制转化。但是如果赋值为一个变量,无论该变量内部是否为整数,都必须进行强制转化。且他们三者在运算的时候,要先自动转化为int之后,再开始运算,也就是说,运算结果都是int。那么这个时候,就必须对这个结果进行强制类型转化才能赋值给byte,char,short他们了

三、分支结构

1.分支结构是什么?
1.1分支结构:程序在运行中,根据不同的条件执行不同的语句。 三种结构: if结构:满足条件时执行语句,不满足则不执行(1条路) if…else结构:满足条件执行语句,不满足则执行另外的语句,例如:

int a = Integer.parseInt(sc.nextLine());
int b = Integer.parseInt(sc.nextLine());

if(a==b){
System.out.println(a+"=="+b);
}else if(a>b){
System.out.println(a+">"+b);
}else{
System.out.println(a+"<"+b);
}

1.2 switch - case结构

switch (/* 变量|表达式 */) {
    case1:
        // 处理方式1;
        break;
    case2:
        // 处理方式2;
        break;
    default:
        // 最终处理方式
        break;

switch case使用注意事项
(1). break关键字作用是用于跳出对应的case选项
(2). break省略之后,执行对应的case选择,会继续运行到下一个break或者大括号结尾终止switch - case运行
(3). 在case选项中不允许出现相同的选择,语法错误!!!
(4). 在switch case语句体中,能够执行的代码有且只能是case之后或者default之后的代码,其他代码都不可以执行!!!
(5). default可以省略,按照自己的业务逻辑需要考虑是否省略default选择,default可以处理用户在输入过程中超出case选项的一些特殊情况


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值