JAVA基础day02【进制、变量、类型转换、运算符】

day02【进制、变量、类型转换、运算符】
今日复习指南

1.变量【重点: 用30分钟】

2.运算符【重点: 用1个小时】

3.数据类型转换【难点非重点: 理解,用30分钟】 大体看看


今日内容介绍

变量【重点】
数据类型转换【难点非重点: 理解】
运算符【重点】
第二章 变量和数据类型【重要】
2.1 变量概念及分类


1.变量概念: 在程序的执行过程中,其值可以在一定范围内发生改变的量
2.分类:
(1)整数
byte 1个字节 -128到127
short 2个字节 正负3万多
int 4个字节 正负21亿 整数默认int类型
long 8个字节 大概19位数字 表示long类型数据后面需要加L/l

(2)小数
    float       4个字节        表示float数据后面需要加F/f
        注意: 虽然float占4个字节,但是由于采用科学计数法,取值范围远远超过long
    double      8个字节        小数默认double类型
            
(3)字符:
    char        2个字节        
(4)布尔:
    boolean     1个字节        取值为true或者false

2.3 定义8种变量

public class Demo01BianLiang {
public static void main(String[] args){
/*
变量的定义格式一(先挖坑,然后种萝卜):
数据类型 变量名称;//先挖坑
变量名称 = 数据值;//再种萝卜
*/
byte a;//挖了一个byte类型(1个字节)的坑,给这个坑起个名字叫a

    a = 66;//把数字66存储到byte类型的坑a中
    
    System.out.println(a);//打印byte类型(1个字节)的坑a中的内容: 66
    
    a = 88;//把数字88存储到byte类型的坑a中,原有的数据66将被替换
    
    System.out.println(a);//打印byte类型(1个字节)的坑a中的内容: 88
    
    /*
        变量的定义格式二(挖坑,同时种萝卜):
            数据类型 变量名称 = 数据值;//挖坑,同时种萝卜
    */
    short b = 100;//挖了一个short类型(2个字节)的坑,给这个坑起个名字叫b,同时向这个坑中存储数字100
    
    System.out.println(b);//打印short类型(2个字节)的坑b中的内容: 100
    
    /*
        变量的定义格式三(先挖多个坑,然后分别向每个坑中种萝卜):
        数据类型 变量名称1,变量名称2,变量名称3;//先挖多个坑
        变量名称1 = 数据值1;//向第一个坑中种萝卜
        变量名称2 = 数据值2;//向第二个坑中种萝卜
        变量名称3 = 数据值3;//向第三个坑中种萝卜
    */
    int c,d,e;//挖了三个int类型(4个字节)的坑,给每个坑分别起名为c,d,e
    
    c = 200;//把数字200存储到int类型的坑c中
    d = 300;//把数字300存储到int类型的坑d中
    e = 500;//把数字500存储到int类型的坑e中
    
    System.out.println(c);//打印int类型(4个字节)的坑c中的内容: 200
    System.out.println(d);//打印int类型(4个字节)的坑d中的内容: 300
    System.out.println(e);//打印int类型(4个字节)的坑e中的内容: 500
    
    /*
        变量的定义格式四(挖多个坑,同时分别向每个坑中种萝卜):
        数据类型 变量名称1 = 数据值1,变量名称2 = 数据值2,变量名称3 =数据值3 ;
    */
    //挖了三个long类型的坑,名字分别叫做f,g,h
    //同时把600L存储到坑f中
    //同时把700L存储到坑g中
    //同时把800L存储到坑h中
    long f = 600L,g = 700L,h = 800L;
    
    System.out.println(f);//打印long类型(8个字节)的坑f中的内容: 600
    System.out.println(g);//打印long类型(8个字节)的坑g中的内容: 700
    System.out.println(h);//打印long类型(8个字节)的坑h中的内容: 800
    
}

}

