首页 > 编程语言 > java基础知识点之一维数组的两个常见小问题

java基础知识点之一维数组的两个常见小问题

时间:2023-12-17 21:02:03浏览次数:32  
标签:知识点 arr java 问题 索引 内存 数组 null

一:概述

在一维数组的使用中,一不小心就会出现错误,尤其是在初学的情况下。在这里我要说明的是两个常见的问题索引越界问题和空指针异常的问题。

二:具体说明

<1>索引越界问题

                              java基础知识点之一维数组的两个常见小问题_空指针异常

初学者打眼一看,可能认为这没有错误,但运行之后,程序报错了。

                              java基础知识点之一维数组的两个常见小问题_数据_02

这个错误,一不小心就会犯。

因为有时候我们会惯性思维的认为数组长度为4,arr[4]应该是正确的,但是忽略了索引为0的情况,因此输出时,arr[n]中的最大值是数组长度减去1.

<2>空指针异常问题

这个问题指的是:对象不在指向堆内存,还想继续访问数据,访问失败。

                              java基础知识点之一维数组的两个常见小问题_空指针异常_03

                              java基础知识点之一维数组的两个常见小问题_堆内存_04

                              java基础知识点之一维数组的两个常见小问题_空指针异常_05

  1. 对象设置为null,不在指向堆内存数据了,还想继续访问堆内存数据
  2. 对象在使用前,进行不为null的判断(解决方法)

                              java基础知识点之一维数组的两个常见小问题_空指针异常_06

再次运行,发现不会报错。

                              java基础知识点之一维数组的两个常见小问题_堆内存_07

// 定义一个数组
         int[] arr = new int[4];
         System.out.println(arr[3]);
         // 把null赋值给数组
         arr = null;
         // 输出元素
         if(arr != null) {
             System.out.println(arr[0]);
         }




标签:知识点,arr,java,问题,索引,内存,数组,null
From: https://blog.51cto.com/u_15912723/8863350

相关文章

  • javascript基础
       ......
  • Java加解密【回车换行】坑与解决
    在Java中进行加解密时,经常会遇到回车换行的问题,这可能导致加解密结果不符合预期,引发一系列的错误。本文将探讨在Java加解密中常见的回车换行问题,并提供解决方案,以确保数据的准确性和一致性。一、问题背景在文本数据进行加密时,回车换行字符可能会在不同的操作系统上表示方式不同。例......
  • 无涯教程-Java - String toLowerCase()函数
    将此String中的所有字符转换为小写,这等同于调用toLowerCase(Locale.getDefault())。StringtoLowerCase()-语法publicStringtoLowerCase()StringtoLowerCase()-返回值它返回转换为小写字母的字符串。StringtoLowerCase()-示例importjava.io.*;publicclassTest......
  • python 浮点数 round 舍一法 向零取整 df 数组 Series 三种数据类型实现
    介绍:python的round函数,默认进行四舍五入,我需要将3.45保留一位小数,3.4 一、一般格式使用Python的内置函数 math.floor() 来向下取整到指定的小数位数。例如,如果你想保留小数点后一位并向下取整,可以这样做:importmathnum=3.45rounded_num=math.floor(num*10)/......
  • 数组去重
    functionarrayNonRepeatfy(arr){letmap=newMap();letarray=newArray();//数组用于返回结果for(leti=0;i<arr.length;i++){if(map.has(arr[i])){//如果有该key值map.set(arr[i],true);}else{map.set(arr[i],......
  • 无涯教程-Java - toCharArray()函数
    此方法将此字符串转换为新的字符数组。char[]toCharArray()-语法这是此方法的语法-publicchar[]toCharArray()char[]toCharArray()-返回值它返回一个新分配的字符数组,其长度是此字符串的长度,并且其内容已初始化为包含此字符串表示的字符序列。char[]toCharArray()......
  • JavaScript调研
    一、JS初识1、JavaScript一种直译式脚本语言;2、组成部分;(1)ECMAScript语法和基本对象(2)文档对象模型(DOM)处理网页内容的方法和接口(3)浏览器对象模型(BOM)与浏览器进行交互的方法和接口3、JS特点(1)解释性脚本语言(2)用来向HTML页面添加交互行为,可以嵌入HTML......
  • 无涯教程-Java - String substring(int beginIndex)函数
    从beginIndex索引处开始截取字符串。Stringsubstring-语法publicStringsubstring(intbeginIndex)这是参数的详细信息-beginIndex  -  包含开始索引。Stringsubstring-返回值指定的子字符串。Stringsubstring-示例importjava.io.*;publicclassTest......
  • 《Java编程思想第四版》学习笔记48--关于Runnable
    现在run()位于类内,但它在init()结束以后仍处在“睡眠”状态。若按下启动按钮,线程便会用多少有些暧昧的表达方式创建(若线程尚不存在):newThread(Counter3.this);若某样东西有一个Runnable接口,实际只是意味着它有一个run()方法,但不存在与之相关的任何特殊东西——它不具有任何天......
  • 立志在线学习系统,基于java、vue开发的在线教育平台
    立志在线学习系统,是基于java、vue开发的在线教育平台,将开发PC、小程序、手机端,集成RABC权限+在线考试+文档预览+视频播放+代码生成器等功能。目标是基于此项目可以巩固学习springboot、vue、Mybatis等技术,欢迎star哟~~一、技术架构版本控制:git依赖管理:maven接口文档:Swagger权限验......