Java基础语言知识

一、类型转换

1.自动类型转换

2.表达式的自动类型转换

3.强制类型转换

二、运算符

1.基本算术运算符

2.+符号做连接符

3.自增自减运算符

4.赋值运算符

5.关系运算符

6.逻辑运算符

7.三元运算符

8.运算符优先级

9.案例:键盘录入技术


一、类型转换

1.自动类型转换

定义:类型范围小的变量,可以直接赋值给类型范围大的变量

为什么要进行类型转换?---存在不同类型的变量赋值给其他类型的变量

package com.pikaqiu.type;

public class TypeDemo1 {
    public static void main(String[] args) {
        byte a = 20;
        int b = a; //发生了自动类型转换
        System.out.println(a);
        System.out.println(b);

        int age = 23;
        double db = age; //自动类型准换
        System.out.println(db);

        char ch = 'a';
        int code = ch;
        System.out.println(code);
    }
}

2.表达式的自动类型转换

在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算

注意事项:1.表达式的最终结果类型由表达式中的最高类型决定;2.在表达式中,byte、short、char是直接转换为int类型参与运算的

package com.pikaqiu.type;

public class TypeDemo2 {
    public static void main(String[] args) {
        byte a = 10;
        int b = 20;
        double c = 1.0;
        double rs = a+b+c;
        System.out.println(rs);

        double rs2 = a+b-2.3;
        System.out.println(rs2);

        //题目
        byte i = 10;
        byte j = 20;
        //byte k = i+j; 错误,在表达式中,byte、short、char是直接转换为int类型参与运算的
        int k = i+j;
        System.out.println(k);
    }
}

3.强制类型转换

定义:可以强行将类型范围大的变量、数据赋值给类型范围小的变量

数据类型 变量2 = (数据类型)变量1、数据

注意事项:1.强制类型转换可能造成数据(丢失)溢出;2.浮点型强制转换成整型,直接丢掉小数部分,保留整数部分返回

package com.pikaqiu.type;

public class TypeDemo3 {
    public static void main(String[] args) {
        int a = 20;
        byte b = (byte)a;
        System.out.println(a);
        System.out.println(b);

        int i = 1500;
        byte j = (byte)i;
        System.out.println(j); //强制类型转换造成了数据溢出

        double score = 99.5;
        int it = (int)score;
        System.out.println(it); //浮点型强制转换成整型,直接丢掉小数部分,保留整数部分返回
    }
}

二、运算符

1.基本算术运算符

package com.pikaqiu.operator;

public class OperatorDemo1 {
    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 * 1.0/b); //得到小数
        System.out.println(a%b);
    }
}

案例:将一个三位数,拆分成个位、十位、百位后,打印输出

package com.pikaqiu.operator;

public class OperatorDemo2 {
    public static void main(String[] args) {
        // 需求:拆分3位数,把个位、十位、百位分别输出
        int data = 589;

        //1.个位
        int ge = data%10;
        System.out.println(ge);

        //2.十位
        int shi = data/10 % 10;
        System.out.println(shi);

        //3.百位
        int bai = data/100;
        System.out.println(bai);
    }
}

2.+符号做连接符

"+"符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串

package com.pikaqiu.operator;

public class OperatorDemo3 {
    public static void main(String[] args) {
        //能算则算,不能算就在一起
        int a = 5;
        System.out.println("abc"+'a'); //abca
        System.out.println("abc"+a); //abc5
        System.out.println(5+a); //10
        System.out.println(5+'a'); //102
        System.out.println("abc"+5+'a'); //abc5a
        System.out.println(15+"abc"+15); //15abc15
        System.out.println(a+'a'); //102
        System.out.println(a+""+'a'); //5a
        System.out.println(a+'a'+"pikaqiu"); //102pikaqiu
        System.out.println("pikaqiu"+a+'a'); //pikaqiu5a
        System.out.println("pikaqiu"+(a+'a')); //pikaqiu102
    }
}

3.自增自减运算符

++ : 自增,变量自身的值加1

--  : 自减,变量自身的值减1

注意:1.++和--既可以放在变量后面,也可以放在前面;2.++和--只能操作变量,不能操作字面量

package com.pikaqiu.operator;

public class OperatorDemo4 {
    public static void main(String[] args) {
        //单独使用
        int a = 10;
        a++; //a = a+1;
        System.out.println(a); //11

        int b = 10;
//        b--; //b=b-1
//        System.out.println(b); //9
        --b;
        System.out.println(b); //9

        System.out.println("--------------------------------------------");
        //在表达式中不是单独使用
        //++、--在变量前面,先+1、-1,再使用
        int i = 10;
        int j = ++i;
        System.out.println(i); //11
        System.out.println(j); //11

        //++、--在变量后面,先使用,再+1、-1
        int m = 10;
        int n = m++;
        System.out.println(m); //11
        System.out.println(n); //10
    }
}

案例:

package com.pikaqiu.operator;

public class OperatorDemo4 {
    public static void main(String[] args) {
        //单独使用
        int a = 10;
        a++; //a = a+1;
        System.out.println(a); //11

        int b = 10;
//        b--; //b=b-1
//        System.out.println(b); //9
        --b;
        System.out.println(b); //9

        System.out.println("--------------------------------------------");
        //在表达式中不是单独使用
        //++、--在变量前面,先+1、-1,再使用
        int i = 10;
        int j = ++i;
        System.out.println(i); //11
        System.out.println(j); //11

        //++、--在变量后面,先使用,再+1、-1
        int m = 10;
        int n = m++;
        System.out.println(m); //11
        System.out.println(n); //10

        System.out.println("---------------------案例(参考了解)-----------------------");
        int k = 3;
        int p = 5;
        int rs = k++ + ++k - --p + p-- - k-- + ++p + 2;

        System.out.println(k); //4
        System.out.println(p); //4
        System.out.println(rs); //9
    }
}