public class Demo02BianLiang {
public static void main(String[] args){
//float类型
//定义float类型变量a,并初始化
//大萝卜不能直接存储到小坑中
//float a = 6.6;//错误: 6.6默认是double类型,占8个字节,不能存储到4个字节的float变量中

    float a = 6.6F;
    System.out.println(a);//打印变量a中的内容
    
    //double类型
    //定义double类型变量b,并初始化
    double b = 8.8;
    System.out.println(b);//打印变量b中的内容
    
    //char类型
    //定义char类型变量c1,并初始化
    char c1 = 'a';
    System.out.println(c1);//打印变量c1中的内容
    
    //char c2 = '';//错误: ''中不能不写字符
    //System.out.println(c2);//打印变量c2中的内容
    
    //char c3 = 'ab';//错误: ''中不能写2个及以上的字符
    //System.out.println(c3);//打印变量c3中的内容
    
    //boolean类型: 只能存储true或者false
    //定义boolean类型变量d1,并初始化
    boolean d1 = true;
    System.out.println(d1);//打印变量d1中的内容
    
    d1 = false;//把false存储到变量d1中,原有的数据将被替换
    
    System.out.println(d1);//打印变量d1中的内容
    
    //d1 = 100;//错误: 数据类型不匹配
    //System.out.println(d1);//打印变量d1中的内容
    
    
}

}
2.4 变量的注意事项

不能在同一个区域({}),
变量定义的注意事项:
1.变量名称:在同一个大括号范围内,变量的名字不可以相同。
2.变量赋值:定义的变量,不赋值不能使用。
3.定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。
因为整数默认是int类型,整数太大可能超出int范围。

4.定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。
    因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。

public class Demo03BianLiangNotice {
public static void main(String[] args){

    //定义int变量a,并初始化
    int a = 100;        
    System.out.println(a);
    
    //错误: 不能在同一个区域({}),定义同名的变量
    //int a = 200;
    //System.out.println(a);
    
    //定义int变量b,未赋值
    int b;
    //System.out.println(b);//错误: b中没有值,不能使用
    
    b = 200;//把数字200赋值给变量b
    System.out.println(b);
    
    //long c = 6000000000;//错误: 6000000000(60亿)默认是int类型,但是大小已经远远超过int的取值范围(正负21亿)了
    //System.out.println(c);
    
    long d = 6000000000L;//6000000000L: 是long类型的数据
    System.out.println(d);
    
    //错误: 大萝卜不能直接放入小坑中
    //float e = 6.6;//错误: 6.6默认是double类型,占8个字节,不能赋值给4个字节的float变量e
    //System.out.println(e);
    
    float f = 6.6F;//6.6F: 是float类型的数据
    System.out.println(f);
}

}
2.5 标识符的含义及注意事项

标识符:
1.概念: 程序中起名字的地方(类名,方法名称,变量名)
2.命名规则: 硬 性 要 求
标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
标识符不能以数字开头。
标识符不能是关键字。
3.命名规范: 软 性 建 议
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
Demo01BianLiang
Demo02BianLiang
Demo03BianLiangNotice
Demo04BiaoShiFu

    方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
        getMin(...){...}
        getMax(...){...}
            
    变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。
        num
        value
        maxValue

public class Demo04BiaoShiFu {
public static void main(String[] args){
int b2;//正确
//int b2;//错误: 不能包含

    //int 2b;//错误: 不能以数字开头
    
    //int public;//错误: 不能是关键字。
    
    //按照小驼峰规则,定义变量
    int ageOfMyGirlFriend = 18;
    System.out.println(ageOfMyGirlFriend);
}

}
第三章 数据类型转换【理解】
3.1 自动类型转换【从小到大自动】

Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
int + int
int + long ==> long + long (把int转换成long: 从小到大,自动类型转换,不需要代码的干预)
int + long ==> int + int (把long转成int: 从大到小,强制类型转换,必须手动代码完成)


