一、输入输出
1)数组类型
Scanner(System.in)可见这个" in" :输入;
System.out.println(a); 可见 "out" :输出。
import java.util.*;
public class Test{
public static void main(String[] aaa){
Scanner xx = new Scanner(System.in);
int[] arr = new int[10];
for(int i = 0;i < arr.length;i++){
arr[i] = nextInt();
}
for(int a : arr){
System.out.println(a);
}
}
以上代码:
a 代表 arr 中的每一个数字,因为每个都是int类型,所有用int。
输出结果:
输入十个数字,输出出来。
2)字符串类型
import java.util.*;
public class Test{
public static void main(String[] aaa){
Scanner xx = new Scanner(System.in);
String str = xx.nextLine();
String str2 = xx.nextLine();
System.out.println("输入的第一个字符是:" + str);
System.out.println("输入的第二个字符是:" + str2);
}
}
输出:
二、格式化输出(按照指定的格式输出)
import java.util.*;
public class Test{
public static void main(String[] aaa){
String xx = String.format("========%s==%d%s====","大家好",89,"###");
System.out.println(xx);
}
}
输出:
String xx = String.format("======%s==%d%s====","大家好",89,"###");这个是常用的,格式化输出转化为字符串。
三、文件输入输出
启动路径就是命令解释器的当前路径。 然而,如果使用集成开发环境, 那么启动路径将由 IDE 控制。 可以使用下面的调用方式找到路径的位置:
String dir = System.getProperty("user.dir");
会把当前执行文件路径输出。
四、记事本原理
记事本存的就是在磁盘上的二进制文件。
头部固定长度,采用的是什么编码。
假如知道采用的是Ascaii编码,那么每次读取8位,去形状库匹配,匹配到哪个形状就发到显示器上;如果是Unicode编码,每次就是读16位;UTF-8也是每次读16位;定长定长的读。
五、循环
1)while循环、do...while循环(第一次执行不需要判断)、for循环
2)switch
选择
要写break
case 标签可以是: (switch可选类型)(面试题)
•类型为 char、byte、 short 或 int 的常量表达式。
•枚举常量。
•从 Java SE 7开始, case 标签还可以是字符串字面量。
switch击穿:不写break,它会一直往下匹配直到有break。
break:
break可以打断一层循环,不能打断多层循环。打断当前循环。
continue:遇到时循环后面内容不执行,直接进行下次循环。
六、大数值
import java.util.;
import java.math.;
public class Test1{
public static void main(String[] aaa){
Scanner in = new Scanner(System.in);
System.out.print("How many numbers you need to draw?");
int k = in.nextInt();
System.out.print("What is the highest number you can draw?");
int n = in.nextInt();
BigInteger lotteryOdds = BigInteger.valueOf(1);
for(int i = 1;i <= k; i++){
lotteryOdds = lotteryOdds.multiply(BigInteger.valueOf(n - i + 1)).divide(
BigInteger.valueOf(i));
System.out.println("Your odds are 1 in" + lotteryOdds + ".Good luck!");
}
}
}
七、数组
数组 本身是引用类型,不是基本类型
数组的三种方式:
基本类型的一维数组:
int[] a = new int[10]; 10个空间 默认都是0
int[] b = {1, 2, 3, 4, 5};
int[] c = new int[]{2, 3, 4, 5, 6};
二维数组:
int[][] a = new int[3][5];
int[][] b = {
{0, 0, 0, 0, 0},
{0, 0, 0, 89, 0}.
{0, 0, 0, 0, 0}
};
a[1][3] = 89;
三维数组:
int[][][] c = new int[3][4][5];
int[][][] d = {
{ {0, 0, 0, 0, 0},{0, 0, 0, 0, 0},{0, 0, 56, 0, 0},{0, 0, 0, 0, 0} },
{ {0, 0, 0, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0} },
{ {0, 0, 0, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0} },
};
c[0][2][2] = 56;
不规则数组:
引用类型的“=” 相当于把自己的指向给换掉。
引用类型的句柄和值不在同一个位置。
一维数组
二维数组
new
指向新的,切换指向。c++指针和java引用类型的句柄(引用类型等于什么),一定是改变自己的指向。
字符串数组:
String[] arr = {"aaa", "ddd", "ggg"};
for(String a : arr){
System.out.println(a);
}
浅拷贝:引用类型 “=”
Arrays.sort(a);
进行排序(打算法经常用)
int[] a = {4, 45, 7, 3, 4, 65, 354};
Arrays.sort(a);
for(int b : a){
System.out.println(b);
}