大多数人,都低估了编程学习的难度,而高估了自己的学习能力和毅力。
当前系列: Java语法 修改讲义

常量

复习:面向过程-1:代码规范 / 变量 / 常量 / 赋值 / (强弱)类型

关键字:final

可以先声明,再赋值

final int i;
i = 10;


底层仍然是int类型,从枚举转化成int类型:

System.out.println(DayOfWeek.SUNDAY.ordinal()); 


包装类型

复习:强类型:数值 / bool / 字符,数组 / 方法

Java核心库(java.lang.*)为每种基本类型都提供了对应的包装类型:

  • short    Short
  • int    Integer
  • long    Long
  • float    Float
  • double    Double
  • boolean    Boolean
  • byte    Byte
  • char    Character

规律:首字母大写+全称

基本类型本身无法调用任何方法属性等,需要通过包装对象:

System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);


Arrays类

内置的java.util.Arrays 类能通过其静态方法很方便地操作数组:

  • sort(Object[] array):根据其元素的自然顺序进行升序排列。排序一般是为了:
  • binarySearch(Object[] a, Object key):用二分查找法搜索给定值(数组在调用前必须排序好的)
    • 如果查找值包含在数组中,则返回搜索键的索引;
    • 否则返回一个小于0的负数 (插入点)
  • equals(long[] a, long[] a2):比较两个数组中的元素!如果两个数组以相同顺序包含相同的元素,则两个数组是相等的
演示:略


多维数组

复习:数组的数组&交错数组

在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#那样全面的强制性“等宽”约束。


方法

eclispe技巧

演示:
  • 先写调用(还没有的)方法,然后快捷键F2(quick fix) 自动生成
  • Alt+Shift+J:生成方法注释,调用时提示
    查看源代码时,如果觉得注释太占位置,可以折叠,
    Windows->Preferences->Java->Editor->Folding

可变参数

如果方法的参数是一个数组,可以将方括号改写成三个小数点(...)

static int grow(String... students) {   //等同于String[] students
	for (int i = 0; i < students.length; i++) {
这样调用的时候,可以直接传用逗号(,)分割的数组元素:
grow("atai", "bo", "");
grow(new String[]{"atai", "bo", ""});    //当然也可以传数组


String的比较

在Java中是“玄学”。有时候双等于符号(==)是OK的,但有时候又不行:
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("栈")));

#常见面试题:为什么?#

涉及知识点:


作业

J&C面向过程

  • 第5题:方法可变参数
  • 第8题:等宽二维数组

学习笔记
源栈学历
今天学习不努力,明天努力找工作

作业

觉得很 ,不要忘记分享哟!

任何问题,都可以直接加 QQ群:273534701

在当前系列 Java语法 中继续学习:

多快好省!前端后端,线上线下,名师精讲

  • 先学习,后付费;
  • 不满意,不要钱。
  • 编程培训班,我就选源栈

更多了解 加:

QQ群:273534701

答疑解惑,远程debug……

B站 源栈-小九 的直播间

写代码要保持微笑 (๑•̀ㅂ•́)و✧

公众号:源栈一起帮

二维码