Java里数组的三种初始化方式
静态初始化
除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
// 静态初始化
int[] iStaticArr = { 5, 2, 0 };
LOLHero[] staticHeros = new Hero[] {
new LOLHero("艾希","女"),
new LOLHero("盖伦","男"),
new LOLHero("挖掘机","未知")
};
动态初始化
数组定义与为数组元素分配空间并赋值的操作分开进行。
//动态初始化
int[] iDynamicArr = new int[3];
iDynamicArr[0] = 5;
iDynamicArr[1] = 2;
iDynamicArr[2] = 0; LOLHero[] dynamicHeros = new LOLHero[3];
dynamicHeros[0] = new LOLHero("艾希","女");
dynamicHeros[1] = new LOLHero("盖伦","男");
dynamicHeros[2] = new LOLHero("机器人","未知");
数组的默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化(即使不给赋初值,也会被程序赋予默认值)。
//默认初始化
int[] iDefaultArr = new int[3]; //数组中的每个元素被赋予默认值0, 0, 0
LOLHero[] defaultHeros = new LOLHero[3]; //数组中每个元素被赋予默认值null, null, null
其中布尔类型的变量的默认值为false
个人觉得,还是静态初始化省事,不过有时候确实需要动态初始化,有时候也不用初始化,所以看情况而定吧。
Java里数组的三种初始化方式的更多相关文章
- JAVA学习笔记-数组的三种初始化方式
package Study; public class TestArray02 { public static void main(String[] args){//声明 int[] a; int ...
- 数组的三种声明方式总结、多维数组的遍历、Arrays类的常用方法总结
1. 数组的三种声明方式 public class WhatEver { public static void main(String[] args) { //第一种 例: String[] test ...
- Java数组02——三种初始化及内存分析
内存分析 三种初始化 例子 package array; public class ArrayDemon02 { public static void main(String[] arg ...
- 基于Java的二叉树的三种遍历方式的递归与非递归实现
二叉树的遍历方式包括前序遍历.中序遍历和后序遍历,其实现方式包括递归实现和非递归实现. 前序遍历:根节点 | 左子树 | 右子树 中序遍历:左子树 | 根节点 | 右子树 后序遍历:左子树 | 右子树 ...
- Java数组的三种打印方式
1.数组的输出的三种方式 一维数组: 定义一个数组 int[] array = {1,2,3,4,5}; (1)传统的for循环方式 for(int i=0;i<array.length;i++ ...
- java中线程的三种实现方式
一下记录下线程的3中实现方式:Thread,Runnable,Callable 不需要返回值时,建议使用Runnable:有返回值时建议使用Callable 代码如下所示: package com.f ...
- Java中容器的两种初始化方式比较
List,Set,Map的两种初始化赋值方式 List List<Integer> list2 = new ArrayList<Integer>(); for (int i= ...
- Java创建线程的三种主要方式
Java创建线程的主要方式 一.继承Thread类创建 通过继承Thread并且重写其run(),run方法中即线程执行任务.创建后的子类通过调用 start() 方法即可执行线程方法. 通过继承Th ...
- Java创建数组的三种方法
■ 第一种: int[] arr=new int[6]; arr[0] = 1; arr[1] = 2 arr[2] = 3; arr[3] = 4; arr[4] = 5; arr[5] = 6; ...
随机推荐
- struts2的国际化i18n
先来例子,普通的读取配置文件中不同语言信息,一个测试类,一份中文配置文件,一份英文配置文件 中文配置文件,书写中文“欢迎”,myelipse自动转码 public class Readi18n { p ...
- Go Example--关闭通道
package main import ( "fmt" ) func main() { jobs := make(chan int, 5) done := make(chan bo ...
- PureComponent的作用及一些使用陷阱
默认渲染行为的问题 在React Component的生命周期中,有一个shouldComponentUpdate方法.这个方法默认返回值是true. 这意味着就算没有改变组件的props或者stat ...
- JQuery中serialize()方法的使用
- Server 2008 R2部署active directory服务器-ad域
一.部署AD域: 系统环境:Windows server 2008 R2 标准版 ip:172.16.1.149服务器开机后会自动弹出一个初始配置任务窗口(这个不要随便关闭,因为我不知道关闭后能在哪里 ...
- 数据库连接池——C3P0
定义: 本质上就是个容器(集合)存放数据库连接的容器.当系统初始化以后,容器被创建,容器中就会申请一些连接对象.当用户来访问的数据库的时候,从容器中取连接对象,用户用完之后归还. 使用方法: 标准接口 ...
- 一次单片机 SFR 页引发的“事故”
一次单片机 SFR 页引发的"事故" 现象 需要使用单片机的 ADC 功能,在对 ADC 初始化后,根据内部分的 IVREN 计算出 VDD 的电压值 . 在读取时一直显示 ADC ...
- centos7 虚拟机安装 以后不能联网问题
1 设置 网络模式为桥接. 2 配置/etx/sysconfig/network-scrips/ifcfg-enthp0s3为如下配置( ip 网段 根据自己网段决定) TYPE=Ethernet P ...
- 用C语言解决python多线程中的GIL问题
在使用python多线程的时候为了解决GIL问题,有些代码得用C语言写,那么就得生成动态链接库. 当创建动态链接库时,独立位置信息(position independent)代码也需要生成.这可以帮助 ...
- jmeter --- 监控器 Plugins (&jconsole)
jmeter --- 监控器 Plugins (&jconsole) Jmeter本身没有监控服务器资源的功能,需要添加额外插件 一.监控原理图 二.Jmeter-Plugs下载和安装 官网上 ...