Day02-java基础下

五、进制

5.1 概述

  • 进制:即进位计数制,是人为定义的带进位的计数方法。
  • 对于任何一种进制—X进制,就表示每一位上的数运算时都是逢X进一位。

5.2 进制分类

二进制

  • 逢二进一,可以使用字面值,但同十进制区分时,前面也可以0b0B开头

    0,1

    127 ~ 0111,1111
    

八进制

  • 逢八进一,通常以0开头

  • 也可使用一个八进制位表示3个二进制

    0~7

    127 ~ 0177
    

十进制

  • 逢十进一
  • 生活中使用最为广泛的进制

十六进制

  • 逢十六进一,以0x0X开头

  • 使用一个十六进制位表示四个二进制

    0~0xF

    127 ~ 0X7F 或 0x7F
    

5.3 二进制和十进制转换

235
200 + 30 + 5
2*100 + 3*10 + 5*1
2*10^2 + 3*10^1 + 5*10^0
0000 1010 ==> 10
1*2^3 + 1*2^1 = 2 + 8 = 10
  • 二进制–>十进制
0000 0000 ~ 1111 1111
128    64    32    16    8    4    2    1
0000 1110  ==  14
0000 0111  ==  7
0010 0010  ==  34
0011 0011  ==  51
  • 十进制 --> 二进制
0000 0000 ~ 1111 1111
128    64    32    16    8    4    2    1
66  ==  0100 0010
55  ==  0011 0111
46  ==  0010 1110
88  ==  0101 1000

六、变量

6.1 概述

变量是在内存中开辟的一片空间,用来存储对应类型的数据

6.2 创建变量

  • 变量三要素
    • 数据类型
    • 变量名
    • 数据

同一个作用域中,变量的名字不能重复

先声明后赋值

int a;
a = 100;

声明的同时赋值

int b = 200;

一次创建多个变量

int a,b,c;
int x = 100, y = 200;

6.3 变量使用

  • 通过变量名访问变量中的数据
class Demo06{
    public static void main(String[] args) {
        /*
            先声明,后赋值
            数据类型 变量名;
            变量名 = 数据;
        */
        // 开辟int类型的变量num,把100存入num
        int num;
        num = 100;
        System.out.println(num); //输出100

        // 再次把200存入num,覆盖之前的内容
        num = 200;
        System.out.println(num); //输出200

        // 声明变量的同时赋值
        int number = 300;
        System.out.println(number); //输出300

        // 声明int类型变量xyz,没有赋值
        int x,y,z;
        x = 111;
        // 方法中的变量使用之前必须先赋值,否则报错
        System.out.println(x); //输出111

        // 一次声明多个变量并赋值,使用逗号隔开
        int a=10,b=20,c=30;
        System.out.println(a); //输出10

        int m=30,n;
        // 通过变量的名字获取变量中的数据
        System.out.println(m); //输出30
    }
}

七、数据类型【掌握】

7.1 概述

Java是一门强类型语言,Java给所有的数据预设了数据类型

7.2 分类

基本类型

  • 数值型

    • 整型(byte、short、int、long)

    • 浮点型(float、double)

  • 字符型(char)

  • 布尔型(boolean)

引用类型

除了基本类型,剩下全是引用类型

  • 数组
  • 集合
  • 枚举

7.3 整数类型

  • 整数默认的类型是int
类型名称大小范围
byte字节型1字节-2^7 ~ 2^7-1
short短整型2字节-2^15 ~ 2^15-1
int整型4字节-2^31 ~ 2^31-1
long长整型8字节-2^63 ~ 2^63-1
class Demo07 {
    public static void main(String[] args) {
        /*
            整数
            byte    1字节    -128~127
            short    2字节    -32768~32767
            int        4字节    -2147483648~2147483647
            long    8字节    不详
        */
        byte b = 100;
        System.out.println("byte b = " + b);

        // b = 200;    // 超出范围报错
        System.out.println("byte b = " + b);

        short s = 10000;
        System.out.println("short s = " + s);

        // s = 100000;
        System.out.println("short s = " + s);

        int i = 1000000000;
        System.out.println("int i = " + i);

        long l = 112233445566L;    // 若想用整数给long变量赋值,数字后需要L后缀
        System.out.println("long l = " + l);
    }
}