1.自动类型转换概念:
取值范围小的数据或者变量可以直接赋值给取值范围大的变量(小萝卜可以直接放入大坑中)

2.特点:
(1)自动类型转换是自动完成的,不需要代码的干预
(2)byte/short/char类型数据,只要参加运算会自动转换为int类型
(3)byte、short、char–>int–>long–>float–>double
举例:
有一个byte类型(1个字节)的数字5: 00000101
byte类型自动类型转换成short类型(2个字节):
在左侧补充1个字节的0,因为左侧补充的都是0,对原有数据是没有影响的,仍然是5
00000000 00000101

byte类型自动类型转换成int类型(4个字节):
在左侧补充3个字节的0,因为左侧补充的都是0,对原有数据是没有影响的,仍然是5
00000000 00000000 00000000 00000101

byte类型自动类型转换成long类型(8个字节):
在左侧补充7个字节的0,因为左侧补充的都是0,对原有数据是没有影响的,仍然是5
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000101

总结:
根据需求,在数据前面补充若干字节的0,因为补充的都是0,对原有数据大小是没有影响的(打肿脸充胖子)

结果是int类型(占用4个字节),不能直接赋值给左侧的byte类型的变量x,占用1个字节

		大萝卜不能直接放入小坑中

public class Demo05Convert {
public static void main(String[] args){
int i = 1;
byte b = 2;
/*
b是byte类型,i是int类型,运算时类型不一致,会发生自动类型转换
byte类型(1个字节)的b会自动转换成int类型(4个字节):在byte类型的b左侧补充3个字节的0

        最终变成了两个int数据相加,结果是int类型(占用4个字节),不能直接赋值给左侧的byte类型的变量x,占用1个字节
        
        大萝卜不能直接放入小坑中
    */
    //byte x = b + i; 
    //System.out.println(x);
    
    /*
        b是byte类型,i是int类型,运算时类型不一致,会发生自动类型转换
        byte类型(1个字节)的b会自动转换成int类型(4个字节):在byte类型的b左侧补充3个字节的0
        
        最终变成了两个int数据相加,结果是int类型(占用4个字节),可以直接赋值给左侧的int类型的变量y,占用4个字节
        
        大萝卜可以直接放入大坑中
    */
    int y = b + i;
    System.out.println(y);//3
}

}

public class Demo06Convert {
public static void main(String[] args){
int i = 1;
double d = 2.5;
/*
i是int类型,d是double类型,运算时类型不一致,会发生自动类型转换
int类型(4个字节)的i会自动转换成double类型(8个字节): 最终效果就是在整数后面添加.0 比如: 1变成1.0

        最终变成了两个double数据相加,结果是double类型(占用8个字节),不能直接赋值给左侧的int类型的变量x,占用4个字节
        
        大萝卜不能直接放入小坑中
    */
    //int x = i + d;        
    //System.out.println(x);
    
    /*
        i是int类型,d是double类型,运算时类型不一致,会发生自动类型转换
        int类型(4个字节)的i会自动转换成double类型(8个字节): 最终效果就是在整数后面添加.0 比如: 1变成1.0
        
        最终变成了两个double数据相加,结果是double类型(占用8个字节),可以直接赋值给左侧的double类型的变量y,占用8个字节
        
        大萝卜可以直接放入大坑中
    */
    double y = i + d;
    System.out.println(y);
}

}
3.2 强制类型转换【从大到小强制】

.格式:
转后类型 变量名称 = (转后类型)转前数据或者变量;
long类型(8个字节)的数字5:
long num = 5L;
long类型强制类型转换成int类型(4个字节):
int a = (int)num;//把num中的数据强制类型转换成int类型,并把结果赋值给int变量a

1.强制类型转换概念:
取值范围大的数据或者变量不能直接赋值给取值范围小的变量(大萝卜不能直接放入小坑中)
解决方案:
(1)把坑变大
(2)把萝卜变小(强制类型转换)

