• java中变量赋值的理解


    1.当赋值的值超出声明变量的范围时候,会报错!
    byte a =200 //会报错,因超出范围。
    byte a =(byte)200;//进行一个强制转换,就不会报错,不过会超出范围,超出部分会从头开始加,
    由于byte的范围为-128~127,所以是-128+73为所得结果。
    2.声明一个整数类型时候,默认都是int类型(4个8位);如果具体的数值比声明变量的取值范围小,则不报错。
    例:short a =222;
    3.long l = 88888888888l 很明显,这一长串数字是好超过int的取值范围的,所以会报错,但是因为不超过long的取值范围,
    所以我们可以声明一个long变量来装它, 不过需要在后边加“l”(不区分大小写)。
    4.声明一个float变量,如 float f = 12.555;因为声明一个小数默认的类型是double类型(8个八位), 所以;由高精度转换为低精度的float(4个8位)型时,会丢失精度报错,在后边加”f“就将其转换成float类型,就不会报错了。
    5.char 用来声明一个字符,char c = 'e'; System.out.println(c);输出的是这个字符,不过进行运算时候
    使用变量的ascll编码的位置。
    char c2 = ' ';表示换行; 进行运算时候运算的也是其位置!
    6.类型转换优先级:double float long int char short byte
    7.short s = 133;
    char c = 'a';
    short s1 = s+c; 输出结果会报错,因为两个数相加,默认为int类型,用short来装它,会报损失精度的错误,
    此时需要加上一个强制转换:short s1 = (short)(s+c);
    8.隐式转换:由低精度自动转换为高精度;例:long l = 5834;默认数值类型都为int类型,但是,你既然
    用long来声明,你的精度比我还高,那我就不说什么了,默默地转过去吧。
    9.显示转换:也叫强制转换,一般由高精度转向低精度。比如short s1 = (short)(s+c);我本来比你精度高,我是
    int,你却用低精度的short来装我,我肯定不同意(报错),说以,得强制转换,不同意也得同意。
    10.+= 的赋值原理:byte b = 4;char c = 0.4;b += c;由于char优先级比byte要高,所以b = b+c,
    是要报错的,不过b += c,却不报错,因为它先把c的值赋给b,赋值之后,b就成char
    类型了,然后再加上b的值,char的优先级要高,所以不会报错。







  • 相关阅读:
    关于权限控制
    关于<!DOCTYPE>
    Oracle恢复目录的管理使用简要
    绑定变量介绍
    重做日志时间戳说明
    UNDO表空间监控说明
    Oracle rac进阶管理专家指导系列文档
    延迟块清除介绍
    ORA12500内存耗尽一例
    undo自动调优介绍
  • 原文地址:https://www.cnblogs.com/donghb/p/7162347.html
Copyright © 2020-2023  润新知