关于java中++自增、–自减的理解
1.程序描述
public static void main(String[] args) {
int i=0;
i=i++;
System.out.println(i);
}
问题:按照程序的字面意思来看,控制台输出应该是1,因为i++自增后会变为1.但是。。。
1.1程序结果
控制台输出的并不是1,而是0;
解释:
通俗解释:i++本身是一个表达式且有返回值,返回值为i没有自增前的结果。因此i++整体其实还是属于零。
“专业“解释:当我们声明一个变量i时就会在内存中开辟一个空间,且是栈空间。当i++表达式执行后i=1,这个结果又会被复制到一个叫变量空间地址上,此时的栈空间的i会变会0。当system.out.print是拿到的则是栈空间内的i,也是值为0的i;(初学者理解有限,目前只能这样分析让自己便于理解)
关于java中final和static的理解
1.static关键字
声明变量时:
该变量变成所有对象的共享的。
可以在不实例化对象时就调用该变量(一般很少这么做)
声明方法时:
该方法变为所有对象共享的成员
可以在不实例化该类就调用该类中的stati方法
需要主要的是接口不能定义静态方法和静态变量
静态方法只能调用静态的成员
1,1程序演示
public class test9 {
public static void main(String[] args) {
A.A_1();
String temp = A.temp;
System.out.println(temp);
}
}
class A{
public static String temp = "我是静态方法";
public static void A_1() {
System.out.println("我是静态方法");
}
}
2.final关键字
声明变量时
该变量的变为常量,只在内存中开辟一个空间,内容不能更改
声明方法时
该方法不能不可被覆盖,不能指向其他引用。
声明类时
表示该类不能被继承