2.格式:
转后类型 变量名称 = (转后类型)转前数据或者变量;
long类型(8个字节)的数字5:
long num = 5L;
long类型强制类型转换成int类型(4个字节):
int a = (int)num;//把num中的数据强制类型转换成int类型,并把结果赋值给int变量a

举例:
有一个long类型(8个字节)的数字5:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000101

long类型强制类型转换成int类型(4个字节):
砍掉左侧的四个字节的内容,因为砍掉的都是数字0,所以对最终的结果数据没有影响仍然是5
00000000 00000000 00000000 00000101


long类型强制类型转换成short类型(2个字节):
砍掉左侧的六个字节的内容,因为砍掉的都是数字0,所以对最终的结果数据没有影响仍然是5
00000000 00000101

long类型强制类型转换成byte类型(1个字节):
砍掉左侧的七个字节的内容,因为砍掉的都是数字0,所以对最终的结果数据没有影响仍然是5
00000101

总结:
根据需求,砍掉数据左侧的若干字节的数据,只要砍掉的都是0,对原数据没有影响
但是只要砍掉的数据中包含1,就会对原数据产生影响(可能会损失精度)

public class Demo07Convert {
public static void main(String[] args){
double d = 1.5;
/*
左侧d是double类型(占8个字节),右侧的int类型的变量x(占4个字节)
相当于: 左侧是较大的数据,右侧的变量比较小
大萝卜不能直接放入小坑中
/
//int x = d;
//System.out.println(x);
/

左侧d是double类型(占8个字节),右侧的int类型的变量x(占4个字节)
double数据是不能直接赋值给int变量的: 大萝卜不能直接放入小坑中
但是进行了强制类型转换,把double数据强制转换成int数据

        double强制类型转换成int: 直接把小数部分干掉,会损失精度
    */
    
    int y = (int)d;
    
    System.out.println(y);
}

}

public class Demo08Convert {
public static void main(String[] args){
short s = 1;
/*
s是short类型,1是int类型,运算时类型不一致,会发生自动类型转换
short类型(2个字节)的s会自动转换成int类型(4个字节):在short类型的s左侧补充2个字节的0

        最终变成了两个int数据相加,结果是int类型(占用4个字节),不能直接赋值给左侧的short类型的变量s,占用2个字节
        
        大萝卜不能直接放入小坑中
    */
    //s = s + 1;        
    //System.out.println(s);
    
            
    /*
        s是short类型,1是int类型,运算时类型不一致,会发生自动类型转换
        short类型(2个字节)的s会自动转换成int类型(4个字节):在short类型的s左侧补充2个字节的0
        
        最终变成了两个int数据相加,结果是int类型(占用4个字节),不能直接赋值给左侧的short类型的变量s,占用2个字节
        
        但是在赋值之前把int类型的结果,强制转换成short类型(砍掉左侧的2个字节的内容),
        由于砍掉的2个字节都是0,所以最终的结果没有影响,仍然是2
        
        把萝卜变小
    */
    s = (short)(s + 1);
    System.out.println(s);
}

}
图解(其它案例):

3.3 ASCII码表

计算机是一个二货,只能存储0和1,所以存储到计算机中的所有内容都会转换成0和1进行存储
所以我们在计算机中存储的字符也不例外,也需要把字符转换成0和1进行存储
问题: 如何把字符转换成0和1呢?
通过ASCII编码表: 存储字符和数字对应关系的一张表格

存储字符时:需要查找ASC码表,找到字符对应的数字,将数字转换为二进制数存放到计算机中
‘A’ —> 65 —> 1000001 大写字母是连续的,ASCII编码值依次+1
‘a’ —> 97 —> 1100001 小写字母是连续的,ASCII编码值依次+1
‘0’ —> 48 —> 110000 数字字符是连续的,ASCII编码值依次+1

使用字符时:将对应的二进制数转换为十进制 找到ASC表中对应的字符
1000001 —> 65 —> ‘A’
1100001 —> 97 —> ‘a’
110000 —> 48 —> ‘0’

