Java基础-学习笔记

1. day01

1.1 JDK,JRE,JVM三者之间的关系,以及JDK、JRE包含的主要结构有哪些

JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc.exe)
JRD = JVM + Java核心类库

1.2 为什么要配置path环境变量?如何配置?

JAVA_HOME = bin的上一层目录
path = %JAVA_HOME%\bin

1.3 常用的几个命令行操作都有哪些?(至少4个)

2. day02

2.1 变量



2.2 自动类型提升与强制类型转换

2.2.1 自动化类型提升

基本数据类型之间的运算规则:

前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的。

1. 自动类型提升:
    结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
    byte 、char 、short --> int --> long --> float --> double 

    特别的:当byte、char、short三种类型的变量做运算时,结果为int型
    
2. 强制类型转换:见VariableTest3.java

说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量

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

        byte b1 = 2;
        int i1 = 129;
        // 编译不通过
        // byte b2 = b1 + i1;
        int i2 = b1 + i1;
        long l1 = b1 + i1;
        System.out.println(i2);

        float f = b1 + i1;
        System.out.println(f);

        short s1 = 123;
        double d1 = s1;
        System.out.println(d1);// 123.0

        // ***************特别地*********************
        char c1 = 'a';// 97
        int i3 = 10;
        int i4 = c1 + i3;
        System.out.println(i4);

        short s2 = 10;
        // char c2 = c1 + s2;//编译不通过

        byte b2 = 10;
        // char c3 = c1 + b2;//编译不通过

        // short s3 = b2 + s2;//编译不通过

        // short s4 = b1 + b2;//编译不通过
        // ****************************************

    }
}

2.2.2 强制类型转换

强制类型转换:自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。 

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

        double d1 = 12.9;
        // 精度损失举例1
        int i1 = (int) d1;// 截断操作
        System.out.println(i1);

        // 没有精度损失
        long l1 = 123;
        short s2 = (short) l1;

        // 精度损失举例2
        int i2 = 128;
        byte b = (byte) i2;
        System.out.println(b);// -128

    }
}

 2.2.3 变量运算规则的两个特殊情况

public static void main(String[] args) {

    // 1.编码情况1:
    long l = 123213;
    System.out.println(l);
    // 编译失败:过大的整数
    // long l1 = 21332423235234123;
    long l1 = 21332423235234123L;

    // ****************
    // 编译失败
    // float f1 = 12.3;
    float f1 = (float) 12.3;
    // 2.编码情况2:
    // 整型常量,默认类型为int型
    // 浮点型常量,默认类型为double型
    byte b = 12;
    // byte b1 = b + 1;//编译失败

    // float f1 = b + 12.3;//编译失败

}

9. day09

9.1 探讨几道网红问题

代码实现如下:

//方法一:
public static void method(int a, int b) {
    a = a*10;
    b = b*20;
    System.out.println("a=" + a);
    System.out.println("b=" + b);
    System.exit(0);    
}

//方法二:
public static void method(int a, int b) {
    PrintStream ps = new PrintStream(System.out) {
        @Override
        public void println(String x) {
            if("a=10".equals(x)) {
                x="a=100";
            }else if("b=10".equals(x)) {
                x="b=200";
            }
            super.println(x);
        }
    };
    System.setOut(ps);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值