基本类型实例

	//1.定义一个一维数组,先声明,在分配空间
int []number;//生命,没有初始化,number=null number=new int[5];//初始化为默认值,int默认值为0
//第二步创建内存空间,在堆空间创建长度为5数组,number里面存储的是第一个内存地址

引用类型实例

Person[] my=new Person[3];//
/*
1.my实在栈区,而Person数组在堆区
2.堆空间有三个连续内存空间里面分别存有三个引用,并且默认初始化为null */

基本与引用区别图示

(下图摘自疯狂java,版权归疯狂java所有)

Args实例练习

1.在Main函数中,main(String[ ] args)中的args有什么作用?


String args[ ]或者String[ ] args表示给主方法传一个字符串数组. 而args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名,一般都习惯性照写.
//1.数组练习
//2.args[] 功能
package me.array; public class TestArray2{ public static void main(String[] args){ //输出
int[] a={2,2,3,4,5,2,3,5,6,2}; for(int i=0;i<a.length;i++){ System.out.println("a["+i+"] = "+a[i]); } for(int i=0;i<args.length;i++){ System.out.println("args["+i+"] = "+args[i]);
}
//直接java 这个不显示什么
/*然后测试 :
yg@Gino:~/Desktop/code$ java me.array.TestArray2 aaa bbb ccc
a[0] = 2
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5
a[5] = 2
a[6] = 3
a[7] = 5
a[8] = 6
a[9] = 2
args[0] = aaa
args[1] = bbb
args[2] = ccc
*///args可以把java后面的参数挨个放入数组中, } }

2.实例:写一个程序让 java  me.args.TestArgs 1 + 2 可以返回计算结果 3.0

//写一个程序让 java  me.args.TestArgs 1 + 2 可以返回3.0
package me.args; public class TestArgs{ static void tip(){ System.out.println("-----------------------------------------------------------------");
System.out.println("\n温馨提示:\n这个一个带参数的计算程序参");
System.out.println("格式为 java me.args.Args n1 op n2");
System.out.println("n1 --第一个数\nOP --加减乘除任意操作符 \nn2--第二个数");
System.out.println("\n1.输入数据是请注意n1 OP n2之间的空格\n2.n1n2请输入数字");
System.out.println("------------------------------------------------------------------");
} public static void main(String[] args){ //写一个程序让 java me.args.TestArgs 1 + 2 可以返回3.0 //判断参数,是否到三个
if(args.length<3){ System.out.println("Input Error!");
System.out.println("java me.args.TestArgs \"n1\" \"op\" \"n2\"");
TestArgs.tip();
System.exit(-1);//退出程序,-1表示错误退出,0表示非法推出
}
//把String类型转换成double类型 然后再计算
double[] number=new double[2]; //可能抛出NumberFormatException,判断第一个字符可不可以转换成数字
try{
number[0]=Double.parseDouble(args[0]);
}catch(NumberFormatException ea){ System.out.println("----------n1 Number INput Error!--------------");
ea.printStackTrace();
TestArgs.tip();
System.exit(-1); } //number[1]=Double.parseDouble(args[2]);不健壮,不能判断非法输入
//用try结构判断n2输入是否合法,不合法就告诉用户,并且抛出异常
try{
number[1]=Double.parseDouble(args[2]);
}catch(NumberFormatException ea){ System.out.println("----------n2 Number INput Error!--------------");
ea.printStackTrace();
TestArgs.tip();
System.exit(-1); } switch(args[1]){ case "+":
System.out.println(+number[0] + number[1]);
break;
case "-":
System.out.println(number[0] - number[1]);
break;
case "*":
System.out.println(number[0] * number[1]);
break;
case "x":
System.out.println(number[0] * number[1]);
break;
case "/":
System.out.println(number[0] / number[1]);
break;
case "%":
System.out.println(number[0] % number[1]);
break;
default :
System.out.println("Error Operator");
TestArgs.tip();
break; } } }

测试结果:

3.实例:运用args可以对输入参数进行排序


//1.改写,实现从命令行上面读取 5个数,2.排序好,3.输出
package me.array; public class TestArray3{ //冒泡排序,经典方法
public static void bubbleSort(int[] number){ //排序部分 int temp;
//假如第一次 i=8,则比较 下标为 0~8(9个数嘿嘿),前面两两依次比较
//当i=7,下标为8已经是最大的一个数,在比较0~7(前8个数),依次两两比较
for(int i = number.length-1;i >= 0; i--){ for(int j =0;j < i;j++){ if(number[j]>number[j+1]){ temp=number[j+1];
number[j+1]=number[j];
number[j]=temp; } } } //输出部分 System.out.println("排序后顺序为:");
for(int i = 0;i < number.length;i++){ System.out.println(number[i]); }
} public static void main(String[] args){ //1.读进来
//2.转成int型
//3.排序好
//4.输出 //判断是否带了5个参数
if(args.length <= 1){ System.out.println(args.length);
System.out.println("请在参数处依次输入2个数以上");
System.exit(-1); }
//转成int型
int[] number=new int[args.length];
// 转换好放入数组
for(int i = 0 ;i < args.length;i++){ //转换过程,如果出现异常就catch并输出信息
try{
number[i]=Integer.parseInt(args[i]);
}catch(NumberFormatException ea){ System.out.println("----------输入入数字有误-----------------");
System.out.println("错误信息如下:");
ea.printStackTrace();
System.out.println("------------------------------------------------");
System.exit(-1);
} }
//输出数组中的
System.out.println("您输入的数字为:");
for(int i = 0;i < number.length;i++){ System.out.println(number[i]); }
//调用冒泡排序方法
TestArray3.bubbleSort(number); } }

测试结果:

作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).

Java菜鸟学习笔记--数组篇(二):数组实例&args实例的更多相关文章

  1. Java菜鸟学习笔记--面向对象篇(十五):Wrapper Class包装类

    什么是包装类? 在Java里一切都是对象,除了Java中的基本数据类型(byte,short,int,long,char,float,double,boolean)不是面向对象的,这在实际使用时存在很 ...

  2. Java菜鸟学习笔记--面向对象篇(十六):Object类方法

    Object类 什么是Object类? Object类是所有Java类的祖先,每个类都使用 Object 作为超类,所有对象(包括数组)都实现这个类的方法Object类是类层次结构的根,Object类 ...

  3. Java菜鸟学习笔记()--面向对象篇(七):Wrapper Class包装类

    什么是包装类? 在Java里一切都是对象,除了Java中的基本数据类型(byte,short,int,long,char,float,double,boolean)不是面向对象的,这在实际使用时存在很 ...

  4. Java菜鸟学习笔记--面向对象篇(十八):对象转型&多态

    Polymorphism[多态] 简述: 面向对象多态性指的是:发送消息给某个对象,让该对象自行决定响应何种行为. 通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用 多态的三个前提条件: 多 ...

  5. Java菜鸟学习笔记--Exception篇(一):异常简介

    什么是异常(Exception)? 简述: 在运行过程中,应用程序可能遭遇各种严重程度不同的问题.异常提供了一种在不弄乱程序的情况下检查错误的巧妙方式.它也提供了一种直接报告错误的机制. 不同类型异常 ...

  6. Java WebService学习笔记 - Axis进阶(二)

    上一篇  Java WebService学习笔记 - Axis(一) 前一篇博文中简单介绍了Axis的使用方法,这篇将介绍一些Axis的一些高级特性 Axis中Handler的使用 Handler ...

  7. Java菜鸟学习笔记--数组篇(三):二维数组

    定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...

  8. java学习笔记-JavaWeb篇二

    JavaWEB篇二 45 HttpSession概述46 HttpSession的生命周期 47 HttpSession常用方法示例48 HttpSessionURL重写 49 HttpSession ...

  9. Java菜鸟学习笔记(23)--继承篇(二):继承与组合

    组合是什么 1.继承和组合都是一种随思想渗透而下的编码方式,其根本目的都是为了复用类,减少重复代码 2.要实现一个类的复用,可以分为组合语法和继承语法 3.组合就是通过将一个对象置于一个新类中,将其作 ...

随机推荐

  1. FXBlurView用法

    FXBlurView是UIView的子类,它实现毛玻璃效果的原理其实就是覆盖上一层FXBlurView的实例对象. - (void)viewDidLoad { [super viewDidLoad]; ...

  2. X-Plane飞行模拟资源整理一

    计划开一个博客整理一下飞行仿真软件二次开发的相关内容 预计将陆续介绍X-Plane.Microsoft Flight Simulator.FlightGear三个主流飞行模拟器. 此处为目录(占坑,随 ...

  3. VC皮肤库之duilib

    首先是个国产的开源 的,directui 界面库,开放,共享,惠众,共赢,遵循bsd协议,可以免费用于商业项目,目前支持Windows 32 .Window CE.Mobile等平台. Duilib ...

  4. Maven入门详解以及Eclisp的集成

    1.首先要安装Maven到操作系统上 Maven的下载页面:http://maven.apache.org/download.html Maven跟Tomcat很像,下载下来后直接解压在指定的目录就安 ...

  5. iOS:翻页效果

    // // main.m // Hello // // Created by lishujun on 14-8-28. // Copyright (c) 2014年 lishujun. All rig ...

  6. 关于64位Win7/Win 8 下怎么学习汇编语言

    我看有许多同学用Win 7/Win 8 学习汇编,现在好多人的内存升级了都用64位系统了,但是64位W7没有自带的DEBUG和MASM. 1.首先下载DOSBOX,(下面附带地址)它的作用就是让你在6 ...

  7. 初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)

    初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像 ...

  8. windows提权操作以及系统开机关机重启代码(用到了LookupPrivilegeValue和AdjustTokenPrivileges调整进程的Token权限)

    对于UAC提权操作,一般在编译期间,如果程序有需求要提权,会在编译器里设置,vs2010比较简单,在工程属性里可以直接设置,vs2005稍微有点儿麻烦,参考这篇文章: http://www.seany ...

  9. Android 自定义dialog(AlertDialog的修改样式)

    LayoutInflater inflater = LayoutInflater(AudioActivity.this); View timepickerview = inflater.inflate ...

  10. Hibernate+jxl+excel导入数据库

    在将excel中的10w行数据导入数据库中时,总发生内存溢出,一开始使用的Spring+Hibernate;不知如何使用批处理,后来只是用Hibernate,10W行数据几分钟完成, 代码如下: pu ...