3.4 int类型和char类型的运算原理

public class Demo09Char {
public static void main(String[] args){
//定义char类型的变量ch,并初始化为’A’
char ch = ‘A’;
System.out.println(ch);//A
/*
自动类型转换中:
byte/short/char类型,只要参加运算,会自动转换为int类型

        ch是char类型,在参加运算时,自动转为int类型
        问题:
            char类型如何转换为int类型的数字呢?
            查看ASCII编码表: 找到'A'对应的数字是65,然后参与运算
            
    */
    System.out.println(ch+1);//66
    /*
        自动类型转换中:
            byte/short/char类型,只要参加运算,会自动转换为int类型
            
        ch是char类型,在参加运算时,自动转为int类型
            查看ASCII编码表: 找到'A'对应的数字是65,然后参与运算
            所以: ch + 1 的结果是66
            
        然后把int数字66强制转换成char类型的数据
        问题:
            int类型的数据如何强制转换成char类型数据呢?
            查看ASCII编码表: 找到int数字66对应的字符'B'显示出来
    */
    System.out.println((char)(ch+1));//B
}

}
第四章 运算符
4.1 算术运算符加减乘除

1.运算符:对常量或者变量进行操作的符号
2.表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
3.数学运算符:
(1)+: 加法运算
(2)-: 减法运算
(3): 乘法运算
(4)/: 除法运算
/

算数运算符
1.运算符:对常量或者变量进行操作的符号
2.表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
3.数学运算符:
(1)+: 加法运算
(2)-: 减法运算
(3)*: 乘法运算
(4)/: 除法运算
被除数 ÷ 除数 = 商(/: 取的就是商) … 余数
*/
public class Demo10Operator {
public static void main(String[] args){
int a = 3;
int b = 2;
System.out.println(a + b);//3 + 2: 5
System.out.println(a - b);//3 - 2: 1
System.out.println(a * b);//3 * 2: 6
//3/2: int/int 结果必然是int类型
System.out.println(a / b);//3 / 2: 1

    //int * double / int ==> double /   int ==> double / double ==> double
    System.out.println((a*1.0) / b);//3.0 / 2 ==> 3.0/2.0 ==> 1.5                
}

}
4.2 算术运算符%

/*
%运算符: 取余数(模)运算符
被除数 ÷ 除数 = 商(/: 取的就是商) … 余数(%: 取的就是余数)

作用:
    1.判断数字的奇偶性: 
        数字%2 结果是0 说明数字是偶数
        数字%2 结果不是0 说明数字是奇数
        
    2.判断一个数字是否能够被另外一个数字整除
        结果为0: 说明可以整除
        结果不为0: 说明不可以整除
        
    3.可以把%和/结合使用计算数字的个位,十位,百位,千位
        比如有个int变量num,保存数字1234
        int num = 1234;
        个位: num%10
        十位: num/10%10
        百位: num/100%10
        千位: num/1000%10

*/
public class Demo11Operator {
public static void main(String[] args){
System.out.println(10%2);//0 说明10是偶数
System.out.println(11%2);//1 说明11是奇数

    System.out.println(100%25);//0 说明100可以被25整除
    System.out.println(100%26);//22 说明100不可以被26整除
    
    System.out.println("---------------");
    int num = 1234;
    System.out.println(num%10);//4: 个位    1234 ÷ 10 = 商123 .... 余数4(%)
    //System.out.println(num/10);//123      1234 ÷ 10 = 商123(/) .... 余数4(%)
    System.out.println(num/10%10);//3 十位  123 ÷ 10 = 商12(/) ...  余数3(%)
    
    //System.out.println(num/100);//12     1234 ÷ 100 = 商12(/) ... 余数34(%)
    
    System.out.println(num/100%10);//2 百位 12 ÷ 10 = 商1(/) ...  余数2(%)
    
    System.out.println(num/1000%10);//1 千位
}

}

