例子:
int=num=100;System.out.println(num);
if(true){int num=1000;System.out.println(num);}
此时会报错,因为当比较大的数重新定义在后面时,会报错,因为不能把小数往大数转;
但如果不是int num=1000,而是num=1000时, if(true){num=1000;System.out.println(num);}这是重新赋值,不会报错。
例子:
class A
{
A(){System.out.println("1.输出");}//构造函数
{System.out.println("2.输出");}//非静态代码块
static{System.out.println("3.输出");}//静态代码块
}
若使用:new A();new A();new A();//创建三个类的时候
static的代码块只执行一次,并且static最先执行,其次到非static代码块,再到构造函数
例子:
经常使用equals函数,进行比较两个字符串的内容是否相等,equals与==有一定的区别
String A=new String("输出");
String B="输出";
System.out.println(A==B);//此时输出的值为false,因为==只能用于基本数据类型,其他的数据类型,不适合。
System.out.println(A.equals(B));//此时输出的值为true,因为equals是直接比较内容,没有进行其他的比较
String C=null;//空的字符串
if("输出".equals(C))//equals前面的,可以用具体的字符串表示,即"输出",但是,C为null,则不能C.equals("输出"),此时为报错,因为null不能放前面。