首页 技术 正文
技术 2022年11月15日
0 收藏 854 点赞 4,715 浏览 3914 个字

基本类型实例

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

引用类型实例

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

基本与引用区别图示

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

Java菜鸟学习笔记–数组篇(二):数组实例&args实例

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;}}}

测试结果:

Java菜鸟学习笔记–数组篇(二):数组实例&args实例

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);}}

测试结果:

Java菜鸟学习笔记–数组篇(二):数组实例&args实例

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,083
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,558
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,407
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,180
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,816
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,899