Java学习笔记(四)
来源:互联网 发布:数控铣削与编程实例 编辑:程序博客网 时间:2024/04/29 15:27
1.数组
数组的概念:是一种可以保存一组数的数据类型。
定义数组的语法:
元素的数据类型[] 数组变量名 = new 元素的数据类型[元素的个数];
元素的数据类型[] 数组变量名 = new 元素的数据类型[元素的个数];
例子:
int[] array = new int[10]
数组的特点:
- 数组的元素是连续分配的,在堆内存中分配。系统会进行默认初始化。
- 数组可以保存若干元素。一个数组只能保存一种类型的数据。如果存在继承,数组中可以存放子类元素。例如水果数组中可以存放香蕉、苹果等。
- 数组一旦初始化完成,数组在内存中所占的空间就被固定,数组长度不能修改。
- 数组是一种数据类型,一种引用类型。
- 通过组名+下标访问数组元素,数组下标从来0开始,数组通过下标访问任意元素的效率是非常高的。因为元素所占的空间是确定的,首地址也是确定的。
数组初始化:
- 静态初始化:指定每个数组元素的初始值,由系统决定数组长度。
- 动态初始化:指定长度,由系统为数组赋默认值(0);
静态初始化例子:
int[] ints = new int[]{1,2,3,4,5,6,7};
声明和赋值 可以分开进行。
int[] ints;
ints = new int[]{1,23,5,5,6,7};
声明和赋值 可以分开进行。
int[] ints;
ints = new int[]{1,23,5,5,6,7};
动态初始化例子:
例如:int[] array = new int[10];
动态初始化,声明数组变量 和 赋值(申请空间)可以分开进行。
动态初始化需要使用new 关键字。
动态初始化,声明数组变量 和 赋值(申请空间)可以分开进行。
动态初始化需要使用new 关键字。
常会出现的异常信息:
java.lang.ArrayIndexOutOfBoundsException:N (数组索引越界异常)
数组在内存中:
引用类型数组:
数组元素是引用。在没有初始化时,默认每个元素的值时null。
初始化:也分为动态和静态。
静态:Student[] s = new Student[]{new Student(),new Student()};
动态:Student[] s = new Student[2];
多维数组:
从数组底层的运行来看没有多维数组,本质上还是引用类型数组, 数组也是一种引用类型。
代码实例:
浮点数转换成人民币读法
import org.jetbrains.annotations.NotNull;import java.util.Arrays;/** * Created by Chenxp on 2017/7/21. */public class Num2Rmb { private String[] hanArr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; private String[] unitArr = {"十", "百", "千", "万", "十万"}; private String[] rmb = {"角", "分"}; @NotNull private String[] divide(double num){ long zheng = (long)num; long xiao = Math.round((num - zheng) * 100); String xiaoStr = ""; if(xiao < 10){ xiaoStr += "0" + String.valueOf(xiao); } return new String[]{zheng + "", xiaoStr}; } private String toHanStr(String numStr){ String result = ""; int numLen = numStr.length(); boolean flag = false; System.out.println(numStr); for(int i = 0; i < numLen; i ++){ int num = numStr.charAt(i) - 48; if(num == 0 && i == 0){ return "零"; } if(i < numLen - 1 && num + (numStr.charAt(1 + i) - 48) == 0){ continue; } if(num == 0 && i == numLen - 1){ break; } if(i != numLen - 1 && num != 0){ result += hanArr[num] + unitArr[numLen - 2 - i]; }else{ result += hanArr[num]; } } return result + "元"; } public String addUnit(String xiao){ String result = ""; int xiaoLen = xiao.length(); for(int i = 0; i < xiaoLen; i ++){ int num = (int)(xiao.charAt(i) - 48); if(num == 0){ continue; } result = result + hanArr[(xiao.charAt(i) - 48)] + rmb[i]; } return result; } public static void main(String[] args){ Num2Rmb nr = new Num2Rmb(); String[] numStr = nr.divide(2378.02); System.out.println(numStr[0] + "," + numStr[1]); System.out.println(nr.toHanStr(numStr[0]) + nr.addUnit(numStr[1])); }}
阅读全文
0 0
- Java学习笔记(四)
- Java学习笔记(四)
- java学习笔记(四)
- java学习笔记(四)
- Java学习笔记(四)
- Java学习笔记(四)
- java学习笔记(四)
- Java学习笔记(四)
- Java学习笔记(四)
- Java学习笔记(四)
- JAVA学习笔记(四)
- java学习笔记(四)
- Java学习笔记(四)
- Java学习笔记(四)
- Java学习笔记(四)
- Java学习笔记(四)
- Java学习笔记四
- java学习笔记四
- Java高级篇整理
- 设计模式-行为型模式总结
- 网络安全的终极奥义将会是人工智能?
- PAT乙级 1060. 爱丁顿数(25)--数学问题,sort()排序要注意的问题
- CGI与Servlet的比较
- Java学习笔记(四)
- Python中安装Beautiful Soup成功后出现No module named 'bs4'
- IO流写入写出文件复制
- day_03_引用、类型转换、类和对象
- [leetcode] 204. Count Primes
- 黑化、膨胀的牛牛——每日一练
- Linux tcpdump命令详解
- 2017 Multi-University Training Contest
- maven管理jar包后依然找不到Jar包或者ClassNotFound的解决