JAVA的程序代码小细节,变量的使用,以及一些细节的面试题

时间:2022-02-12 10:34:56

package cn.hncu;

public class LableDemo {

public static void main(String[] args) {
//demo1();
demo2();
}

//如果要跳出多层循环,建议采用标签技术
private static void demo2() {
aa:for(int i=0;i<20;i++){
for(int j=0;j<20;j++){
for(int k=0;k<20;k++){
if(k==3*i+5*j-8){
System.out.println("i="+i+",j="+j+",k="+k);
break aa;//跳出标签“aa”标识的范围
}
}
}
}
}

private static void demo1() {
boolean flag = true;
boolean boo = true;
for(int i=0;i<20;i++){
for(int j=0;j<20;j++){
for(int k=0;k<20;k++){
if(k==3*i+5*j-8){
System.out.println("i="+i+",j="+j+",k="+k);
flag = false;
break;//只能跳出一层循环
}
}
if(flag==false){
boo = false;
break;
}
}
if(boo==false){
break;
}
}
}

}

---------------------------------------------

package cn.hncu;

public class Test3 {
private int i;//实例变量,我们可以不赋初值就用
public void aa(){
int x;//局部变量,必须要我们先赋值才能用(读取该变量的值)
System.out.println(i);
//System.out.println(x);
// if(x>i){
// System.out.println("Error");
// }

if(i>=0){
x = 50;
}

//System.out.println(x);//块内的赋值,在这里是不可见的

}
public static void main(String[] args) {
Test3 t = new Test3();
t.aa();
}

}

--------------------------------------------------

package cn.hncu;

public class Test4 {
//private static int i; //1 类级-所有对象共享的 ----第一次用到该类,Java会帮我们初始化值的
private static String name="Java学习";//1类级
private int i; //2 对象级 --每个对象中的----只要new一个对象,Java会帮我们初始化值的
private static int y;
static {
y=5;
}

{//实例块
int kk = 2; //4 块级----我们必须手动先赋值才能使用
}

public static void aa(){
}
public void bb(){
int j=3;//3 方法级 ----我们必须手动先赋值才能使用
if(j==3){
int k=4; //4 块级----我们必须手动先赋值才能使用
}
//System.out.println(k);//在块的外部,不能访问块内部的声明的变量(块级变量)

System.out.println(y);//5
}

public static void main(String[] args) {
//System.out.println(i);
//new Test4() 是最常见的使用Test4这个类
Test4.aa();//也算用test4这个类
//如果我有一个Test4的子类,当我们使用子类时,也会自动去用Test4这个类
}

}

--------------------------------------------------

package cn.hncu;
/*
* 先执行第1级,再执行第2级;
* 每一级都是先父类,再子类
* 第1级只会在第一次使用时会执行,后面使用时是不会再执行的---static的东西只初始化一次
* 第2级是用一次执行一次
*/
public class Test5 {
public static void main(String[] args) {
//第一道面试题
Father father = new Child();
father = new Child();
System.out.println("-----------------");

//第二道面试题
//?号表达式,冒号两边的表达式的数据类型必须一致(如果不同则自动向高精度靠齐)
System.out.println( (test2()==3)?i+15 : i+10.0 ) ;
}

static int i=5;
private static int test2() {
if(i==5){
i = i+10;
}
return i=i/5;
}

public void aa(){
System.out.println("aaaaa");
}
public static void xy(){
//aa();//静态方法中不能访问非静态成员
}
}

class Father{
public Father(){
System.out.println("father...");
}
static{
System.out.println("father2");
}
}
class Child extends Father{
public Child(){
System.out.println("child...");
}
static{
System.out.println("child2");
}
}

------------------------------------------------

package cn.hncu;

public class Test6 {
public static void abc(){
System.out.println("abc...");
}
public void aa(){
System.out.println("aa");
}
public static void main(String[] args) {

}
}

class T10 extends Test6{

//java不允许用非静态方法覆盖静态方法,反过来也不行
// public void abc(){

// }

// public static void aa(){

// }

}

------------------------