基本编成结构笔记

int 4个字节 类型的范围是-2 147 483 648 ~ 2 147 483 647(刚超过20亿)
long 8个字节
double 8个字节
float 4个字节
short 2个字节
byte 1个字节
值得注意的是 8进制数 采用0??表示 例如 011表示十进制数字9
而且可以给数字添加下划线1_000_000表示10万,使阅更加容易
Double.isNaN(x) 可以用来检查数值x是否为非数值,而不能直接用==来检查,非数值比如 0.0/0.0 负数的平方根
变量名必须以字母开始,而且习惯上变量和方法以小写字母开始,类的名称的第一个字母大写
常量用 final 表示,一旦赋值不可更改 final int CONSTANT = 1; 常量的名称使用大写字母,而且在方法外通常使用 static关键字声明常量

枚举类型常量
例如
public static final int MONDAY = 1;
public static final int TUESDAY= 2;
可以定义枚举常量 enum
enum WeekDay {MON,TUE ,WED, THU, FRI, STA, SUN };
WeekDay就是指为 WeekDay.Mon 或 WeekDay.TUE 等的一个类型。可以这样进行初始化
WeekDay startDay = WeekDay.MON;

大数
BigInteger n = BigInteger.valueOf(12345678987654323456);
BigInteger k = new BigInteger("12345678909876543");

字符串
要将几个以分隔符隔开的字符串联结起来,使用join方法 //注意的是JAVA中没有join方法
String name = String.join(",",“Paul”,“Mary”,“Peter”);
结果为name = “Paul,Mary,Peter”
substring 子字符串 test.substring(2,5); test字符串的第2到第5个字符
判断两个字符串是否相等要用 test.equals("test");
在比较字符串和文字串是最好将文字串放在前面
比如 String test = “World”; if("World".equals(test)){} 可以保证test即使为空的情况下,程序也不会报错
在不考虑大小写的情况下,可以使用 equalsIgnoreCase 方法
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
if(name.equalsIgnoreCase("World")){
System.out.print("true");
}else {
System.out.print("false");
}
将数字转化为字符串 Integer.toString(23);
将字符串转化为数字 Integer.parseInt("123");

读取输入
Scanner scanner = new Scanner(System.in);
in.nextLine(); 读取下一行
in.next(); 读取下一个单词
in.nextInt(); 读取下一个整数

格式化输出
String msg = String.format("hello,%s . Next year, you'll be %d years old",name,age);

带有标签的跳出循环
int i=0;
outer:
while(true){
i--;
System.out.print("outside"+i);
while (true){
i++;
if(i>10){
break outer;
}
System.out.print("inside"+i);
}
}
可以直接从内部循环调到 outer 指明的任意地方

构造数组
数字类型(包括char类型)的数组用0填充
Boolean 类型的数组用false填充
对象数组用空引用填充
int[] numbers = new int[10];
for(int i:numbers){
System.out.println(i);
}
输出均为0

数组与列表的复制
浅层复制直接用 “=”
深层复制 数组 Arrays.copyOf(numbers,numbers.length)
列表 ArrayList<Integer> copy_ints = new ArrayList<>(ints);

数组转换为列表
Integer[] numbers = new Integer[]{1,2,3,4,5,6,7,8,9};
ArrayList<Integer> copy_ints = new ArrayList<Integer>(Arrays.asList(numbers));
for(int i:copy_ints) {
System.out.print(i);
}
列表转化为数组
Integer[] copy = copy_ints.toArray(new Integer[0]);
for(int i:copy) {
System.out.print(i);
}
数组填充用 Arrays.fill(numbers,0);
列表填充 Collections.fill(numbers,0);

数组排序用 Arrays.sort(numbers);
列表排序用 Collections.sort(numbers);

数组格式化输出用 Arrays.toString(numbers);
列表格式化输出用 numbers.toString

可变参数
public static double sum(double... values){
double ans = 0;
for(double v:values){
ans = ans+v;
}
return ans;
}
调用 System.out.println(sum(12,34,3523,24,2,42,4,1,31,4,3));
其中也可以直接传递数组
可变参数需要注意的是可变参数必须是方法的最后一个参数,但是可以在可变参数前有其他参数


 

posted on 2018-04-02 13:55  LeaveMeAlone1995  阅读(220)  评论(0编辑  收藏  举报