Java语言基础

本文分享Java语言基础中几种常见错误及解决方案,包括显式类型转化、复合语句、循环语句和String类相关问题。如显式类型转化要注意变量取值范围,复合语句输出局部变量需在对应层输出,循环语句要区分do - while与while,String类输出长字符串可用“+”连接。

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

Java语言基础

分析了几种错误及解决方案,写出来跟大家分享

显式类型转化

public class Convert{
    public static void main(String[]args){
        //TODO AUTO-generated method stub
        byte a=(byte)129.222;
        System.out.println(a);
    }
}

编译器显式转化结果为-127

解决方法:

转化时应该注意各变量的取值范围,byte的范围是-128-127,129.22已经超过范围,但编译器不会报错,应该注意此类问题

复合语句

输出局部变量时报错

在最外层输出局部变量时编译失败。

解决方法:

局部变量的作用域仅限于创建它的复合语句内,内部作用域可以访问外部作用域变量,反之不可以,所以解决上面问题只需要在变量对应的层输出就可以。

public class Compand{
    public static void main(String[]args){
        int x=20;{
            int y=40;
            System.out.printlun(y);
            int z=245;
            boolean b;
            {
                b=y>z;
                boolean b;
                b=y>z;
                System.out.println(b);
                System.out.println(b);
               
            }
            System.out.println(b);
            System.out.println(b);
        }
        System.out.println(z);
        System.out.println(y);
    }
    String word="hello world";
    System.out.println(word);
}

循环语句

陷入死循环

用while语句输出时进入死循环,无法输出结果。

public class First{
    public static void main(String[]args){
        int x=0;
        while(x!=5);
        System.out.println("x等于"+(++x));
    }
}

解决方案:

出错原因大多是都是混淆do-while与while的区别,do-while循环一般要在循环结束后加“;” ,while循环不需要

运行for循环语句出错

运行结果如下所示:

[I@2a139a55

[I@2a139a55

[I@2a139a55
代码如下:
public class eg4_3_3{
public static void main(String[]args){
    int a[]={1,2,3};
    for(int x:a){
        System.out.println(a);
    }
}
}

解决方案:

将代码中的第5行改为:System.out.println(x);用来将遍历的内容显示出来,而不是将数组直接显示出来。

String类

连接多个字符串

输出一句相连的字符串时报错

用System.out.println输出“I like Java”时报错

public class HelloJava{
    public static void main(String[]args){
        System.out.println("I like Java");
        //在编译器中"I like"会被标志为红线
    }
}

解决方法:

用System.out.println输出过长字符串时可以用“+”号连接,方便显示

public class HelloJava{
    public static void main(String[]args){
        System.out.println("I like"+"Java");
        //在编译器中"I like"会被标志为红线
    }
}

好了,今天就先到这里吧。这几天遇见的问题不少,有时间再跟大家分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值