PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: 可以,但是比较玄乎,因为++一般会让人认为是发生在数字上的计算。如果想确定是字符,可以强制转换以下,比如 System.out.println((char)(ch++));
作者回复: 应该是视频小哥剪辑的结果,哈哈
作者回复: 对的😄
作者回复: 你还真是个人才,这个例子很有意思,这个过程是这样的 int a = 0; int b = 0; // 这时候a和b都是0 a = a++; // 这句话很有意思,后++的意思是,先用,再给a加1,也就是说,等号右边的值是a在加1之前的值,也就是0,所以结果就是又给a赋值了一个0。到这里,都没有什么。真正有意思的是“给a+1”先执行还是“先给a赋值1”。具体看下来,Java执行的过程还是先计算右边,再给左边赋值。那问题就来了,为啥不是把1赋值给a呢。按照后++的定义,右边的计算结果就是原来的值,也就是0,这时候,Java已经把0记住了,然后给a+1,这时候,a的值是1。然后,执行赋值操作,给a赋值为右边的值,也就是0。所以一顿操作猛如虎,最后是个0。 b = a++; // 这个就好理解了,b是a加1之前的值,也就是0,然后a+1,变成了1 System.out.println(a);//1 System.out.println(b);//0
作者回复: 没看出编译问题。不过可以精简一下。不需要num,在输出的时候把A强转成int就行
作者回复: 木问题哈哈,多写个括号更清楚
作者回复: 制表符的作用就是占满4的整数倍个字符的空间,所以有对齐的作用,所以叫制表符
作者回复: 👍
作者回复: char和int的转换涉及字符集和编码集,有时候两者会混为一谈,因为关系太紧密。而作为一个用的非常多,需要优化的标准,很多优化的内容理解起来就会非常绕。具体解释其实不是很适合入门。后面的程序会有一个例子,让你直观的感受到一个字符对应一个数字。
作者回复: 程序员的懒是美德👍