4.3 算术运算符+的特殊用法

/*
+符号的作用
1.数学中的加法运算(数字相加,字符相加)
2.字符串的拼接(把两个字符串连在一起)
/
public class Demo12Operator {
public static void main(String[] args){
System.out.println(5+5);//10
/

int + char ==> int + int ==> int
需要:
char ==> int 查看ASCII码表 'A’对应65
/
System.out.println(5+‘A’);//5 + 65: 70
/

自动类型转换中:
byte/short/char类型,只要参加运算,会自动转换为int类型
char + char ==> int + int ==> int
需要:
char ==> int 查看ASCII码表 'A’对应65
char ==> int 查看ASCII码表 'B’对应66
*/
System.out.println(‘A’+‘B’);//65 + 66: 131

    System.out.println("Hello"+"World");
    //"5+5="+5+5: 从左向右计算
    //先计算"5+5="+5: 此处+号代表字符串的连接 结果是"5+5=5"
    //然后"5+5=5"+5: 此处+号代表字符串的连接 结果是"5+5=55"
    System.out.println("5+5="+5+5);//5+5=55
    
    //()的优先级是比较高的,所以先计算5+5 结果10
    //然后"5+5="+10: 此处+号代表字符串的连接 结果是"5+5=10"
    System.out.println("5+5="+(5+5));//5+5=10

}

}
4.4 赋值运算符

/*
基本赋值运算符: =
复合赋值运算符:
+= a+=b a=a+b
-= a-=b a=a-b
= a=b a=a*b
/= a/=b a=a/b
%= a%=b a=a%b
*/
public class Demo13Operator {
public static void main(String[] args){
int a = 10,b = 20;
a += b;//a = a + b
System.out.println(a);//30
System.out.println(b);//20

    int c = 30,d = 20;
    c %= d;//c = c % d = 30%20 = 10
    
    System.out.println(c);//10
    System.out.println(d);//20
}

}

4.5 赋值运算符的特点

/*
赋值运算符特点
1.+=,-=,/=,*=,%= 运算结果的数据类型和左侧变量的数据类型不一致,隐藏强制类型转换
2.整数常量只要不超出所赋值的整数变量的取值范围,可以直接赋值,内部隐藏强制类型转换
/
public class Demo14Operator {
public static void main(String[] args){
short s = 1;
/

s是short类型,1是int类型,运算时类型不一致,会发生自动类型转换
short类型(2个字节)的s会自动转换成int类型(4个字节):在short类型的s左侧补充2个字节的0

        最终变成了两个int数据相加,结果是int类型(占用4个字节),不能直接赋值给左侧的short类型的变量s,占用2个字节
        
        大萝卜不能直接放入小坑中
    */
    //s = s + 1;        
    //System.out.println(s);
    
            
    /*
        s是short类型,1是int类型,运算时类型不一致,会发生自动类型转换
        short类型(2个字节)的s会自动转换成int类型(4个字节):在short类型的s左侧补充2个字节的0
        
        最终变成了两个int数据相加,结果是int类型(占用4个字节),不能直接赋值给左侧的short类型的变量s,占用2个字节
        
        但是在赋值之前把int类型的结果,强制转换成short类型(砍掉左侧的2个字节的内容),
        由于砍掉的2个字节都是0,所以最终的结果没有影响,仍然是2
        
        把萝卜变小
    */
    s = (short)(s + 1);
    System.out.println(s);
    
    short s2 = 1;
    /*
        +=,-=,/=,*=,%= 运算结果的数据类型和左侧变量的数据类型不一致,隐藏强制类型转换
    */
    s2 += 1;//s2 = (short)(s2 + 1);
    
    System.out.println(s2);
    /*
        右侧10是int类型(4个字节),左侧变量byte类型(1个字节)
        按照道理来讲: 大萝卜是不可以直接放入小坑中的
        现在为什么可以呢?
        原因是数字10是一个常量,值并没有超出byte的取值范围
        所以可以直接赋值,内部会帮助我们进行强制类型转换
        等价于:
            byte b = (byte)10;
    */
    byte b = /*(byte)*/10;
    System.out.println(b);//10
}

}
4.6 自增自减运算符

