JAVA基础学习
Java项目代码结构
Project(工程)
Module(模块)
Package(包)
Class(类)
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 去运算的原因。