一、byte 加减问题
1、初始化时,系统将1强转为int型;
byte a = 1;
2、(错误)当b与a做加法运算时,系统将byte型转为int型,结果为int型,没有强制转换,报错;
byte a = 1,b = 2;
a = a + b;
3、做自加运算时,系统自动强转,等价于a = (byte)a + 1;
byte a = 0;
a += 1;
在JVM中,大部分的指令都没有支持byte、char、short,没有任何指令支持boolean类型。编译器在编译期或者运行期将byte和short类型的数据带符号扩展为相应的int类型数据,将boolean和char类型数据零位扩展为相应的int类型数据。因此,大多数对于byte、char、short和boolean类型数据的操作,实际上都是使用相应的int类型作为运算类型的
二、方法重载
方法的重载:在同一个类中,方法名相同,参数列表不同,返回值不能作为重载的条件
在类中可以创建多个方法,他们具有相同的名字,但具有不同的参数和不同的定义;
返回值不同不能作为重载的条件
public class Main {
public static void main(String[] args){
}
public static int method(int x){
return ret;
}
public static void method(float x){
}
}
当同名的方法中参数相同,返回值就不能不同。
三、局部变量的使用
public void method1() {
int i = 5; //其作用范围是从第2行,到其所处于的块结束
System.out.println(i);
{ //子块
System.out.println(i); //可以访问i
int j = 6;
System.out.println(j); //可以访问j
}
System.out.println(j); //不能访问j,因为其作用域到第8行就结束了
}
作用域外不能访问作用域;
四、成员变量与参数同名
方法内优先使用参数
public class HelloWorld {
int i = 1; //成员变量是i
public void method1(int i){ //参数也是i
System.out.println(i);
}
public static void main(String[] args) {
new HelloWorld().method1(5);
}
}
打印结果为5;
方法内优先使用参数