关键字:final
可以先声明,再赋值
final int i; i = 10;
底层仍然是int类型,从枚举转化成int类型:
System.out.println(DayOfWeek.SUNDAY.ordinal());
Java核心库(java.lang.*)为每种基本类型都提供了对应的包装类型:
规律:首字母大写+全称
基本类型本身无法调用任何方法属性等,需要通过包装对象:
System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE);
内置的java.util.Arrays 类能通过其静态方法很方便地操作数组:
复习:数组的数组&交错数组
在Java中可以声明后立即赋值:(C#中不行)
mutrix[][] arr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
在初始化时,指定每个“数组元素”的长度。
比如,3行2列的数组:int[][] mutrix = new int[3][2];//注意这个[2]
然后就可以直接赋值(复习对比):
mutrix[0][0] = 30;
因为Java已按照长度2初始化了每个“数组元素”:
System.out.println(mutrix[0][0]);//30 System.out.println(mutrix[0][1]);//默认值0如果超出这个长度,就会报数组越界错误:
mutrix[0][5] = 100; System.out.println(mutrix[0][5]);
但是,等宽长度的限制并不是不可逾越的:
mutrix[0] = new int[] {2,8,16}; System.out.println(mutrix[0][2]);
所以,我们可以认为Java的多维数组本质上是“数组的数组”,没有(像C#那样)全面的强制性“等宽”约束。
如果方法的参数是一个数组,可以将方括号改写成三个小数点(...)
static int grow(String... students) { //等同于String[] students for (int i = 0; i < students.length; i++) {这样调用的时候,可以直接传用逗号(,)分割的数组元素:
grow("atai", "bo", ""); grow(new String[]{"atai", "bo", ""}); //当然也可以传数组
System.out.println("源栈" == "源栈"); System.out.println("源栈" == "源" + "栈"); System.out.println("源栈" == new String("源栈")); System.out.println("源栈" == "源".concat("栈"));如果要比较的是两个字符串的值,推荐总是使用equals方法:
System.out.println("源栈".equals("源栈")); System.out.println("源栈".equals("源" + "栈")); System.out.println("源栈".equals(new String("源栈"))); System.out.println("源栈".equals("源".concat("栈")));
#常见面试题:为什么?#
涉及知识点:
多快好省!前端后端,线上线下,名师精讲
更多了解 加: