20201222-岳亮
学习日志
作业https://gitee.com/moon-in-erhai-lake/java-base/tree/master
数组的初始化
- 静态初始化(声明数组变量和数组中各元素初始化在一起)
- 在堆内存中开辟内存空间
- 使用数组常量对数组中各个位置进行初始化
- 将堆内存中数组的首地址赋值给array变量
int []score={85,38,29,10};
- 动态初始化(声明数组,创建数组和数组赋值是分开的)
- 声明一个数组
- 在堆中分配内存并为各个元素赋默认值
- 将堆内存中的数组首地址赋值给变量
int [] score=new int[5];
score[0]=89;
复制数组
- System复制数组的方法
System.arraycopy(source , begin , target , start , size)
各个参数的类型
source表示 被复制的 源数组,即从那个数组中复制数据到其他数组
begin表示从 源数组 中那个位置开始复制
target表示 目标数组 将数据复制到的那个数组
start 表示 从源数组复制后的元素 放入到 目标数组后 的起始位置(从目标数组的那个位置开始存放)
size 表示 复制的元素个数
- Arrays复制数组的方法
Arrays.copyOf(original,newLength)
创建一个长度为 newLength的新数组后,将original数组中[0,Math.min(original.length , newLength))之间的元素复制到新数组中
返回数组
Arrays.copyOfRange(original,from,to)
从original复制[from, to)之间的元素到新数组后返回新数据
字符序列(char sequence)
字符序列(char sequence) 字节序列(byte sequence)
char[] chars=new char[5];
byte[] bytes=new byte[5];
- 常用字符编码
- GBK:中文简体(两个字节)
- UTF-8:针对Unicode的一种可变长度字符编码(1-4个字节)
- Big5:繁体中文
- ISO-8859-1:西欧
String中的接口
java.lang.String类实现了java.lang.CharSequence接口
java.lang.CharSequence接口中的实现类
- java.lang.String
- java.lang.StringBuffer
- java.lang.StringBuilder
关于字符编/解码
- java.nio.charset.Charset类的实例表示字符编码
Charset charset=Charset.defaultCharset();//返回当前JVM默认的编码方式
默认charset在虚拟机启动时决定,通常根据语言环境和底层操作系统的charset确定
Charset first = Charset.forName( "GBK" );
forName方法 ,返回指定名称的Charset实例
Charset.isSupported( String charsetName )
判断JVM是否支持指定的字符编码
- 将字符序列(char sequence )转换为字节序列(byte sequence)的过程为编码(encode)
- 如果没有指定字符集(charset),则使用平台默认字符集编码
String中的构造方法实现解码
解码:将 字节序列(byte sequence)转换为 字符序列(char sequence)的过程被称作 解码(decode)节码必须指定字符集(charset),不然会出现乱码
public String(byte bytes[])
没有指定字符集,则通过平台的默认字符集,解码指定的byte数组,构造一个新的String实例
public String(byte bytes[],int offset,int length)
public String(byte bytes[],Charset,charset)
public String( byte bytes[] , int offset , int length , Charset charset )
通过使用指定的charset解码指定的byte数组,构造一个新的String实例
近期评论