java数组创建方式看不懂请教大神

在jdk自带的api源码中发现这么一行代码:
private TimerTask[] queue = new TimerTask['€ '];
这是啥意思。。创建数组的时候[]不是应该写一个数字表示数组的长度吗怎么写了个' '。。。

1.java中 char类型在0-65535范围内
2.容量小(char)的数据类型可以自动转换为容量大(int)的数据类型,这是java中的自动类型转换
3.char类型用来表示在Unicode编码表中的字符,java内部采用Unicode字符集。
4.private TimerTask[] queue = new TimerTask['€ '];这里面应该是一个控制字符,编码\u0080,只是我们看不出来而已,不过我也不会输入这个控制字符,你可以尝试把光标放进去,需要左移或者右移两次才能从''中出来
图片说明

这是一个自己创建的一个类,组成的数据

那个符号表示的是ASCII码,你自己去看一下是多少,在c中,字符和数字是可以这样使用的,java还没试过,应该也可以

java中字符(char)可以当一个无符号短整数来使用。空格字符 ' ' 相当于 32,如果是全角空格则是 12288。例:
char c1 = ' ';

char c2 = 100';
int i1 = c1;
int i2 = c2 + 3;
以上写法都是有效的

[]里边有字符,可以转换成int,表示长度

在有些情况下,char型数据可以当做int数据使用。
例如:
#include
int main(){
int a = 2;
char b = 'a';
int c;
c = a + b;
printf("%d\n", c);
getchar();
}
对照“ASCII码表”可知,字符“a",对应的ASCII十进制编码为:97;c = a + b等价于c = 97 + b,因此你会发现输出结果为c=99.
同样的道理,代码”private TimerTask[] queue = new TimerTask['€'];中的'€'等价于ASCII十进制编码。

ASCII码表如下图:
图片说明

char c1 = ' ';

char c2 = 100';
int i1 = c1;
int i2 = c2 + 3;

[]里边有字符,可以转换成int

代表32为 可以转换为int

char型数据可以当做int数据使用, char型数组