4.赋值运算符

package com.pikaqiu.operator;

public class OperatorDemo5 {
    public static void main(String[] args) {
        int a = 10;
        int b = 200;
        a += b; //a = (int) (a + b);
        System.out.println(a); //210

        byte i = 10;
        byte j = 20;
        i += j; // i = (byte) (i + j);
        System.out.println(i); //30

        int m = 10;
        int n = 5;
//        m -= n; // m = (int) (m - n);
//        m *= n; // m = (int) (m * n);
//        m /= n; // m = (int) (m / n);
        m %= n; // m = (int) (m % n);
        System.out.println(m); //0
    }
}

5.关系运算符

定义:是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(true,false)

注意:在做相等判断时,千万不要把==写成=

package com.pikaqiu.operator;

public class OperatorDemo6 {
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        boolean rs = a == b;
        System.out.println(rs);

        System.out.println(a == b); //true
        System.out.println(a != b); //false
        System.out.println(a > b); //false
        System.out.println(a >= b); //true
        System.out.println(a < b); //false
        System.out.println(a <= b); //true

        System.out.println(i = j); //5,相等判断必须是==,如果使用=是在赋值
    }
}

6.逻辑运算符

定义:可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果

注意:逻辑与"&"、逻辑或"|" : 无论左边是false还是true,右边都要执行

package com.pikaqiu.operator;

public class OperatorDemo7 {
    public static void main(String[] args) {
        double size = 9.8;
        double storage = 6;
        //需求:尺寸大于等于6.95,内存要大于等于8GB
        //逻辑与:必须都为true结果才是true
        System.out.println(size > 6.95 & storage > 8); //false

        //需求:要么尺寸大于等于6.95,要么内存要大于等于8GB
        //逻辑或:有一个为true结果就是true
        System.out.println(size > 6.95 | storage > 8); //true

        //逻辑非
        System.out.println(!true); //false
        System.out.println(!false); //true

        //逻辑异或
        //相同为假,不同为真
        System.out.println(false ^ true); //true
        System.out.println(true ^ true); //false

        System.out.println("--------------------&&、&、|、||的区别--------------------");
        int a = 10;
        int b = 20;
        int i = 10;
        int j = 20;

        //&&当判断前面的为假时,后面的不执行 ; ||当判断前面为真时,后面的不执行
        System.out.println(a > 100 && ++b > 10);
        System.out.println(b); //此时b=20

        System.out.println(a > 100 & ++b > 10);
        System.out.println(b); //此时b=21

        System.out.println(i > 2 || ++j > 10);
        System.out.println(j); //此时j=20
        System.out.println(i > 2 | ++j > 10);
        System.out.println(j); //此时j=21
    }
}

7.三元运算符

三元运算符格式:表达式条件 ? 值1 : 值2;

执行过程:首先计算表达式的值,如果值为true,返回值1;如果值为false,返回值2

package com.pikaqiu.operator;

public class OperatorDemo8 {
    public static void main(String[] args) {
        double score = 98;
        String rs = score >= 60 ? "考试通过" : "挂科";
        System.out.println(rs);

        //需求:从两个整数中找出较大值
        int a = 10;
        int b = 200;
        int max = a > b ? a : b;
        System.out.println(max);

        System.out.println("------------------求三个整数的最大值------------------");
        int i = 10;
        int j = 20;
        int k = 30;
        //1.找出两个整数的较大值
        int temp = i > j ? i : j;
        //2.拿临时变量与第三个变量比较,得出最大值
        int max2 = k > temp ? k : temp;
        System.out.println(max2);

        System.out.println("------------------拓展知识------------------");
        int max3 = i > j ? (i > k ? i : k) : (j > k ? j : k);
        System.out.println(max3);
    }
}

8.运算符优先级

定义:在表达式中,哪个运算符先执行后执行是要看优先级的,例如"/"的优先级高于"+"

package com.pikaqiu.operator;

public class OperatorDemo9 {
    public static void main(String[] args) {
        //&&优先级大于||
        System.out.println(10 > 3 || 10 > 3 && 10 < 3); //true
        System.out.println((10 > 3 || 10 > 3) && 10 < 3); //false
    }
}

9.案例:键盘录入技术

API是什么:应用程序接口;Java写好的程序,我们可以直接调用

package com.pikaqiu.scanner;

import java.util.Scanner;

//1.导包操作(并不需要自己写,以后通过工具进行导入更加方便)
//import java.util.Scanner;
public class ScannerDemo {
    public static void main(String[] args){
        //2.得到一个键盘扫描器对象
        Scanner sc = new Scanner(System.in);

        //3.调用sc对象的功能等待接收用户输入的数据
        System.out.println("请输入您的年龄: ");
        //这个代码会等待用户输入数据,直到用户输入完数据并按了回车键就会把数据拿到
        int age = sc.nextInt();
        System.out.println("您的年龄是: " + age);

        System.out.println("请输入您的姓名: ");
        String name = sc.next();
        System.out.println("欢迎: " + name);
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮卡丘√

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值