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

本文探讨了Java中标签在循环控制中的应用及变量的作用域规则。通过具体示例介绍了如何利用标签实现多层循环的控制,并详细解释了实例变量、局部变量等不同类型的变量在Java中的使用特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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(){

//}

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值