关于java:它的工作方式背后的逻辑是什么?

What is the logic behind this how it is working?

本问题已经有最佳答案,请猛点这里访问。

我读过一些棘手的面试问题,我看到了这个问题,我不明白这背后的逻辑是什么。有人能解释吗?

1
2
3
4
5
6
7
8
public class Test
{
    public static void main(String[] args) {
for(char c??h = 0; c??h < Character.MAX_VALUE; c??h++)
    if (Character.isJavaIdentifierPart(c??h) && !Character.isJavaIdentifierStart(c??h))
            System.out.printf("%04x <%s>%n", (int) c??h,"" + c??h);
    }
}

产量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
0000 < >
0001 <>
0002 <>
0003 <>
0004 <>
0005 <>
0006 <>
0007 <>
0008 <>
000e <>
000f <>
0010 <>
0011 <>
0012 <>
0013 <>
0014 <>
0015 <>
0016 <>
0017 <>
....more rows


这是:

1
for(char c??h = 0; c??h < Character.MAX_VALUE; c??h++)

1
for(char ch=0; ch< Character.MAX_VALUE; ch++)

但写的是向后的……所以是正常的for循环