写程序中遇到的小问题--Java新手

一、

今天写一道搜索题,很简单,但却碰到一个恶心的报错,NullPointerException。

看了半天代码,没啥错误啊,结果。。。

请各位大佬辨别以下两种定义静态数组方式:

static int[] a=new int [10];

static int[] b=new int [10];

static int [] a,b=new int [10];的区别。。

可能是Java基础学的太快忘记一些细节

还好今天突然想偷懒,就定义在了一起,结果报了错,还好及时改正了。。

在Java中,你提供的两段代码示例都涉及到静态数组的声明和初始化。但是,它们之间存在一些关键差异。

static int[] a = new int[10];
static int[] b = new int[10];

在上面的代码中,你创建了两个静态整数数组 a 和 b,每个数组都有10个整数元素。每个数组都被单独初始化。

static int [] a, b = new int [10];

在上面的代码中,你试图同时声明和初始化两个静态整数数组 a 和 b。但是,这里存在一个问题:你只创建了一个长度为10的数组,并将其赋值给了 b。因此,a 并没有被初始化,所以它仍然为 null。尝试访问 a 或 b 的任何元素都可能导致 NullPointerException

总结:第一段代码是正确的,它创建了两个独立的静态整数数组。而第二段代码会导致错误,因为数组 a 没有被正确初始化。

二、

突然又想到上次遇到的一个问题

import java.util.Scanner;
public class student{
static int n;
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
........
}
}

乍一看,好像没什么问题,但是n定义了两遍,本来是想要定义一个成员变量n,结果在main函数中又重新定义了一个变量n,如果只在main方法中进行逻辑运算的时候,是不会有什么问题的,但当你要在外面弄一个成员方法调用的时候,然后你用了n,你以为你n中是有值的但是其实没有,然后你框框用然后还以为贼对,结果报了一个null的异常。。无语........ 

其实这个错误相当不好找,我写的这个其实是好找的,当时我写了近百行的代码,然后就死活找不出来。。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值