JAVA基础学习

119

Java项目代码结构

  1. Project(工程)

  2. Module(模块)

  3. Package(包)

  4. Class(类)

快捷键

作用

main/psvm sout

快速键入相关代码

Ctrl + D

复制当前数据到下一行

Ctrl + Y

删除所在行,建议用Ctrl + X

Ctrl + ATL + L

格式化代码

ALT + Shift + ↑

ALT + Shift + ↓

上下移动当前代码

Ctrl + /

Ctrl + Shift + /

对代码进行注释

JAVA的数据类型

1.基本数据类型

2.引用数据类型

方法重载

package top.waterx;

public class Main {
    
    public static void main(String[] args) {
        print(8848);
        print("text");
    }
    
    public static void print(int a){
        System.out.println(a + "number");
    }
    
    public static void print(String a){
        System.out.println(a + "string");
    }
    
}

方法重载可以理解为方法的"多音字",同一个名字的方法可以写成多个,但是形参不一样。

形参的顺序可以调换,也算方法重载。但如果只是变量名称不同,那不算。

自动/强制类型转换

package com.itheima.type;

public class TypeDemo1 {
    public static void main(String[] args) {
        // 目标:认识自动类型转换,强制类型转换。
        byte a = 12;
        print(a); // 自动类型转换
    }

    public static void print(int b) {
        System.out.println(b);
    }
}

它的原理:

有的人就要问了:兄弟兄弟,那我要是范围大的变量转到小范围的你不炸了吗?

所以强制类型转换就要上了,怎么个语法呢:

类型 变量名 = (类型) 变量名

示例:

int a = 10;
byte b = (byte) a;

但这样小数据还行,但一到大数据,大于小范围变量的那个范围了,怎么办?数据溢出!只保留要的比特,其它丢掉。

如果是小数强制转成整数呢,就会丢掉小数位。

表达式的自动类型提升

所以,方法的这个返回类型必须是表达式中最高的那个类型。

既然 byte,short,char 都是按 int 去算的,那该怎么办呢?比如我把他们两相加一下,复制给另一个变量,它就是 int 类型的了。在返回的时候或之前把它强制转换一下就好了。

public static byte calc3(byte a, byte b) {
byte c= (byte) (a + b);
return c;
}

那我问你,为什么这三个类型非要按 int 的形式去运算,干啥呢这是?诶,这就错了。

比如a 变量为 110,b 变量为120,都是 byte 类型,都没超过最大范围 127 吧?但是你把它两相加起来赋值给变量 c,变成 230 了,直接溢出了,这你不炸了吗,所以这就是为什么要以 int 去运算的原因。