第二天的Java学习

Java语言基础

计算机底层运算是用补码进行运算,呈现出来的结果是原码。

一个数据的二进制表现形式:最高位作为符号位,‘0’表示整数,‘1’表示负数,,其余位是数值位

+5符号位数值位-5符号位数值位
原码00000101原码10000101
反码00000101反码11111010
补码00000101补码11111011

整数的原码,反码,补码都一样。

负数的反码是在原码上符号位不变,数值位取反:1变0,0变1;补码是在其反码上,末位+1。

变量

* 变量:就是在程序执行过程当中可以发生变化的量,变量其实就是在内存开辟的一小块空间
* 定义变量的语法格式: 数据类型 变量名=值
* 数据类型:限定这个数据的范围,限定是哪一种类型
  * 基本数据类型 和 引用数据类型
    * 基本数据类型:四类八种
      * 整数型
        * byte 一个字节 -128(只有补码 1000000)--127
        * short 两个字节 -2^15--2^15-1
        * int 四个字节 -2^31-2^31-1
        * long 八个字节 -2^63~2^63-1
      * 浮点型
        * float 四个字节 3.40310^38~3.40310^38
        * double 八个字节 -1.798010^308~1.79810^308
      * 布尔型
        * boolean 一个字节
      * 字符型
        * char 两个字节

    class VariableDemo{
        public static void main(String[] args){
        //定义不同数据类型的变量
        //变量名符合通用规则,一般小写,studentName
        byte a=-100;
        byte b=127;
        short c=111;
        int d=1234;
        //定义long类型的变量时,注意在值的后面加上一个后缀L,表示这是一个long类型的值。
        //如果long赋予的值不超过int类型的范围,L不加也可以,如果超过了,则必须加上后缀L。
        long e=1234567L;
        //定义float类型的变量时,注意在值的后面加上以恶个后缀F,表示这是一个float类型的值。
        float f=2.35F;
        double g=6.6;
        //定义布尔类型的变量,值就两个:true  和  false
        boolean flag1=true;
        boolean flag2=false;
        //定义字符类型的变量,注意只是单引号引起来的单个字符。
        char ch1='a';
        char ch2='我';
        //根据变量名来输出不同变量的值
        System.out,println(a);
        System.out,println(b);
        System.out,println(c);
        System.out,println(d);
        System.out,println(e);
        System.out,println(f);
        System.out,println(g);
        System.out,println(flag1);
        System.out,println(flag2);
        System.out,println(ch1);
        System.out,println(ch2);
    }
    }

隐式转换和强制转换

class VariableDemo2{
    public static void main(String[] args){
    //定义变量的注意事项
    //1.在同一个作用域内,不能定义同名变量。
    //作用域:同一对大括号所括起来的范围。
    int a=21;
    //int a=100;//报错
        a=321;//重新赋值
    int num;
    num=231;
    //2.变量必须赋值才能使用
    int p=24;int u=321;//一行可以定义多个变量。
    int q=p;//把一个变量的值,赋给另一个变量。

    byte b=1;
    byte c=2;
    //数据类型的隐式转换(数据类型的自动提升)
    //当byte short char 类型的变量参与运算时,会自动提升为int类型。
    //如果还有 long float double 类型的变量参与运算时会相应的提升为long float double类型
    //sum=b+c;//报错
    byte sum=(byte)(b+c);
         //强制类型转换:丢弃多余字节,只保留目标字节,这样做有可能会造成精度损失
    System.out.println(a);
    System.out.println(num);//byte参与运算,结果自动提升为int类型。强制转换,就会丢弃前三个字节,保留一个字节
    System.out.println(q);
}
}

进制以及进制转换

1. 进制:一种进位制,比如X进制,就是逢X进1.
2. 二进制的由来:根据电子元器件的开关位状态来的: 1 表示开, 0 表示关。
3. 国际组织规定: 1byte=8bit;1KB=1024Byte;1MB=1024KB;1GB=1024MB;
4. 字节是计算机中表示数据的最小单位
5. 进制越大,数据的表现形式越短
6. 为了区分不同进制,可以加上前缀 0B100(二进制) 0100(八进制) 100(十进制) 0X100(十六进制)

进制转换

任意进制---转换成10进制

* 位权展开法: 系数*基数的权次方
  * 系数:待转换数据的每一位上的数字
  * 基数:待转换数据的进制。例:2进制基数为2,8进制基数为8
  * 权数:待转换数据,从右往左给编号,从0开始

 

十进制数据---转换成任意进制

* 除基取余,直到商为0,余数翻转

 

算术运算符的基本用用法

1. 运算符:对常量和变量进行操作的符号称为运算符。
2. 运算符的分类:
  1. 算术运算符(+ - * / % ++ --)
    +号的作用:
    1. 作用1:充当相加的作用,也就是数字运算符
    2. 作用2:起拼接的作用,当+号运算两端,只要任意一端是个字符串,就会其拼接作用,把两端内容拼接起来形成一个新的字符串
  2. 赋值运算符(= += -= *= /= %=)
  3. 比较运算符(== != < > <= >= )
  4. 逻辑运算符
  5. 位运算符
  6. 三目运算符

class MathOperator{
    public static void main(String[] args){
    //算术运算符
    int a=10;
    int b=3;
    System.out,println(a/b);//商
    System.out,println(a%b);//取余 
    System.out,println(a-b);//差
    System.out,println(a*b);//积
    System.out,println(a+b);//和
    //++自身增1   --自身减1
    int i=1;
    i++;
    i--;
    ++i;
    --i;
    System.out,println(i);
    //(++)(--)单独使用时,放在变量前后没有区别
    //混合使用时。++放在后面,先使用,后运算;++放在前面,先运算,后使用。--同理

    //赋值运算符
    //+=
    int y=12;
    //y=y+5;//等价于 y+=5
     y+=5;   //+=会自动进行强制类型转换。其它同理。        
    System.out,println(y);

    //比较运算符
    //比较运算符的结果是布尔类型
    boolean x=5>3;
            x=5==5;//注意比较两个数书否相等,用”==“号
    System.out,println("b:"+b);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值