03-Little prince's trip to Java-数据类型与运算符

1.标识符

  • 作用:给变量,类和方法命名
  • 规则:

  1>以字母、下划线(“_”)、美元符号(“$”)开头
  2>其他部分由字母、下划线、美元符号、数字的任意组合
  3>对大小写敏感,无长度限制但不可用关键字作为标识符

✦Java关键字

byteshortintlongboolean
charfloatdoubleifelse
dowhileswitchbreakdefault
gotocaseforreturntry
abstractcontinueenumnewassert
packagesynchronizedprivatethisimplements
protectedthrowthrowsimportpublic
staticvoidinstanceoftransientcatch
extendsfinalfinallyinterfaceclass
strictfpvolatileconstnativesuper

注:命名时为了增强程序的可读性,基本不单独使用下划线(_)来命名,且有的公司声明不可用美元符号($)来命名。

2、数据类型

在这里插入图片描述

  • 基本数据类型
数据类型包装类默认值占用存储空间范围
整型byteByte01字节-128~127
整型shortShort02byte- 215 ~ 215 - 1
整型intInteger04byte- 231 ~ 231 - 1
整型longLong0L8byte- 263 ~ 263 - 1
浮点型floatFloat0.0f4byte-3.403E38~3.403E38
浮点型doubleDouble0.0d8byte-10798E308~1.198E308
字符型charCharacter\u00002byte\u0000~\uffff
布尔型booleanBooleanfalseture/false
  • 引用数据类型
数据类型说明
类 类型

1>Java类库中定义的类(eg:Object、String、Date)和用户定义的类

2>Java类库中定义的枚举(enum)和用户定义的枚举

接口 类型

1>Java类库中定义的接口和用户定义的接口

2>Java类库中定义的注解和用户定义的注解

数组 类型一维和多维数组
null 类型null 类型为空引用类型,使用 null 常量来表示
  • 类型转换

  ★小类型转化为大类型自动转换
  ★大类型转化为小类型需要强制转换
特例:在不超过其表数范围的情况下,可以将整型常量直接赋值给byte、short、char 等类型变量,不需要进行强制转换


short b = 5;//合法
short c = 1234567;//非法

1>自动类型转换(隐式转换)
注意:隐式转换可能会降低精度,eg:从 long 到 float 的转换

在这里插入图片描述
注:白色箭头表示可能会降低精度

转 换 源转 换 目 标
byteshort、int、long、float、double
shortint、long、float、double
intlong、float、double
longfloat、double
charint、long、float、double
floatdouble

注:不存在到 char 类型的隐式转换

  • 如果整型常量超过变量范围,则会产生编译错误。例如:

byte b11 = 123;//整型常量 123 从 int 到 byte 的自动转换
short s1 = 123;//整型常量 123 从 int 到 short 的自动转换
long long1 = 123;//整型常量 123 从 int 到 long 的自动转换
float f1 = 123;//整型常量 123 从 int 到 float 的自动转换
double d1 = 123;//整型常量 123 从 int 到 double 的自动转换
byte b22 =255;//编译错误,byte 的取值范围为 -128~127

2>强制类型转换(显示转换)
注:显示转换可能会导致精度损失,也可能由于溢出而导致转换结果不正确


byte b1 = (byte)12.3;//结果:12,精度损失
byte b2 = (byte)128;//结果:-128,由于溢出从而导致转换结果不正确

转 换 源转换目标
shortbyte、char
intbyte、short、char
longbyte、short、char、int
floatbyte、short、char、int、long
doublebyte、short、char、int、long
charbyte、short
  • 装 箱
      1>基本类型自动转为包装类.(int >> Integer)
      2>运用了 valueof 函数
  • 拆 箱
      1>包装类自动转为基本类型.(Integer >> int)
      2>运用了 intValue 函数
public class TextDemo7 {
    public static void main(String[] args) {
        Integer a = 12;// 装箱,相当于 Integer.valueOf(12);
        int b = a;//相当于 a.intValue() 拆箱
        System.out.println(a);
        System.out.println(b);
    }
}

在这里插入图片描述
注:
  对于–128到127(默认是127)之间的值, 被装箱后,会被放在内存里进行重用,但是如果超出了这个值,系统会重新new 一个对象。

public class TextDemo7 {
    public static void main(String[] args) {
        Integer a = 128;
        Integer b = 128;
        System.out.println(a==b);//比较的是地址

    }
}

运行结果:
在这里插入图片描述

3、优先级顺序

优先级运算符简介结合性
1[ ]、. 、()方法调用,属性获取从左向右
2!、~、++、–一元运算符从右向左
3*、/、%乘、除、取模(余数)从左向右
4+、-加减法从左向右
5<<、>>、>>>左位移、右位移、无符号右移从左向右
6<、<=、>、>=小于、小于等于、大于、大于等于从左向右
7==、!=判断两个值是否相等、判断两个是是否不等从左向右
8&按位与从左向右
9^按位异或从左向右
10按位或从左向右
11&&短路与从左向右
12丨丨短路或从左向右
13?:条件运算符从右向左
14=、+=、-=、/=、%=、&=、丨=、^=、<、<=、>、>=、>>=混合赋值运算符从右向左
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值