JAVA基础-Day2

学习目标

  1.     能够辨识关键字(掌握)
  2.     理解标识符的含义(掌握)
  3.     理解Java中的基本数据类型分类(掌握)
  4.     能够定义8种基本数据集类型的变量(掌握)
  5.     了解进制
  6.     理解基本数据类型的自动类型转换
  7.     理解基本数据类型的强制类型转换
  8.     了解ASCII编码表和Unicode编码表
  9.     理解int类型和char类型的运算原理
  10.     理解运算符++ --的运算方式
  11.     理解+符号在字符串中的作用
  12.     掌握赋值运算符
  13.     掌握比较运算符
  14.     理解逻辑运算符
  15.     掌握三元运算符的格式和计算结果
  16.     了解位运算符

关键字

常量 

 程序运行过程中值不许变化
        ①自定义常量:final
        ②字面值厂常量
        注意事项:
            字符常量,单引号里面有且仅有一个字符
            ​空常量,不可以在输出语句中直接打印

标识符

 ①标识符的规则(必须遵守)
        a.组成部分---->字母,数据,符号
        b.符号只有——和$
        c.数字不能作为开头
        d.不能包含空格/严格区分大小写
    ②标识符规范(建议遵守)
        a.类名:首字母大写,后面单词第一个字母大写
        b.变量名:第一个单词首字母小写,后面单词第一个字母大写(驼峰命名)

数据类型

基本数据类型:四类八个
        数值类型:byte(1个字节,-128~127), short(2个字节), int(4个字节) ,long(8个字节)
        布尔类型:boolean---->只要true或false两个值
        浮点类型:double(8个字节),float(4个字节)---->double比float的精度高
        字符类型:char(2个字节)
            字符类型的表现形式:

一个字符,eg:‘a',’速‘...
一个转义字符是一个字符 ,eg:\n,\t
每个ASCLL码对应的是一个字符:’a'=97,'A'=65,'0'=48


    引用类型:字符串String,list....

变量

    概念:定义一个容器,把数据存储起来
    变量三要素:数据类型  ,变量名 ,值
    使用变量的的要求:
        先声明后使用
        使用前必须初始化
        变量有作用域,要在规定的范围内使用该变量
        同一作用域变量名不能重名

    变量的使用(注意每条语句结束要以;结尾)

数据类型 变量名; ---->声明变量
变量名=值;----->初始化变量

可以合二为一:
数据类型 变量名 = 值;

    特殊变量定义规则

long类型:建议数据后加L表示。
float类型:建议数据后加F表示。
char类型:使用单引号''
String类型:使用双引号""

输出语句:(常见的两种)

    换行输出语句:输出内容,完毕后进行换行:

System.out.println(输出内容);

   直接输出语句:输出内容,完毕后不做任何处理:

System.out.print(输出内容);


    注意事项:

换行输出语句,括号内可以什么都不写,只做换行处理
直接输出语句,括号内什么都不写的话,编译报错
如果()中有多项内容,那么必须使用 + 连接起来
如果某些内容想要原样输出,就用""引起来,而要输出变量中的内容,则不要把变量名用""引起来

进制

    二进制:逢二进一------>十进制  位2次幂求和


    八进制:逢八进一
    十进制:逢十进一--->二进制   除二取余法
    十六进制:逢十六进一
    字节(byte)即是一种容量单位,也是一种类型
    位(bit):数据存储的最小单位
    转换关系:

8 bit = 1 Byte
1024 Byte = 1 KB
1024 KB = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB

基本类型转化(Conversion)(七种数值类型--->boolean不参与)

    1.自动类型转换(隐式类型转化)----->将范围小的类型自动转换到范围大的类型
    2.强制类型转换(显示类型转化)----->将范围大的类型自动转换到范围小的类型
        语法:数据类型 变量名 = (数据类型)被强转数据值;
    3.特殊类型转换
        任何类型+String类型运算的时候,结果一定是String类型
        String类型不能通过强制类型转换成普通类型,但是可以通过包装类型的方法转化位别的包装类

语法:  基本包装类.parse包装类(String类型);
eg1:int num = Integer.parseInt(str);//后面才能讲到,借助包装类的方法才能转
eg2:float c = Float.parseFloat(s);

运算符(正常运算是从左到右,但是有一些运算符优先级较高先运算)

  1.“+”的两种用法
        “+”两边都是数值类型的话,那么就是四则运算的加法
        “+"如果一边是字符串类型的话,那么就是拼接的作用
  2.自加自减运算(以++为例)
        单独使用:
            变量前面++

 int num = 3;

