Java基础(二):数据类型

Java基础(二):数据类型

Java语言是强类型语言。要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

一、数据类型分类

1、基本数据类型

整数类型
byte num1 = 10;   //byte占1个字节范围:-128~127
short num2 = 20;  //short占2个字节范围:-32768~32767
int num3 = 30;    //int占4个字节范围:-2147483648~2147483647
long num4 = 40L;   //long占8个字节范围:-9223372036854775808~9223372036854775807

long定义的时候需要在数字的后面加上“L",用来区分long类型

浮点数类型
float num5 = 50.1f;//float占4个字节
double num6 = 60.1;//double占8个字节

float定义的时候需要在数字的后面加上”f“,用来区分float类型

字符类型
char name = 'G';   //char占2个字节
boolean类型
boolean flag = true;//boolean占1个字位

boolean只有两个值,true或false(代表是非)

2、引用类型

类、接口、数组(除八大基本数据类型之外)

3、补充:字节

位(bit):是计算机内部数据存储的最小单位,0000 0000是一个8位二进制数

字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示

1B(byte字节)=8bit(字位)

二、数据类型拓展及面试题目

1、整数类型(进制)

二进制:0b开头

十进制:正常

八进制:0开头

十六进制:0x开头
在这里插入图片描述

2、浮点数类型

面试题:银行业务(钱)怎么表示?

不能使用float或者double类型表示

float num1 = 0.1f;
double num2 = 1.0/10;
System.out.println(num1==num2);
float num3 = 121212121f;
float num4 = num3+1;
System.out.println(num3==num4);

在这里插入图片描述

浮点数表示的字长是有限的且是离散的,并且存在舍入误差,结果只能是一个大约数。最好不要使用浮点数进行比较

银行业务(钱)使用BigDecimal数学工具类表示

3、字符类型

在这里插入图片描述

所有的字符本质是数字。Unicode编码占2字节,最多可表示65536位。97 = a 65 = A 20013 = 中

\u0061是Unicode的标准的表示方式(\u是转义字符)

转义字符:

img

4、布尔值类型

public class Demo01 {
    public static void main(String[] args) {
       boolean flag = true;
       if(flag==true){} //新手程序员
       if(flag){}       //老手程序员
      //两种表示方式相同,表示如果flag为真,则执行***代码
                        //代码原则:精简易读
    }
}

三、数据类型转换

1、转换原理

Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

低------------------------------------------------->高

​ byte,short,char->int->long->float->double

高–>低强制转换;低–>高自动转换。

运算中,不同类型的数据先转化为同一类型,然后进行运算

public class Demo01 {
    public static void main(String[] args) {
       int num1 = 127;
       byte num2 =(byte)num1; //将int类型强制转换为byte类型
       //强制转换:(类型)变量名
       System.out.println(num2);
       double num3 = num1;
       System.out.println(num3);//自动转换
    }
}

在这里插入图片描述

不能对boolean类型进行转换

不能把对象类型转换成不相干的类型

在把高容量转换到低容量的时候强制转换

操作比较大的数的时候,注意溢出问题

2、补充:

①JDK 7新特性:

数字之间可以用下划线分割,输出的时候并不会输出分割线
在这里插入图片描述

②溢出问题

在这里插入图片描述

total 2赋值之前,money和year计算的时候已经发生溢出现象,即使total 2是long类型,也不能避免溢出现象。因此需要在计算过程中,进行强制类型转换。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值