Java总结 2 多维数组 和包装类

多维数组:可以理解为数组的数组
//这样的定义表示数组中的每个元素都是一个int类型的数据
int[] arr = new int[10];
//多维数组实际上的含义就是数组中的每个元素又是一个数组
int[][] brr=new int[10][3];
//定义一个二维数组,可以理解为10行3列

定义:
类型[][] 变量名=new 类型[整数][整数];

特例用法:
Java总结 2 多维数组 和包装类
原因是:因为没有对第二维进行定义

访问元素:
变量名[下标] 下标
Java总结 2 多维数组 和包装类

包装类和Number类
简单类型中不包含成员属性和成员方法,包装类就是简单类型的对象化封装,将简单类型可以转换为引用类型,从而具有对应的成员属性和成员方法。
Java总结 2 多维数组 和包装类

针对简单类型的存储是直接使用内存中的栈
针对复杂类型的存储是使用栈存放对象的地址,具体的数据对象存放在堆中
在java中有四型八种的基本数据类型,每种对应的数据类型还有对应的包装类。

| 基本数据类型 | 包装类 |
byte | Byte |
short | Short
int | Integer
long | Long
char | Character
boolean | Boolean
float | Float
double | Double

Wrapper Class即包装类。在包装类中SUN封转了开发者常用的一些属性和方法,可以进行快速的编程。
整数:末尾添加L或者l表示long类型,例如123十进制 0123八进制 0x123十六进制 0b11二进制
Java总结 2 多维数组 和包装类

重点:
int parseInt(String s) 将字符串参数转换为带符号的十进制整数。
int parseInt(String s, int radix) 将字符串参数转换为一个符号整数,进制由第二个参数指定
Java总结 2 多维数组 和包装类

应用场景:例如简单录入中next和nextline返回的都是string类型

valueOf(int i) 返回一个 Integer实例表示指定的int类型参数
Integer valueOf(String s) 返回一个 Integer对象持有指定的String参数,将String类型的参数转换为Integer类型
[面试题:]valueOf和parseInt的区别

自动装拆箱操作
int k=123; 正常的赋值
Integer k=123; 因为系统识别字面量123为简单类型,但是可以直接将简单类型的123赋值给对象类型的变量,因为系统支持自动装箱操作,也就是自动将简单类型的数据转换为引用类型
int bb=kk; kk是Integer类型的,但是系统允许直接赋值给简单类型的变量bb,因为系统支持自动拆箱操作

数值类型的父类为Number
所谓的数值类型是指存放具体数值数据的类型,例如int、double之类的数据。父类的含义是指数值型的包装类中含有Number类型定义的方法
int intValue()可以将任何数值类型数据转换为int类型数据
longValue() / floatValue() / doubleValue() / byteValue() / shortValue()
Java总结 2 多维数组 和包装类

两个特殊数值类型的类BigInteger和BigDecimal,用于精确存储任意精度的数值型数据,(浮点类型double和float不能精确存放,整数类型实际上都有存储方位)并支持常见的加减乘除的方法
Java总结 2 多维数组 和包装类

因为参数中的数据系统识别为int类型,但是数据已经超出了int类型的上限。所以构建BigInteger或者BigDecimal时,参数必须是字符串类型,不能直接使用数据,否则会出现各种问题
Java总结 2 多维数组 和包装类Java总结 2 多维数组 和包装类

使用Bigxxx的问题是执行效率低下

一般地当需要使用数字的时通常使用内置数据类型,如byte、int、long、double 等。然而在实际开发过程中,经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。所有的数值类型数据的包装类Integer、Long、Byte、Double、Float、Short都是抽象类 Number 的子类。

字符
属于简单类型 char c=’c’; 还可以使用\转义字符
字符是指用单引号括起来单个字符。这里的字符不是指占1个字节的ASCII字符,而是指占2个字节的Unicode字符
因为Unicode被设计用来处理现在世界上所有书面语言中的字符,所以一个汉字也是被当作一个字符来处理的。对于单个字符,除了有char这个原始类型以外,Java平台中的java.lang包还专门提供了一个Character类来进行储存和操作
常见的编码字符集 --密码本 字符<—>整数
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本EASCII则可以勉强显示其他西欧语言

GB2312或GB2312-80是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》
GB18030全称《信息技术中文编码字符集》是中华人民共和国国家标准所规定的变长多字节字符集。其对GB 2312-1980完全向后兼容,与GBK基本向后兼容,并支持Unicode(GB 13000)的所有码位。GB 18030共收录汉字70,244个

Unicode基于通用字符集的编码 2B 0到65535 Java中采用的是Unicode编码字符集
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码(定长码),也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部份修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码
UTF-8使用一至四个字节为每个字符编码