-
对于byte char short int long float double之间的转换,若操作数中有double ,另一个操作数就会转化为double,否则若其中一个操作数为float ,另一个操作数会转化为float,否则若为long,则另一个操作数会转化为long,否则均会转化为int。 double 转int 是直接截断小数部分,将浮点值转化为小数部分。比如9.9转化为int型时为9。
-
subString(beginIndex,EndIndex) 长度EndIndex-beginIndex 包括开始不包括结束
-
字符串不可变String是字符串常量,StringBuilder StringBuffer 是字符串变量。对于频繁的字符串拼接,应该使用StringBuilder.StringBuffer 是线程安全的。
-
带标签的break
read_data:
while(n>0){
if(n<100) break read_data;
} -
Arrays 类比较常用的方法。
如果需要对数组遍历,for 或者for each 都可以 也可以利用 Arrays.toString(a) 返回包含数组元素的字符串。;
Arrays.copyOf(fromArrays,length) 拷贝数组至新数组中,length是新数组的长度。Arrays.sort()使用优化后的快速排序算法。 -
日历表示法的LocalDate类和表示时间点的类Date.LocalDate.now()返回一个LocalDate对象。可以利用getDayOfMonth()获取当前是这个月的第几天。getMonthValue()返回月份值。甚至可以利用getDayOfWeek();获取星期数。
LocalDate date = LocalDate.now();
int month = date.getMonthValue();
int today = date.getDayOfMonth();
date = date.minusDays(today-1);
int weekday = date.getDayOfWeek().getValue();
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
for (int i = 1; i < weekday; i++) {
System.out.print(" ");
}
while(date.getMonthValue() == month){
int day = date.getDayOfMonth();
System.out.printf("%3d",day);
if(date.getDayOfMonth() == today){
System.out.print("*");
}else{
System.out.print(" ");
}
date = date.plusDays(1);
if(date.getDayOfWeek().getValue() == 1){
System.out.println();
}
}
-
final
final一般用于基本类型域或者不可变类的域。(如果类中的每个方法都不改变起对象,这种类叫做不可变类)。当用final域修饰的域被设置值后,不能再被修改。但是对于可变的类,会造成困惑。其实是对象引用不会再指向其他对象。 -
值调用和引用调用java中 只存在按值调用。
-
重载:java允许重载任何方法。名字相同的方法参数不同即可重载。重写是父类与子类之间。
-
抽象类不能被实例化,抽象类中不一定包含抽象方法,但是包含抽象方法的类一定是抽象类。
-
protected 对于子类和 同一包中的类都是可见的。
-
ArrayList 可以自动扩容,size()可以获取其实际元素的个数。相当于数组的length。向数组列表添加元素用add()而不要用set()。set() 只用来替换已经存在的元素的内容。
-
Integer.valueOf()用于将整型转化为整型对象。Integer.parseInt()用于将字符串转化为int.