7.4 小数类型

  • 默认的是double类型
  • 如果声明float类型变量需要使用f标记默认的是double类型
类型名称大小范围
float单精度浮点型4字节
double双精度浮点型8字节
class Demo08{
    public static void main(String[] args) {
        // 小数默认的类型是double,如果使用float定义变量,需要加上f或者F后缀
        float f = 3.141592653589793F;
        System.out.println("float f = " + f);

        // 小数默认的类型是double
        double d = 3.141592653589793;
        System.out.println("double d = " + d);
    }
}

7.5 布尔型

  • 表示判断的结果
    • true(真)、false(假)
  • 布尔类型占据空间为1字节
class Demo09{
    public static void main(String[] args) {
        /*
            boolean 布尔型    表示成立或者不成立、是或者非
        */
        // 创建布尔类型变量,赋值true
        boolean b01 = true;
        System.out.println("boolean b01 = " + b01);

        boolean b02 = false;
        System.out.println("boolean b02 = " + b02);

        // boolean b03 = "true";    true和false是关键字,可以直接使用
        System.out.println("boolean b01 = " + b01);
    }
}

7.6 字符型

  • 表示单个字符
    • 必须是一个字符,不多也不少
类型名字大小范围
char字符型2字节0~65535
class Demo10{
    public static void main(String[] args) {
        /*
            1、直接使用单个字符赋值
            2、使用十进制整数赋值,参考Unicode表
                0~65535
            3、使用十六进制赋值,参考Unicode表
                \u0000 ~ \uFFFF
        */

        char c01 = 'a';
        System.out.println("char c01 = " + c01);

        char c02 = 65;
        System.out.println("char c02 = " + c02);
        System.out.println(c01 + 1);
        System.out.println('张' + 1 - 1);

        char c03 = 24352;    // 使用十进制整数赋值,参考Unicode表
        System.out.println("char c02 = " + c03); //输出char c02 = 张

        char c04 = '\u5F20';    // 使用十六进制赋值,参考Unicode表
        System.out.println("char c04 = " + c04); //输出char c02 = 张

        char c05 = 'z';
        System.out.println("char c05 = " + c05); //输出char c05 = z
    }
}

7.7 转义字符

转义字符是一种特殊的字符常量。它以反斜线 \ 开头,后跟一个或多个字符。转义字符具有特定的含义

  • 反斜杠 ‘’ 不可与 ‘/’ 替换
转义字符含义转义字符含义
\b退格单引号
\f换页"双引号
\n换行\0空字符
\r回车\0001到3位八进制数代表的字符
\t跳格,制表\u~unicode转义字符,后跟四位16进制数

7.8 类型转换

自动转换

  • 目标兼容

  • 小的类型放入大的类型,自动转换,天生安全

byte b = 3;
int n = b;

强制转换

  • 目标兼容
  • 大的类型放入小的类型,需要强制转换,有风险
int n = 3;
byte b = (byte)n;

转换规则

取值范围小的变量转化为取值变量大的,数据保存完整

取值范围大的变量转化为取值变量小的,数据精度可能丢失

class Demo11{
    public static void main(String[] args){
        byte a,x;
        byte a,x;
        int b = 471; //1,1101,0111
        int y = 289; //1,0010,0001
        a = (byte)b;
        x = (byte)y;
        System.out.println("a = " + a); // -41
        System.out.println("b = " + b); // 471
        System.out.println("x = " + x); // 33
        System.out.println("y = " + y); // 289
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值