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实例

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1