JAVA 基础知识(小收藏)

今天早上看了一份关于北理工的卷子,觉得不错,做了下,就当是看看最近自己java的学习还有什么漏洞

下面是关于这份卷子http://blog.csdn.net/bitfan/archive/2010/12/13/6072690.aspx

 

然后作者也给出了对卷子的点评

http://blog.csdn.net/bitfan/archive/2010/12/18/6083926.aspx

http://blog.csdn.net/bitfan/archive/2010/12/18/6083935.aspx

 

我对比了下,把我觉得理解不是很深刻的题记录下作者的点评,方便以后查漏

 

判断题

 

2.        通过在程序中引入“ import javax.swing.*; ”语句,就可以使用 javax.swing 包中的所有类(包括其嵌套的子包中的类)。  

(错)

       要使用嵌套子包中的类,必须再次添加 import 子句

 

7.   Java Applet 可运行于浏览器中,这意味着浏览器本身就可以直接执行 Applet 程序。(错)

    浏览器本身只认识HTML,它对其他类型信息的支持,比如Flash,Applet,Silverlight应用程序等都是通过启动本地计算机安装的附加插件来实现的。

 

简答题

 

1.   现代编程语言有两种主要的类型:一种是“编译型 ”的,比如 C ,程序源码必须经过编译才能运行;另一种是“解释型 ”的,这种类型的语言(比如早期的 Basic )通常都拥有一个交互环境,用户输入一句代码计算机就执行一句代码。

    Java 属于上述哪种类型?如果你认为 Java 不属于上述任何一种类型,那么它是不是一种新的编程语言类型?

    Java源程序需要编译,但运行时需要即时“解释”为本地CPU能执行的机器指令,所以它不属于“纯”的编译型或解释型,而是一种混合类型。(我之前一直认为java是解释型的,悲勒个剧)

 

 

5.   加法运算符“+”可以施加于原始数值类型(比如 int )的变量,但我们发现一些对象类型(比如 Integer ) 的变量,也支持“+”运算: 

 

 

 

    Integer v1 = 100;

 

    Integer v2 = 200;

 

    System.out.println(v1+v2 );  //输出: 300

 

 

 

    这看上去好象 Integer 类型重载了 “ + ” 法运算符,一些编程语言比如 C ++可以为特定的类重载运算符,但 Java 本身并不支持运算符重载这一特性。依你的理解或猜测, Java 是采用什么方法让两个 Integer 对象可以直接“相加”的? 

 

 

 

    上面代码首先是调用Integer.valueOf方法将整数转换为Integer对象,当两个Integer对象相加时,其实是使用Integer.intValue方法取出其所“包装”的整数值,相加之后,再将结果输出。 

 

    上述结论是通过分析javap反汇编示例代码得到的。 

 

    诸如Java和C#之类的编程语言,许多现象已不仅仅是语法问题,编译器在其中起了很重要的作用。我在课堂上已经介绍过如何使用javap去反汇编.class文件,通过阅读Java编译器生成的字节码指令去弄明白java编译器在后台玩的把戏。 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章