此笔记是在学习《Java语言程序设计:基础篇》所记录下的一些遗忘点。
所记录的内容基本来自书上。
文章目录
- 2.基本程序设计
- 3.选择
- 5.方法
- 6. 一维数组
- 7.多维数组
- 8.对象和类
- 9.字符串和文本I/O
-
- 9.2 字符串类String
- 9.2.2 不可变字符串与限定字符串
- 9.2.4 组合字符串
- 9.2.5 获取字串
- 9.2.6 字符串的转换、替换和分离
- 9.2.8 找出字符串中的某个字符或者某个子串
- 9.2.9 字符串与数组之间的转换
- 9.2.10 将字符和数值转换成字符串
- 9.2.11 格式化字符串
- 9.3 字符串Character
- 9.4 StringBuilder / StringBuffer类
- 9.4.1 修改StringBuilder中的字符串
- 9.4.2 toString、capacity、length、setLengt和charAt方法
- 9.6 文件类File
- 9.7 文件输入和输出
- 11.继承和多态
- 13.异常处理
- 14.抽象类和接口
2.基本程序设计
2.18.1 字符串和数字的转换
int a = Integer.parseInt(String) //将数字字符串转换为整数
double d=Double.parseDouble(String) //将数字字符串转换为浮点数
3.选择
3.17 格式化控制台输出
System.out.println("count is %d and amount is %f",count,amount)
//%d替换为count整数,%f替换为amount浮点数
%b 布尔值
%c 字符
%e 科学记数法形式的数
%s 字符串
%10.2f 宽度至少为10,不够数字前面加空格,右对齐,保留两位小数
%-10.2f 同上,不过左对齐
5.方法
5.10.4 min、max和abs方法
Math.min()
Math.max()
Math.abs()
5.10.5 random方法
Math.random()方法生成大于等于0.0且小于1.0的double型随机数
Math.random() * 10 //返回0到9的随机数
(int) (Math.random() * 10) //返回0到9的随机整数
6. 一维数组
6.2.5 数组创建和初始化
double [] array = new double[number]
double [] array = {value1,value2,.....}
new double[]{value1,value2,.....}
array.length //数组容量大小
6.2.7 for-each循环
for(double u : array){ //用变量u遍历整个数组, u必须为array中元素相同的数据类型
System.out.println(u);
}
6.5 数组的复制
两个数组list1,list2
若list2=list1,list1将数组引用赋给list2,list2也指向list1的数组,即两者指向同一个内存数组。
独立内存空间的复制数组有三种方法:
-
使用循环语句逐个地复制数组的元素。
-
使用System类的静态方法arraycopy。
arraycopy(源数组,源数组的起始位置(从0开始) y,目标数组,目标数组的起始位置(从0开始) k,复制个数n):从源数组第有y+1个元素开始复制到目标数组的第k+1个位置,复制n个元素。
注:arraycopy方法没有给目标数组分配内存空间,复制前必须创建目标数组以及内存空间。复制完成后两个数组具有相同的内容,但占有独立的内存空间。
-
使用clone方法复制数组。
6.8 可变长参数列表
可以把类型相同但个数可变的参数传递给方法。该参数叫可变长参数,声明如下:
public static void printMax(double… numbers)
**Java将可变长参数当做数组对待。**可将一个数组或可变的参数个数传递给可变长参数。使用如下:
注:传递数组是引用传递,传递基本数据类型为按值传递。
public class test {
public static void main(String[] arg){
printMax(5,8,9,1,35,88);
//或printMax(new double[]{5,8,9,1,35,88});
}
public static void printMax(double... numbers){
if(numbers.length==0){
System.out.println("Error");
}
double result = numbers[0];
for(int i = 1;i < numbers.length; i++)
if(numbers[i]>result)
result = numbers[i];
System.out.println(result);
}
}
6.18 Array类排序查找方法
为实现数组的排序和查找、数组的比较和对数组填充元素,java.util.Arrays类包括各种各样的静态方法。这些方法都有对所有的基本类型的重载方法。
double [] numbers = {6.0, 4.4, 1.9,......};
java.util.Arrays.sort(numbers); //对数组从小到大排序
char [] chars = {'a', 'A', '4',......};
java.util.Arrays.sort(chars, 1, 3) //对chars[1]到chars[3-1]排序
int[] list = {1, 5, 8, 9, 15,......} //数组必须提前按增序排列,才能使用binarySearch方法
java.util.Array.binarySearch(list, 1) //二分查找,数组必须提前按增序排列。若数组存在1,返回数组下 //标;若不存在,返回-(插入点下标+1)。
int[] list1 = {2,4,7,10};
int[] list2 = {2,4,7,10};
int[] list3 = {4,2,7,10};
java.util.Array.equals(list1,list2) //true
java.util.Array.equals(list1,list3) //false
int[] list1 = {2,4,7,10};
int[] list2 = {2,4,7,10};
java.util.Array.fill(list1,5) //用5填充整个list1,list1变为{5,5,5,5}
java.util.Array.fill(list2,1,3,8) //用8填充list[1]到list[3-1],list2变为{2,8,8,10}
7.多维数组
7.2.2 获取二维数组的长度
int[][] x = new int[3][4]
x.length为3
x[0].length为4
7.4 给方法传递二维数组
public static int sum(int[][] m){
......
}
8.对象和类
8.8 可见性修饰符
在类、方法和数据与前使用public修饰符,表示它们可以被任何其他的类访问。如果没有使用可见性修饰符,那么默认为类、方法和数