System.out.println(++num); //3---->先执行++,后执行别的语句


            变量后面++

    int num = 3;
//>当在一个表达式的时候,会执行别的,最后才会执行++
System.out.println(num++); //3---->先输出,后++

            复合使用

public class OperatorDemo03 {
 public static void main(String[] args) {
 // 其他变量放在一起使用
 int x = 3;
 //int y = ++x; // y的值是4,x的值是4,
 int y = x++; // y的值是3,x的值是4
 
 System.out.println(x);
 System.out.println(y);
 System.out.println("==========");
        
 // 和输出语句一起
 int z = 5;
 //System.out.println(++z);// 输出结果是6,z的值也是6
 System.out.println(z++);// 输出结果是5,z的值是6
 System.out.println(z);
        
        int a = 1;
        a = a++;//(1)先取a的值“1”放操作数栈(2)a再自增,a=2(3)再把操作数栈中的"1"赋值给a,a=1

        int i = 1;
        int j = i++ + ++i * i++;
        /*
        从左往右加载
        (1)先算i++
        ①取i的值“1”放操作数栈
        ②i再自增 i=2
        (2)再算++i
        ①i先自增 i=3
        ②再取i的值“3”放操作数栈
        (3)再算i++
        ①取i的值“3”放操作数栈
        ②i再自增 i=4
        (4)先算乘法
        用操作数栈中3 * 3 = 9,并把9压会操作数栈
        (5)再算求和
        用操作数栈中的 1 + 9 = 10
        (6)最后算赋值
        j = 10
        */
 } 
}


    练习:获取每个位数的数值

public static void main(String[] args) {
    //1.定义一个四位数,例如1234
    int num = 3526;
    //2.通过运算操作求出个位,十位,百位,千位
    int ge = num % 10; // 1234 / 10  =  123......4
    int shi = num / 10 % 10; //1234 / 10 = 123%10
    int bai = num / 100 % 10;
    int qian = num / 1000 % 10;

    System.out.println(num + "这个四位数个位上的数字是:" + ge);
    System.out.println(num + "这个四位数十位上的数字是:" + shi);
    System.out.println(num + "这个四位数百位上的数字是:" + bai);
    System.out.println(num + "这个四位数千位上的数字是:" + qian);
}


    3.&&和&区别,||和|区别
        &&`和`&`**区别:`&&`和`&`结果一样,`&&`有短路效果,左边为false,右边不执行;`&`左边无论是什么,右边都会执行
        ||`和`|`**区别: `||`和`|`结果一样,`||`有短路效果,左边为true,右边不执行;`|`左边无论是什么,右边都会执行。
        一个案例:

public static void main(String[] args) {
 int i=1;
 if (i>1 && ++i>1){  //如果前面是false,后面的不执行
     System.out.println("hello");
 }
    System.out.println("i的值="+i); //1

    if (i>1 & ++i>1){  //如果前面是false,后面也会执行
        System.out.println("hello");
    }
    System.out.println("i的值="+i); //2

       //这时候i的值为2
    if (i>1 || ++i>1){  //如果前面是true,后面的不执行
        System.out.println("hello");
    }
    System.out.println("i的值="+i); //2

    if (i>1 | ++i>1){  //如果前面是true,后面也会执行
        System.out.println("hello");
    }
    System.out.println("i的值="+i); //3

}


    4.位运算符(了解)---->位运算是最快的运算
        左移:<<      运算规则:左移几位就相当于乘以2的几次方
        右移:>>      运算规则:右移几位就相当于除以2的几次方
        无符号右移:>>>           运算规则:往右移动后,左边空出来的位直接补0,不看符号位
        按位与:&


 运算规则:
 1 & 1 结果为1
 1 & 0 结果为0
 0 & 1 结果为0
 0 & 0 结果为0


        按位或:|


 运算规则:
 1 | 1 结果为1
 1 | 0 结果为1
 0 | 1 结果为1
 0 & 0 结果为0


        按位异或:^


 运算规则:
 1 ^ 1 结果为0
 1 ^ 0 结果为1
 0 ^ 1 结果为1
 0 ^ 0 结果为0


        按位取反:~


 运算规则:
    ~0就是1  
    ~1就是0


    5.三元运算符
        语法:表达式1?结果表达式1:结果表达式2
        解读:如果表达式1的结果位true()成立,返回结果表达式1,否则返回结果表达式2
    6.小结

++在前,先自加,后使用;

++在后,先使用,后自加。

&&同真为真,一假为假

||同假为假,一真为真

运算的优先级


    
    小结:表达式尽量不要太复杂;()优先级最高
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值