JAVA基础--重新整理(1)后版

本文深入讲解Java中的基本数据类型,包括整型、浮点型、字符型等,并介绍它们的使用场景、范围限制及注意事项。此外,还探讨了二进制、十六进制与十进制之间的转换。

比较喜欢用demo来讲解。

变量

1
2
3
4
5
6
7
8
public static void main(String[] args) {
        int age;//变量声明
        age = 16;//变量的初始化,第一次赋值
        age = 15;//变量的赋值
        System.out.println(age);//15,   访问变量
        int score = 100;//变量声明初始化
        System.out.println(score);
    }

  这是关于变量的有些知识点,变量也就那些东西注意。就是声明,赋值。

二进制基础:

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args) {
    int i = 15;
    System.out.println(Integer.toBinaryString(i));
    i = 'A';
    System.out.println(Integer.toBinaryString(i));
    i = 0xff;//0x  是16进制的开头
    System.out.println(Integer.toBinaryString(i));
    i = '李';
    System.out.println(Integer.toBinaryString(i));
    //5(1024*1024) Byte
    //1 Byte = 8bit; 两位16进制表示
    //5M = 5* 1024 *1024 *2 个16进制字符
 
}

  在这里,有点可以重新记一下。

  1.计算机内部只有二进制,包括字符数据等。

  2.任何,'A','李' 都可以转换为二进制。值得注意的是,

    Integer.toBinaryString(); 这个方法能将我们一切用的转成计算机里面用的二进制。

  3.一般我们习惯的10进制数字  传到 计算机   ,计算机通过 转成二进制  进行传输。

类同的16进制,10进制:

  写几个注意点:

  16进制 是 2进制的简写。  用0x开头

  转换的方法:记住各进制常用的权就ok了。下面罗列下,举个例子。

   2  进制:1 2 4 8 16 32 64 128

   16进制:1 16 256

   例子:1111(2)=1*1+1*2+1*4+1*8=15(10)

      1000001(2)=64 +1 =65(10)

      0x101(16)=256+1=257

java 基础类型:

  四大类型:

   先整数:short一般不用我不写了。

    byte 8 bit -128 ~ 127

    int  32 bit -2G~2G-1

    long 64bit -2^63~2^63-1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class IntegerDemo {
    public static void main(String[] args) {
        short age = 120;
        int age1 = 120;//age age1 在java底层中内存  都是int类型.short 其实就是int
        int size = 1024*1024*1024*2 ;
        System.out.println(size);//-2147483648  超了int 范围
        //直接量
        long l = 1; //直接量,字面量
        //l = 20000000000;//错
        //System.out.println(l);
        l = 2200000000L ;//以L l 结尾的数字 为long 类型
        int a = 127;
        //byte b = a;//变量不能给小类型赋值
        long c = a;
    }
}

  上面demo中:

  1.在java底层中内存 都是int类型.short 其实就是int

  2.超了int 范围,会显示负值

  3.以L l 结尾的数字 为long 类型

  4.重要的一点:就是 变量不能给小类型赋值

在实际项目中也有些考虑的是,类似,QQ号,淘宝物品编号。。。想想应该用 long  或者 long long

  

  再讲浮点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class FloatDemo {
    public static void main(String[] args) {
        int a = 0x7fffffff;
        int b = 0x7ffffff0;
        float af = a;
        float bf = b;
        System.out.println(af);//计算机默认输出为10进制。2.14748365E9       10^9
        System.out.println(bf);
        System.out.println(a);//af  a 不同     因为  二进制取舍
        System.out.println(b);
        double da = a;
        double db = b;
        System.out.println(da);
        System.out.println(db);
        double d = 2.5;// double
        float f = 2.5F;// F表示浮点类型的字面量
        double c = 3D;
        // f = 2.5 // 错
 
    }
}

  上面让我们学习了,

    1.浮点数就是小数。

    2.float f = 2.5//是错误的demo,,必须是2.5F

    3.由于精度不同,有些精确的时候,float 会不正确。所以一般用double

    4.写下一点计数法的知识:

      10001000(2)

      1000.1000*2^100(2)

      1.0001000*2^111(2)

      上面是等价的。

    5.double a = 3D;// D 表示

然后是char

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class CharDemo {
    public static void main(String[] args) {
        int i = 'A';
        System.out.println(i);// 65 A 的Unicode
        char c = '中';
        i = c;
        System.out.println(i);// 20013
        System.out.println(c);// 中
        // 结论字符是一个数字,是字符的Unicode编码值
        // println() 方法根据参数类型
        // 采用不同的输出方式,整数输出整数,字符输出字符
        System.out.println((int) 'B');// 66
        int n = 'B' - 'A' + 10;
        n = 'C' - 'A' + 10;
        n = 'A' - 'D' + 10;
        char ch = 'E';
        int num = ch - 'A' + 10;// 'E' 到 14
        System.out.println(num);
        ch = '5';
        num = ch - '1';
        System.out.println(num);// '5' - '1'  转到 4
        num = ch;
        System.out.println(num);//53
        char chr = 'A'  3;
        System.out.println(chr);//D
         
        Random r = new Random();
        int x = r.nextInt(26);// 随机数x的范围 属于[0,26)
        chr = (char)('A' + x);
        System.out.println(chr);// A~Z
         
        char cx = 0;
        char cy = '0';
        System.out.println(cx);
        System.out.println(cy);
         
        char xx = '\'';
        xx= '\\';
        xx='\u0041';
        xx='\u0000';
         
        System.out.println(0=='\u0000');
        System.out.println('0'=='\u0000');//false
        // \n \r \t \' \" \\
        System.out.println("a\tmd\nnd");
        System.out.println("OK\u0000123");
    }
}

  我就罗列下上面demo的重要点:

  1.最重要:采用不同的输出方式,整数输出整数,字符输出字符

  2. println() 方法根据参数类型

  3.'\'表示转译

 byte-short-int-long-float-double

  从大到小要强转,强转有风险,会造成精度损失或溢出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值