带你了解变量与数据类型及类型转换

    技术2023-11-30  86

    一、基本数据类型:

    整型 占用字节数比特/位取值范围byte(字节型)18【-128~127】short(短整型)216【-32768~32767】int(整形)432【-2147483648~2147483647】long(长整形)864【-9223372036854775808~9223372036854775807】

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

    int a = 34; long b = 40L; long c = 40l; 浮点型 占用字节数比特/位取值范围float(单精度)432【-3.402 E+38F~+3.402 E+38F】double(双精度)864【-1.79 E+308~+1.79 E+308】

    注意:float有效位是6~7位,double有效位是15位。浮点数默认为double类型,如果需要定义一个float类型的变量,则数值后需要加f或者F

    double a = 4.13; float b = 4.13f; float c = 4.13F; 字符型 占用字节数比特/位取值范围char(字符型)216【\u0000\uffff】即为065535 //1、字符参与运算(是查找ASCII里面的值) char a = 'a'; int b = 1; System.out.println(a + b);//结果为98 //2、字符串参与运算(就是字符串的拼接,字符串在前面就做拼接,数值在前就做相加) System.out.println("hello" + 'a' + 1);//helloa1 System.out.println('a' + 1 + "hello");//98hello System.out.println(5 + 5 + "=5+5");//10=5+5 System.out.println("5+5=" + 5 + 5);//5+5=55 布尔类型 占用字节数比特/位取值范围Boolean(布尔类型)11true和false

    二、转义字符

    常见的转义字符:

    转义序列名称Unicode值\b退格\u0008\t制表\u0009\n换行\u000a\r回车\u000d\ "双引号\u0022\ ’单引号\u0027\ \反斜杠\u005c

    三、标识符

    定义:就是给类、接口、方法、变量等起名字的字符序列。用来查找、定位、标明、唯一确认内容。

    组成规则:英文大小写字母(字符统称—>中英文皆可,强烈不推荐使用中文); 数字; $和_

    注意事项:不能以数字开头;不能是java中的关键字;区分大小写

    标识符需要遵循的规范:1、所有标识符必须要见名知意;2、变量、函数、语句块的名称满足小驼峰(首字母小写,其后每个单词首字母大写);3、类名满足大驼峰 (每个单词首字母大写),常量所有字母大写,单词之间用_隔开

    //标识符的注意事项 int $_abc123 = 1; int 123$_adad = 2; ----->这是错的!!! int _abc$123 = 3; int abc$_123 = 4; //标识符遵循小驼峰命名 int helloWord = 4; //常量的书写格式 final int HELLO_WORD = 5;

    四、变量

    定义:在程序的执行过程中,其值在某个范围内可以发生改变的量变量的定义格式:

    A:数据类型 变量名 = 初始值

    B:数据类型 变量名;

    变量名 = 变量值;

    变量的三种操作:

    1、存值;

    2、取值;

    3、改值

    变量的关注点:

    1、数据类型;

    2、变量名称;

    3、变量的值;

    4、变量的作用域,根据{}来定。同一个作用域当中,变量不能重名

    变量的使用注意事项:1、变量本身存在;2、变量的值要存在;3、使用时一定要存在于作用域之内,其作用域:从定义开始,到离它最近的左大括号相对的右大括号结束。

    变量一旦使用,那么必须保证它的值已经存在(形式参数除外)

    //变量的声明 int a ; //变量的初始化 a = 1; //同一作用域中变量重名,错误 int a = 2; ----->变量重名!!! //变量只声明,没有初始化,会报错 int a; System.out.println(a); ---->会报错 //不同作用域里面,变量可以重名 for (int i = 0; i < 5; i++) { System.out.println(i); } for (int i = 0; i < 5; i++) { System.out.println(i); }

    五、数据类型转换

    定义:数据在不同类型之间进行转换,boolean类型不参与转换

    默认转换:A、从小到大;B、byte,short,char----->int,long,float,double;

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

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

    格式:**目标数据类型 变量名 = (目标数据类型)被转换的数据** byte a =(byte)123; long b = (long)45555555;

    注意:当byte、short、char在运算时,会自动向上转型为int类型,所以返回的结果是int类型,如果接收的类型不是int类型,则会报错。

    public static void main(String[] args) { byte a = 1; byte b = 2; byte c = a+b;---->这里报错!!! }

    图中有6个实心箭头,表示无信息丢失的转换;有三个虚箭头,表示可能有精度损失的转换

    **小精度转大精度可以自动转换,int值类型的值会自动地转换成double类型 **

    有时候需要将double 转换成int,这就需要进行强制类型转换,但是会丢失一些信息

    double a = 4.0; int b = a; ----->这里会丢失精度!!!
    Processed: 0.012, SQL: 9