一、变量命名规范
涉及IDEA创建的:项目、模块、包、类
1.项目名、包名全部小写。
2.常量名全部大写。
public static final String GAME_COLOR=”RED”
3.类名首字母大写,一般使用驼峰式命名。
public class MyFirstClass{}
4. 变量名、方法名首字母小写,一般使用驼峰式命名。
int indexFinder = 0;
二、数组
1.数组的声明和创建
(1)一维数组
//声明,两种方式
int[] arr;
int arr[];
//声明时不能指定长度,因为声明时不分配内存
//创建
arr = new int[2];
arr = new int[]{1,2,3};//长度与元素不能同时出现
//声明与创建可以合二为一
int[] arr = new int[2];
int[] arr = new int[]{1,2,3};
(2)多维数组
//声明,两种方式
int[][] arr;
int arr[][];
//声明时不能指定长度,因为声明时不分配内存
//创建
arr = new int[2][];//第一个括号必须有值,可看做行数,每行为一个数组
//合二为一
int[][] arr = new int[2][];
2.数组的初始化
(1)一维数组
//数组的静态初始化
int a[] = new int[]{2, 0, 1};
//数组的动态初始化
int[] arr = new int[2];
//数组的默认初始化,只指定长度,每个元素的值都是默认值
int[] arr = new int[2];
(2)多维数组
//数组的静态初始化
int a[][] = new int[][]{{2, 0}, {1, 2, 3}};//每行不必为等长
//数组的动态初始化
int[][] arr = new int[2][];//第一个括号必须有值,可看做行数,每行为一个数组
//只指定长度,每个元素的值都是默认值
3.数组的赋值
使用大括号,中间用逗号“ , ”隔开。
int[] arr = new int[]{1,2,3};
4.数组的属性
(1)长度/元素个数
length
arr.length;
5.数组的复制
(1)
a.使用 copyOf() 方法和 copyOfRange() 方法:
Arrays 类的 copyOf() 方法与 copyOfRange() 方法都可实现对数组的复制。
copyOf() 方法是复制数组至指定长度
copyOfRange() 方法则将指定数组的指定长度复制到一个新数组中
其中copyof()方法底层是利用System.arraycopy()来实现的。
1. 使用 copyOf() 方法对数组进行复制
Arrays 类的 copyOf() 方法的语法格式如下:
Arrays.copyOf(dataType[] srcArray,int length);
其中,srcArray 表示要进行复制的数组,length 表示复制后的新数组的长度。
使用这种方法复制数组时,默认从原数组的第一个元素(索引值为 0)开始复制,目标数组的长度将为 length。如果 length 大于 srcArray.length,则目标数组中采用默认值填充;如果 length 小于 srcArray.length,则复制到第 length 个元素(索引值为 length-1)即止。
注意:目标数组如果已经存在,将会被重构。
2. 使用 CopyOfRange() 方法对数组进行复制
Arrays 类的 CopyOfRange() 方法是另一种复制数组的方法,其语法形式如下:
Arrays.copyOfRange(dataType[] srcArray,int startIndex,int endIndex)
其中:
1.srcArray 表示原数组。
2.startIndex 表示开始复制的起始索引,目标数组中将包含起始索引对应的元素,另外,startIndex 必须在 0 到 srcArray.length 之间。
3.endIndex 表示终止索引,目标数组中将不包含终止索引对应的元素,endIndex 必须大于等于 startIndex,可以大于 srcArray.length,如果大于 srcArray.length,则目标数组中使用默认值填充。
注意:目标数组如果已经存在,将会被重构。
b.使用 arraycopy() 方法
arraycopy() 方法位于 java.lang.System 类中,其语法形式如下:
System.arraycopy(dataType[] srcArray,int srcIndex,int destArray,int destIndex,int length)
其中,srcArray 表示原数组;srcIndex 表示原数组中的起始索引;destArray 表示目标数组;destIndex 表示目标数组中的起始索引;length 表示要复制的数组长度。
使用此方法复制数组时,length+srcIndex 必须小于等于 srcArray.length,同时 length+destIndex 必须小于等于 destArray.length。
注意:目标数组必须已经存在,且不会被重构,相当于替换目标数组中的部分元素。
c.使用 clone() 方法
clone() 方法也可以实现复制数组。该方法是类 Object 中的方法,可以创建一个有单独内存空间的对象。因为数组也是一个 Object 类,因此也可以使用数组对象的 clone() 方法来复制数组。
clone() 方法的返回值是 Object 类型,要使用强制类型转换为适当的类型。其语法形式比较简单:
array_name.clone()
int[] targetArray=(int[])sourceArray.clone();
注意:目标数组如果已经存在,将会被重构。
总结:以上几种方法都是浅拷贝(浅复制)。浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化。深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变。
三、String
1.长度
对于Array, length是一个数据成员(a data field)
a = new int [100];
a.length;
对于String, length是方法(a method)
String a = "abcde";
a.length();
2.子串
s.substring(2, 10)
不包括2,包括10
String s = "Today is Monday";
s.substring(2,10):"day is M"
3.转换
(1)int 和 String 互相转换
int i = 1;
String转换为int / Integer
Intrger i = new interger(i);
Intrger i = Integer.valueOf(String);
Integer.parseInt(String);
int / Integer转换为String
方法一:String s = i + "";
方法二:String s = String.valueof(i);
方法三:(先转换为Integer类型,再调用toString方法):
Intrger i = new interger(i);
String s = i.toString();
方法四:String s = Integer.toString(i);
(2)String 和 char型数组互相转化
String转换为char数组
使用toCharArray()方法
String str = "hello";
char[] arr = str.toCharArray();
char数组转换为String
使用String的一个构造方法
char[] arr = ['h','e','l','l','o'];
String str = new String(arr);
或
str = String.valueOf(arr);