Java基础语法(下)

学习资料

b站狂神说: https://www.bilibili.com/video/BV12J41137hu

类型转换

强制转换

/**
 * @ProjectName: JavaSE
 * @PackageName: PACKAGE_NAME
 * @Author: zy7y
 * @Date: 2020/8/14 上午10:17
 * @Description: 类型转换; 语法 (类型)变量
 */
public class TypeConversion {
    // 由低至高
    // byte -> short,char -> int -> long -> float -> double

    public static void main(String[] args) {
        int intValue = 128;
        // int 转为byte需要强转,高转底,会出现内存溢出,精度丢失
//        byte byteValue = intValue;
        byte byteValue = (byte)intValue;
        System.out.println(byteValue); // -128

        // 底转高,将自动进行转换
        double doubleValue = intValue;
        System.out.println(doubleValue); // 128.0


        // 等级 一致时 不需要进行转换(char类型除外)
        short shortValue = byteValue;
        System.out.println(shortValue);

        // 内存溢出,及解决实例
        // JDK7新特性,数字之间可以使用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money * years;// -1474836480 内存溢出
        System.out.println(total);

        //解决内存溢出;将表达式中某一内容,转成高点的类型
        long total1 = (long)money * years;
        System.out.println(total1); // 20000000000

    }
}

变量

/**
 * @ProjectName: JavaSE
 * @PackageName: PACKAGE_NAME
 * @Author: zy7y
 * @Date: 2020/8/14 上午10:37
 * @Description:
 * 定义变量; 语法; 类型 变量名 = 值
 * 局部变量:定义在方法中的变量,必须声明和初始化值
 * 类变量:定义在类中,使用static修饰,属于类
 * 实例变量:定义在类中
 * 常量:final 类型 常量名
 */
public class Variable {
    // 常量
    static final double PI = 3.14;

    // 类变量: static, 属于类
    static String job = "软件测试";

    // 实例变量:属于对象
    String adder;

    public static void main(String[] args) {
        // 局部变量:方法里的变量必须声明和初始化值
        String name = "小明";
        char sex = '男';
        int age = 23;
        double height = 1.57;
        System.out.println(name +',' + sex+',' + age+',' + height + 'm');

        // 使用实例变量
        Variable variable = new Variable();
        System.out.println(variable.adder);

        // 使用类变量
        System.out.println(job);    // 当前类使用
        System.out.println(Variable.job); // 其他类可以这样使用

        System.out.println(Variable.PI);
    }
}

运算符

算术运算符

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午10:58
 * @Description: 算术运算符
 */
public class BaseOperator {
    public static void main(String[] args) {
        // ctrl + d ; 复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;
        System.out.println(a + b);
        System.out.println(c - b);
        System.out.println(b * d);
        System.out.println(d / a);
      	// 取余数:模运算
        System.out.println(c % a);
        
        // 自动升级
        double e = 23;
        System.out.println(e + a); //结果类型将自动升级成double
    }
}

自增、自减运算符

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午11:07
 * @Description: 自增、自减
 */
public class SelfCalculation {
    public static void main(String[] args) {
        int intValue = 3;

        // 自增
        int selfCalculation = intValue++; // intValue = intValue + 1, 先赋值,再自增执行intValue = intValue + 1
        System.out.println(selfCalculation); // 3

        int intValue1 = 3;
        int selfCalculation1 = ++intValue1; // intValue = intValue + 1,先运算再赋值,
        System.out.println(selfCalculation1); // 4

        // 自减
        System.out.println(intValue); // 4
        selfCalculation = intValue--;
        System.out.println(selfCalculation); // 4

        System.out.println(intValue1); // 4
        selfCalculation1 = --intValue1;
        System.out.println(selfCalculation1); // 3

        // 次方运算
        System.out.println(Math.pow(2,3));

    }
}

逻辑运算符

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午11:16
 * @Description: 逻辑运算符
 */
public class LogicalOperators {
    public static void main(String[] args) {
        boolean booleanTrue = true;
        boolean booleanFalse = false;

        // 与运算:&&, 两个变量值都为真,结果才为true
        System.out.println(booleanTrue && booleanFalse); // false

        // 或运算;两个变量有一个为真,结果就为true
        System.out.println(booleanFalse || booleanTrue); // true

        // 非运算;如果为真,结果就是假,如果为假,结果就是真
        System.out.println(!(booleanTrue || booleanFalse)); // false
    }
}

位运算符

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午11:23
 * @Description: 位运算符; 二进制使用
 */
public class BitOperation {
    public static void main(String[] args){
        /*
        * A = 0011 1100
        * B = 0000 1101
        *
        * & 与, | 或, ^异或, ~取反
        * A & B : 如果两位都是1才为1否则为0 , 0000 1100
        * A | B : 如果有一位为1 结果就为1, 0011 1101
        * A ^ B : 如果相同为0,否则为1, 0011 0001
        * ~B    : 如果为0变为1,1变为0 :1111 0010
        *
        * << : * 2
        * >> : / 2
        * */
        // 0000 0001 : 十进制为1, 0000 0010 : 十进制为2 0000 0100:十进制为4,0000 1000 8, 结论左移动一位 * 2
        // 转换成2进制; 0000 1000  右移2位 :0000 0010
        System.out.println(8 >> 2); // 2
        // 转换成2进制; 0000 1000 左移2位:0010 0000
        System.out.println(8 << 2); // 16

    }
}

三元运算符

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午11:41
 * @Description: 三元运算符; 语法 x ? y :z;  表达式 ? 为true时执行: 为false执行
 */
public class TernaryOperation {
    public static void main(String[] args) {
        int score = 50;
        String type = score < 60 ? "不及格" : "及格";
        System.out.println(type);
    }
}

包机制

命名:一般使用公司域名倒置;com.zy7y.cnblogs

// 导入包下所有类(.class文件)
import com.zy7y.cnblogs.operator.*;

JavaDoc生成文档

javadoc -encoding UTF-8 -charset UTF-8 Variable.java 

Idea 生成Javadoc:https://blog.csdn.net/cai454692590/article/details/85286139

posted @ 2020-08-14 12:06  zy7y  阅读(205)  评论(0编辑  收藏  举报