Java编程基础篇第五章
数组概述
概念:数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
应用场景:为了存储同种数据类型的多个值
数组定义格式
格式1:元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
例:int[] arr = new int[8];
格式2:元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
例:int []arr = new int[]{3,5,1,7};int []arr ={3,5,7,1};
数组的初始化
Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
数组的初始化分为动态初始化和静态初始化
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 数组名 = new 数据类型[数组的长度];
举例:
int[] arr = newint[3];
解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值。
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
数组的初始化静态初始化及内存图
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
简化格式:数据类型[] 数组名 = {元素1,元素2,…};
举例:
int[] arr = new int[]{3,7,5,4};
int[] arr = {3,7,5,4};
Java中的内存分配以及栈和堆的区别
需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,
因为每一片区域都有特定的处理数据方式和内存管理方式。
内存结构:栈、堆、方法区、本地方法区、寄存器。(java对内存的划分原因:
每片内存处理的方式不同)
栈内存:暂时存储。用于存储局部变量,当数据使用完,所占空间会自动释放。
堆内存:存储数组和对象,通过new建立的实例都存放在堆内存中,任何的"
引用数据类型"的"值"都存在堆里。。
方法区:静态存储区、构造函数、常量池、线程池,方法字节码
本地方法区:window系统占用 ,被定义为 native的方法。
寄存器:存储正要准备交给CPU处理的字节码
数组操作的两个常见小问题越界和空指针
ArrayIndexOutOfBoundsException:数组索引越界异常
原因:你访问了不存在的索引。
NullPointerException:空指针异常
原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
数组的操作:遍历
/** * 数组遍历:依次输出数组中的每一个元素。 数组的属性:arr.length 数组的长度 数组 的最大索引:arr.length - 1; */
class Demo {
public static void main(String[] args) {
int[] arr = new int[] { 4, 8, 68, 42, 2, 7 };
print(arr);
}
public static void print(int[] arr) {
for (int i = 0; i < arr.length; i++)
{
System.out.print(arr[i] + " ");
}
}
}
Java编程基础篇第五章的更多相关文章
- Java编程基础篇第六章
构造方法 一:概念: 给对象的数据(属性)进行初始化 二:特点: a.方法名与类同名(字母大小写也要一样) b.没有返回值类型 c.没有具体的返回值 return 三:构造方法重载: 方法名相同,与返 ...
- Java编程基础篇第四章
循环结构 循环结构的分类 for循环,while循环,do...while()循环 for循环 注意事项: a:判断条件语句无论简单还是复杂结果是boolean类型 b:循环体语句如果是一条语句,大括 ...
- Java编程基础篇第三章
逻辑运算符 与(&)(&&),或(||)(|),非(!) &和&&的区别 &:无论&的左边真假,右边都进行运算 &&:当 ...
- Java语言程序设计(基础篇) 第五章 循环
第五章 循环 5.2 while循环 1.while循环的语法如下: while(循环继续条件){ //循环体 语句(组); } 2.程序:提示用户为两个个位数相加的问题给出答案 package co ...
- Java编程基础篇第一章
计算机语言 人与计算机交流的方式. 计算机语言有很多种如:C语言,c++,Java等 人机交互 软件的出现实现了人与计算机之间的更好的交流(交互) 交互方式 图形化界面:便于交互,容易操作,简单直观, ...
- Java编程基础篇第二章
关键字 概述:被Java语言赋予特定含义的单词. 特点:组成关键字的字母全部为小写字母. 标识符 概述:给类,接口,包,方法,常量起名字时的字符序列 组成规则:英文大小写字母,数字,$和— 命名规则. ...
- java编程基础篇-------> 从键盘输入一位整数,代表月份,编程判断指定月份属于一年中的哪个季度。如果是 12 月、1 月、2 月,就属于冬季。
从键盘输入一位整数,代表月份,编程判断指定月份属于一年中的哪个季度.如果是 12月.1 月.2 月,就属于冬季:如果是 3 月.4 月.5 月,就属于春季:如果是 6 月.7 月.8 月,就属于夏季: ...
- java编程基础篇---------> 编写一个程序,从键盘输入三个整数,求三个整数中的最小值。
编写一个程序,从键盘输入三个整数,求三个整数中的最小值. 关键:声明变量temp 与各数值比较. package Exam01; import java.util.Scanner; public ...
- 小猪猪C++笔记基础篇(五)表达式、语句
小猪猪C++笔记基础篇(五) 关键词:表达式.语句 本章的内容比较简单,基本上没有什么理解上的困难,都是知识上的问题.先开始想要不要写呢,本来是不准备写的,但是既然读了书就要做笔记,还是写一写,毕竟还 ...
随机推荐
- 解决Everything1.4版本预览时不支持自定义后缀的问题
2017年6月Everything版本升级到了1.4.x 个人使用下来认为最主要的有以下几点 添加预览功能 搜索结果多选 点击目录列即打开文件所在目录(需要设置:常规->结果->双击路径列 ...
- GBK转UTF8
shell 脚本自动GBK转UTF8 for i in `find . -name "*.java"`; do iconv -f gbk -t utf-8 $i > $i.n ...
- JAVA项目中引用Logback的方法
一.简介 本文主要讲JAVA项目中引入Logback的方法. 二.解决 1.引入依赖. <!--Begin LogBack Log--> <!-- https://mvnreposi ...
- [Chrome插件] SelectJd(京东自营筛选器) v1.0.0 发布
如今京东的商品列表已经没有"自营"筛选了,只有"京东物流"筛选.导致找商品时不方便. 于是我开发了一下Chrome插件--SelectJd(京东自营筛选器). ...
- Visual Studio进行Web性能测试- Part I
Visual Studio进行Web性能测试- Part I 2012-08-29 08:01 by 知平软件, 5356 阅读, 9 评论, 收藏, 编辑 原文作者:Ambily.raj Visua ...
- 系统管理员需知的 16 个 iptables 使用技巧
现代 Linux 内核带有一个叫 Netfilter[1] 的数据包过滤框架.Netfilter 提供了允许.丢弃以及修改等操作来控制进出系统的流量数据包.基于 Netfilter 框架的用户层命令行 ...
- iOS Xcode 10: Multiple commands produce
Xcode自动升级到10.0 1.编译的时候报错:Multiple commands produce 解决办法:File -> Workspace Setting -> build sys ...
- Effective Java 第三版——72. 赞成使用标准异常
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- 利用cwRsync客户端将Windows下文件同步到Linux
这里不描述Linux服务端安装配置rsync服务的过程,有需要可以在网络上查找相关教程. 1.安装cwRsync客户端下载地址:http://itefix.no/cwrsync/下载文件cwRsync ...
- [U3D Demo] 手机FPS射击游戏
游戏截图 使用插件 DOTween Easy Touch UGUI 游戏介绍 游戏使用C#开发,是在<Unity3D手机游戏开发>一书第3章游戏的基础上优化和修改的. 机枪镭射光线和枪口特 ...