1、四舍五入
public static void main(String args[]){ System.out.println(Math.round(11.5)); System.out.println(Math.round(-11.5)); }
Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11,四舍五入的原理是在参数上加0.5然后进行下取整。
2、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上
(1)jdk版本的发展与switch的更改:
早期的JDK中,switch(expr)中,expr可以是byte、short、char、int
1.5版开始,Java中引入了枚举类型(enum),expr也可以是枚举
从JDK 1.7版开始,还可以是字符串(String),长整型(long)是不可以的
(2)测试jdk1.8版本的switch:
字符串:
public static void main(String args[]) { { String string; Scanner reader = new Scanner(System.in); System.out.println("输入字符串"); string= reader.next(); switch (string) { case "monday": System.out.println("星期一"); break; case "tuesday": System.out.println("星期二"); break; case "wednesday": System.out.println("星期三"); break; case "thursday": System.out.println("星期四"); break; } } }
输入字符串
monday
星期一
长整型:
当把switch中改为long型的数据时,报错:
3、数组与字符串得length
public static void main(String args[]) { int[] arr=new int[50]; String string="123456"; System.out.println(arr.length); System.out.println(string.length()); }
数组中的length为数组的属性,字符串中的length为length()方法,然而,JavaScript中,获得字符串的长度是通过length属性得到的,这一点容易和Java混淆。
4、构造器是否可以被重写?
public class Test { private String name; private String age; public Test(String name, String age) { this.name = name; this.age = age; } public Test(String name) { this.name = name; } public Test(){ } }
(1)构造器可以被重载,但是不能被重写,子类调用父类的
(2)子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法。在子类的构造方法中可使用语句 super(参数列表) 调用父类的构造方法。一个构造方法调用本类的其它构造方法用this关键字。
5、重载和重写
(1)重载和重写的区别:
联系:方法的重载和重写都是实现多态的方式,
区别:
重载实现的是编译时的多态性,而重写实现的是运行时的多态性
重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载
重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。
public static void main(String args[]) {
int[] arr=new int[50];
String string="123456";
System.out.println(arr.length);
System.out.println(string.length());
}