/*
自增(++)自减(–)运算符(代码演示只演示++)
1.作用: 让变量的值增加1(++)或者减少1(–)
2.使用格式:
(1)可以写在变量的前面: ++a,–a
(2)可以写在变量的后面: a++,a–

    3.使用特点:
        (1)单独使用: ++/--自己独占一行,没有其它运算一起参与
            前++和后++,没有任何区别,都是让变量的值增加1
            前--和后--,没有任何区别,都是让变量的值减少1
            
        (2)混合使用: 和其它运算(赋值,打印等)一起
            前++/--: 先++/--,后再使用     先给变量的值增加(++)或者减少(--)1,然后再使用++/--后的结果
            后++/--: 先使用,然后++/--     先使用变量的值,再把变量的值  增加(++)或者减少(--)1
    
    
重点:                 ----最常用的东西
    a++: 变量a的值增加1
    a--: 变量a的值减少1

*/
public class Demo15Operator {
public static void main(String[] args){
int a = 2;
//++自己独占一行,没有其它运算一起参与
a++;//a = a + 1 = 2 + 1
System.out.println(a);//3

    int b = 2;
    //++自己独占一行,没有其它运算一起参与
    ++b;//b = b + 1 = 2 + 1
    System.out.println(b);//3
    
    System.out.println("-----------------");
    int c = 2;
    /*
        目前是++和赋值一起操作,属于混合运算
        而且++写在了c的前面,先把c的值增加1,
        c的值变为3,然后再把结果3赋值给变量d,d的值3           
    */
    int d = ++c;
    
    System.out.println(c);//3
    System.out.println(d);//3
    System.out.println("-----------------");
    
    int e = 2;
    /*
        目前是++和赋值一起操作,属于混合运算
        而且++写在了e的后面,所以先使用e的值(2)赋值给变量f,所以f的值是2,
        然后e的值再增加1,变成3
    */
    int f = e++;
    
    System.out.println(e);//3
    System.out.println(f);//2
    
    System.out.println("-----------------");
    
    int x = 4; //5 6
    /*
        表达式(x++)+(++x)+(x*10)是从左到右计算的
        先计算(x++): 因为++在后面,先使用x的值4,然后x的值增加,变成5
        4 + (++x)+(x*10)
        接着计算(++x): 因为++在前面,先把x的值增加1,x变成6,然后再使用6
        4 + 6+(x*10)
        接着计算x*10 -->  6*10 结果: 60
        4 + 6 + 10 结果: 70
    */
    int y = (x++)+(++x)+(x*10);
            // 4 + 6 + 
    System.out.println(x);//6
    System.out.println(y);//70
    
}

}
总结

能够说出8种基本数据类型
四类八种:
整数: byte,short,int,long
小数: float,double
字符:char
布尔:boolean

能够完成变量的定义及输出
int a = 10;

int b;
b = 20;

int c,d,e;
c = 30;
d = 40;
e = 50;

int f = 60,g = 70;

能够知道类型转换的格式和顺序【小到大自动,大到小强制】
double d = 6.6;
int a = (int)d;

能够说出常见的运算符有哪几种
数学运算符: +,-,,/,%
赋值运算符: +=,-=,/=,
=,%=
自增,自减运算符: ++,–

能够知道除法和取余的区别
/: 除法 求的是商
%: 取余 求的余数

能够完成字符和字符串的加
+:
(1)数学中的加法运算(数字和数字,数字和字符,字符和字符)
(2)字符串的连接: +的左侧或者右侧一点出现字符串,就无法进行数学意义上的加法运算,代表字符串的连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值