黑马程序员技术交流社区

标题: 曾经,我们钻过的牛角尖 [打印本页]

作者: 打工人    时间: 2013-1-23 11:50
标题: 曾经,我们钻过的牛角尖
本帖最后由 冯海霞 于 2013-1-23 11:51 编辑

活动描述在看毕老师视频的时候,肯定会有对视频中某个知识点产生质疑,然后大量的找资料或者写代码验证过;当然也肯定会对某个知识点进行延伸过。虽然当初的自己可能并不知 道自己钻过的这些牛角尖是不是对将来开发有帮助,但是现在回头想想当初自己那个学习钻研的劲头就觉得做的什么都值了!

活动要求:
                1、格式
                                问题:当初自己质疑的或者拓展的问题
                                解决过程及最后结论:讲一下答题的解决过程,然后将结论总结一下。
            2、内容
                                必须是
质疑 或者 拓展,单纯的讲视频的内容视为无效


重点奖励楼层:100楼层内奖励楼层数是质数的楼层
                        100到200内按能被3整除的楼层奖励
                        200之外待定
    大家不要小看“金钱”,假如你不知道金钱的用处,那就看看
积分商城

受奖励的前提是,按照格式回帖

作者: 打工人    时间: 2013-1-23 12:01
本帖最后由 冯海霞 于 2013-1-23 12:15 编辑

我先来一个
               问题:char a='\U000d';为什么会编译失败
            解决过程及最后结论:这是在某书上看到的关于char的内容,然后自己就写了代码试了试,结果编译错误了,然后就各种找资料,最后得知了答案,以下是一个好心人给我讲解的:
              这是java编译器的一个缺陷,
你不能使用  Unicode的换行,斜杠等字符,至于为什么,举个例子:
public static void main(String[] args) {
        if ( false == true ) { //these characters are magic: \u000a\u007d\u007b
            System.out.println("false is true!");
        }
    }
你可以运行上面的方法,会输出  false is true!
java在编译时会先将Unicode字符进行 呈现(或翻译),然后再进行编译  ,上面的方法会变成  

public static void main(String[] args) {
        if ( false == true ) { //these characters are magic:
}{
            System.out.println("false is true!");
        }
    }

再来看你的代码
char a='\U000d';

会变成:
char a='
';

这样就会产生语法错误。
这就是原因了

下面的代码是可以通过编译的
char c=' ';\u000d;
可以这样理解,代码中的 Unicode并不能理解为单纯的 字符或字符串,他们本身就是你的代码
如:
System.out.println("Unicode print ");  
这一行代码你可以写成
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0022\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u0020\u0070\u0072\u0069\u006e\u0074\u0020\u0022\u0029\u003b\u0020
其实都是一样的,只是书写和查看都很不方便 。
建议不要在代码中书写Unicode形式的字符,很容易产生奇怪的错误,而且不方便查看和修改




作者: Rancho_Gump    时间: 2013-1-23 12:03
先顶一个 回头补上
作者: 郭孟涛    时间: 2013-1-23 12:26
问题: public static void main(String args[])方法的具体含义

解决过程及最后结论:刚一开始学java就遇到这个main()方法了,尽管老师说这个就是一个入口,详细意思后期会讲述,先让我们这样写。但是自己看着这么长一段陌生单词,一个个四级硬背的抄写,实在不舒服,自己就在网上到处搜索,先翻译了一下每个单词的大体意思,又了解了java函数的格式,慢慢的对其这个写法也就比较了解。
当然这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等。

比如public:java允许类不加public关键字约束,当然类的定义只能限制为public或者无限制关键字(默认的)。

总结:通过在这个java第一个接触的函数的摸索中,不知不觉就钻了 进去,自己以后写这个函数的时候就不觉得是在死板的抄写。也发现了更多的未知知识。需要更加努力的学习



作者: 金鑫    时间: 2013-1-23 12:27
前排挖坑,以后再填
作者: 陈泰延    时间: 2013-1-23 12:38
顶一下!!!1{:soso_e185:}
作者: 刘郑瑞    时间: 2013-1-23 13:01
吃完饭,顶一个!
作者: 胡勇敏    时间: 2013-1-23 13:07
前排 占楼 下去找下。回头补上。
作者: 王少雷    时间: 2013-1-23 13:42
那些年我们钻过的牛角尖实在太多,我从来不考虑这是为什么,,,JVM告诉我 ,只能这么做~
作者: 汪平乐    时间: 2013-1-23 23:14
什么都不管,就看JVM的,然后结果,哼哼!
作者: 杨玉辉    时间: 2013-2-28 15:40
11算质数么 虽然 之前有过不少的执拗 可越往后看 越发现曾经的疑惑,只是自己知识面太窄,越思考越清晰{:soso_e130:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2