java初学笔记2

一.变量:存数的

变量的声明
变量的初始化
变量的使用:
    1.对变量的使用就是对它所存储的数的使用
    2.变量使用之前必须声明并初始化
变量的命名:
    -只能包含字母、数字、下划线_和$,并且数字不能开头
    -严格区分大小写
    -不能使用关键字
    -允许中文命名,但不建议,建议:(1)英文-见名知意 (2)小驼峰命名法

二、基本数据类型(八种):byte、short、int、long、float、double、boolean、char

int:整型,4个字节,-21个亿到21个多亿
    1.整数直接量默认为int类型,但不能超出范围,若超范围则发生编译错误
    2.两个整数相除,结果还是整数,小数位无条件舍弃(不会四舍五入)
    3.运算时若超出范围,则发生溢出,溢出不是错误,但是需要避免

        int a = 25;//25为整数直接量,默认为int类型
        int b = 10000000000;//编译错误,100亿是整数直接量 默认为整型 但是超出范围
        int c = 3.14;//编译错误,整型变量只能装整型
        System.out.println(5/2);//2
        System.out.println(2/5);//0
        System.out.println(5.0/2);//2.5
        //溢出
        int d = 2147483647;//int最大值
        d = d+1;
        System.out.println(d);//-2147483648(int的最小值) 发生了溢出,需要避免

long:长整型,8个字节,-900万万亿多到900万万亿多
    1.若想表示长整型直接量,需在数字后加L或l 
    2.运算时若有可能溢出,建议在第1个数字后加L    

    long a = 25L;//25L为长整型直接量
    long b = 100000000000;//编译错误,100亿默认为int类型,但是超范围了
    long c = 100000000000L;//100亿L为长整型直接量
    long d = 3.14;//编译错误,长整型只能装整数

    //运算时可能溢出,建议在第一个数字后面加L
        long e = 1000000000*2*10L;
        System.out.println(e);//200亿
        long f = 1000000000*3*10L;
        System.out.println(e);//不是300亿,1000000000*3为int型 相乘之后已经溢出
        long g = 10000000000L*3*10;
        System.out.println(f);//300亿

double:双精度浮点型,8个字节        float:单精度浮点,后面加F|f

    double a = 3.14;//3.14为小数直接量,默认为双精度浮点型
    float b = 3.14F;//3.14F为float型直接量

    double c=3.0,d=2.9;
    System.out.println(c-d);//0.10000000000000009
                            //0.1
    //BigDecimal 没有误差

boolean:布尔型,1个字节
    1.采用Unicode编码格式,一个字符对应一个码

    //只存储true|false
        boolean a1 = true;
        boolean b1 = false;
        //boolean c1 = 34;//编译错误,布尔型变量中只能装true或false;

char:字符型,2个字节
    1.采用Unicode编码格式,一个字符对应一个码
        ASCII码:‘a’的码是97,‘A’的码是65,‘0’的码是48
    2.字符型直接量需要放在单引号中,只能有一个
    3.特殊符号需要通过\来转义 

    char c1 = '女';//字符女
    char c2 = 'f';//字符f
    char c3 = '5';//字符5
    char c4 = ' ';//空格符
    //char c5 = 女;//编译错误,字符型直接量必须放在单引号中
    //char c6 = '';//编译错误,必须有字符
    //char c7 = '10';//编译错误,只能存储一个字符

    char c8 = 6553;//0到65535之间  A 65  a 97  0 48
    System.out.println(c8);//println()会依据变量的类型做输出展示
                           //c8为char型,所以会以字符的形式输出

    char c9 = '\\';
    System.out.println(c9);// \

三、类型转换

两种转换方式
        自动类型转换/隐士类型转换:从小类型到大类型
        强制类型转换:从大类型到小类型
            语法:(要转换成为的类型)变量
            注意:强制转换可能会发生溢出和精度丢失
类型关系:
    byte---short---int---long---float---double
                char---

    int a = 5;
    long b = a;//自动类型转换,a为int型 b为long型,发生自动类型转换
    int c = (int)b;//强制类型转换

    long d = 5;//5为int型,d为long型,发生自动类型转换
    double e = 5;//5为int型,e为double型,发生自动类型转换

    long f = 10000000000L;
    int g = (int)f;
    System.out.println(g);//1410065408 将f转为int型,但是存不下100亿,强转有可能发生溢出

    double h = 34.789;
    int i = (int)h;
    System.out.println(i);//34 将浮点型转为int型,自动舍弃小数位,强转有可能精度丢失

两点规则:
    1.整数直接量可以直接赋值给byte、short、char,但是不能超出范围
    2.byte、short、char型数据参与运算时,先一律自动转换为int型

    byte d = 5;
    byte e = 4;
    byte f = (byte)(d+e);//运算时自动转为int型,需要强制转为byte才能运算

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值