文档库 最新最全的文档下载
当前位置:文档库 › Java四个核心思想

Java四个核心思想

Java四个核心思想
Java四个核心思想

?Java中的四个核心技术思想

?https://www.wendangku.net/doc/d67507190.html, 2011-05-18 09:32 悠虎比特网我要评论(0)

java的魅力是很大的,它可以实现跨平台、动态的Web、Internet计算等,所以Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。本文介绍Java 中的四个核心技术思想,一起来看。

Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java 技术,深入理解底层的技术处理细节必不可少。对核心概念和思想的掌握可以帮助我们举一反三、触类旁通,有助于提升我们对整个Java平台的理解力。这里所介绍的是Java技术平台的几个核心概念,其中所蕴含的思想有助于我们更深刻的理解Java技术。

Java虚拟机

Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件。Java API中只有程序执行时需要的那些类才会被装载。字节码由执行引擎来执行。

不同的Java虚拟机中,执行引擎可能实现得非常不同。在由软件实现的虚拟机中,最简单的执行引擎就是一次性解释字节码。另一种执行引擎更快,但是也更消耗内存,叫做"即时编译器(just-in-time compiler)"。在这种情况下,第一次被执行的字节码会被编译成本地机器代码。编译出的本地机器代码会被缓存,当方法以后被调用的时候可以重用。第三种执行引擎是自适应优化器。在这种方法里,虚拟机开始的时候解释字节码,但是会监视运行中程序的活动,并且记录下使用最频繁的代码段。

程序运行的时候,虚拟机只把那些活动最频繁的代码编译成本地代码,其他的代码由于使用得不是很频繁,继续保留为字节码-由虚拟机继续解释它们。一个自适应的优化器可以使得Java虚拟机在80%~90%的时间里执行被优化过的本地代码,而只需要编译10%~20%的对性能有影响的代码。

当Java虚拟机是由主机操作系统上的软件实现的时候,Java程序通过调用本地方法(native method)和主机交互。Java中有两种方法: Java方法和本地方法。Java方法是由Java语言编写,编译成字节码文件,存储在class文件中的。本地方法是由其他语言(比如c,c++或汇编语言)编写的,编译成何处理器相关的机器代码。

本地方法保存在动态链接库中,格式是各个平台专有的。运行中Java程序调用本地方法时,虚拟机装载包含这个本地方法的动态库,并调用这个方法。本地方法是联系Java程序和底层主机操作系统的连接方法。

通过本地方法,Java程序可以直接访问底层操作系统的资源。一个本地方法接口(Java Native Interface, JNI)-使得本地方法可以在特定主机系统的任何一个Java平台实现上运行。

如果希望使用特定主机上的资源,它们又无法从Java API访问,那么可以写一个平台相关的Java程序来调用本地方法。如果希望保证程序的平台无关性,那么只能通过Java API 来访问底层系统资源。

类装载器的体系结构

一个Java应用程序可以使用两种类装载器:"启动(bootstrap)"类装载器和用户定义的类装载器。启动类装载器(这是系统中唯一的)是Java虚拟机实现的一部分。启动类装载器通常使用某种默认方式从本地磁盘中装载类,包括Java API类(启动类装载器也被称为原始类装载器、系统类装载器或者默认类装载器)。

Java应用程序能够在运行时安装用户定义的类装载器,这种类装载器能够使用自定义的方式来装载类。例如,从网络下载class文件。尽管启动类装载器是虚拟机实现的本质部分,而用户定义的类装载器不是,但用户定义的类装载器能够用Java来编写,能够被编译成class文件,能够被虚拟机装载,还能够像其它对象一样实例化。

由于有用户定义类装载器,所以不必再编译的时候就知道运行中的Java应用程序中最终会加入的所有的类。用户定义的类装载器使得在运行扩展Java应用程序成为可能。当它运行时,应用程序能够解决它需要哪些额外的类,能够决定是使用一个或是更多的用户定义的类装载器来装载。

由于类装载器是用Java编写的,所以用任何在Java代码中可以表述的风格来进行类装载。这些类可以通过网络下载,可以从某些数据库中获取,甚至可以动态生成。

每一个类被装载的时候,Java虚拟机都监视这个类,看到它到底是被启动类装载器还是被用户定义类装载器装载。当被装载的类引用了另外一个类时,虚拟机就会使用装载第一个类的类装载器装载引用的类。例如,如果虚拟机使用一个特定的类装载器装载Volcano

这个类,它就会使用这个类装载器装载Volcano类使用的所有类。

由于Java虚拟机采取这种方式进行类的装载,所以被装载的类默认情况下只能看到被同一个类装载器装载的别的类。通过这种方法,Java的体系结构允许在一个Java应用程序中建立多个命名空间。运行时的Java程序中的每一个类装载器都有自己的命名空间。

Java应用程序可以创建多少个(或多少种)被不同的类装载器装载的类存放在不同的命名空间中,它们不能相互访问,除非应用程序显示地允许这么做。当编写一个Java应用程序的时候,从不同源文件装载的类可以分隔在不同的命名空间中。通过这种方法,就能够使

用Java类装载器的体系结构来控制任何不同源文件中装载的代码之间的相互影响,特别是能够阻止恶意代码获取访问或破坏善意代码的权限。

Web浏览器是一个动态扩展的例子,Web浏览器使用用户定义的类装载器从网络下载用于Java applet的class文件。Web浏览器使用一个用来安装用户定义类装载器的Java应用程序。这个用户定义的类装载器通常被称为Java Applet类装载器,它知道如何向HTTP 服务器请求class文件。

Java Applet可以作为动态扩展的例子,因为Java应用程序并不知道它什么时候会开始从网络下载浏览器请求的class文件。只有当浏览器遇到有Java applet的页面时,才决定是否需要下载class文件。

Web浏览器启动的Java应用程序通常为每个提供class文件的网络地址分别创建不同的用户定义类装载器,因此,不同的用户定义类装载器装载不同来源的class文件。这就可以把它们分别放置在Java主机应用程序的不同命名空间之下。由于不同来源的Java applet 文件放置在不同的命名空间中,恶意的Java applet代码就不会直接访问从别的地方下载的class文件。这就能够限制或阻止不同来源的代码之间的相互访问。

Java class文件

Java class文件主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。这种途径途径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件时可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。

当编译和连接一个C++程序时,所获得的可执行二进制文件只能在指定的硬件平台和操作系统上运行,因为这个二进制文件包含了对目标处理器的机器语言。而Java编译器把Java 源文件的指令翻译成字节码,这种字节码就是Java虚拟机的"机器语言"。

class文件设计得紧凑,因此它们可以快速地在网络上传送。其次,由于Java程序是动态连接和动态扩展的,class文件可以在需要的时候才下载。这个特点使得Java应用程序能够安排从网络上下载class文件的时间,从而可以最大限度地减少终端用户的等待时间。

Java API

Java API通过支持平台无关性和安全性,使得Java适应于网络应用。Java API是运行库的集合,它提供了一套访问主机系统资源的标准方法。运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序

中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了再Java虚拟机上运行的整个程序。

在一个平台能偶支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地资源,Java API调用了本地方法。由于Java API class文件调用了本地方法,Java程序就不需要再调用它们了。通过这种方法,Java API class文件为底层主机提供了具有平台无关性、标准接口的Java程序。对Java程序而言,无论平台内部如何,Java API都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上明确地实现了Java虚拟机和Java API,因此,Java程序自身就能够成为具有平台无关性的程序。

Java API在Java安全性模型方面也有贡献。当Java API的方法进行任何有潜在危险的操作(比如进行本地磁盘写操作)之前,都会通过查询访问控制器来检验是否得到了授权。访问控制器是一个类,该类用来执行栈检验,已决定是否允许某种操作。

Java核心技术习题答案

Java核心技术 习题答案 马志强张然李雷孝编 清华大学出版社 目录 第一章Java语言概述 (3) 第二章 Java语法基础 (4) 第三章面向对象编程 (15) 第四章数组 (38) 第五章高级类特性 (45) 第六章 GUI编程 (51) 第七章集合框架 (62) 第九章集合框架 (77) 第十章 IO流 (81) 第十一章 JDBC访问数据库 (84) 第十二章线程 (85) 第十三章网络编程 (90)

第一章Java语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1. MyClass MyClass.class 2. String数组(String[])一 3. javac A.java java A 三、程序设计题 1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。 1)首先安装JDK; 2)配置环境变量path,classpath可配可不配; 3)FirstJava.java public class HelloWorld{ public static void main(String[] args){ 开始学习Java程序设计!"); } } 2、修改下面四个Java源文件中的错误,使其能够编译和运行。 Test1.java:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰; Test2.java:源文件中public修饰的类的名字为Testing2,和源文件名字不一致; Test3.java:Test3类的main方法的形参类型为String[]; Test4.java:Test4类的main方法必须使用static关键字修饰。

Java核心技术试题

一、不定向选择题(共30题,每题2分,共60分) 1、为了区分重载多态中同名的不同方法,要求( )。 A) 采用不同的参数列表B) 返回值类型不同 C) 调用时用类名或对象名做前缀D) 参数名不同 2、定义主类的类头时可以使用的访问控制符是( )。 A) private B) protected C) public D) private protected 3、下列整型的常量属性i 的定义中,正确的是( )。 A) static final int i=100; B) final int i; C) static int i; D) final float i=1.2f; 4、设x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( )。 A) public x x1= new y( ); B) x x1=x( ); C) x x1=new x( ); D) int x x1; 5、下列方法定义中,正确的是( )。 A) int x( int a,b ) B) double x( int a,int b) { return (a-b); } { int w; w=a-b; } C) double x( a,b ) D) int x( int a,int b) { return b; } { return a-b; } 6、为了使包sos在当前程序中可见,可以使用的语句是( )。 A)import sos.*; B)package sos.*; C)sos import; D)sos package; 7、设i、j、k 为类X 中定义的int 型变量名,下列类X 的构造函数中正确的是( )。 A) X( int i){ ... } B) void X( int i){ ... } C) X( int i, int j){ ... } D)X( int i,int j,int k){ ... }

Java核心技术复习题答案

Java核心技术习题答案 马志强然雷孝编 清华大学

目录 第一章Java语言概述 (3) 第二章 Java语法基础 (4) 第三章面向对象编程 (16) 第四章数组 (40) 第五章高级类特性 (47) 第六章 GUI编程 (53) 第七章集合框架 (64) 第九章集合框架 (80) 第十章 IO流 (84) 第十一章 JDBC访问数据库 (87) 第十二章线程 (88) 第十三章网络编程 (93)

第一章Java语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1. MyClass MyClass.class 2. String数组(String[])一 3. javac A.java java A 三、程序设计题 1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。 1)首先安装JDK; 2)配置环境变量path,classpath可配可不配; 3)FirstJava.java public class HelloWorld{ public static void main(String[] args){ System.out.println("开始学习Java程序设计!"); } } 2、修改下面四个Java源文件中的错误,使其能够编译和运行。 Test1.java:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰; Test2.java:源文件中public修饰的类的名字为Testing2,和源文件名字不一致; Test3.java:Test3类的main方法的形参类型为String[]; Test4.java:Test4类的main方法必须使用static关键字修饰。

JAVA编程不得不看的几本经典书籍

为了帮助对java编程感兴趣的同学更好、更快的提高编程技术,武汉北大青鸟光谷校区专业老师在此推荐几本学习编程非常有用的书籍,以供大家参考。 入门类 1.《java从入门到精通》(第3版) 【内容介绍】 本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java 语言进行程序开发应该掌握的各方面技术。全书共分28章,包括:初识Java,熟悉Eclipse 开发工具,Java 语言基础,流程控制,字符串,数组,类和对象,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,Swing程序设计,集合类,I/O输入输出,反射,枚举类型与泛型,多线程,网络通信,数据库操作,Swing表格组件,Swing树组件,Swing其他高级组件,高级布局管理器,高级事件处理,AWT绘图与音频播放,打印技术和企业进销存管理系统等。所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。 【推荐理由】 本书内容详尽,实例丰富,非常适合作为编程初学者的学习用书,也适合作为开发人员的查阅、参考资料。 2.《java核心技术卷一》 【内容介绍】 本书是Java技术经典参考书,多年畅销不衰,第7版在保留以前版本风格的基础上,涵盖Java2开发平台标准版J2SE5.0的基础知识,主要内容包括面各对象程序设计、反射与代理、接口与内部类、事件监听器模型、使用Swing UI工具箱进行图形用户界面设计,异常处理、流输入/输出和对象序列化、泛型程序设计等。本书内容翔实、深入浅出,附有大量程序实例,极具实用价值,是Java初学者和Java程序员的必备参考书。 【推荐理由】 本书出版以来,深受广大读者的喜爱,它全面介绍了Java SE的基础知识,不但具有使用价值,而且易于阅读,易理解,它必成为想进军Java和基础薄弱同学的不二之选。 3.《java编程语言》 【内容介绍】 本书以Java语言创建者的独特视角向读者展现了为什么以及如何使用Java语言,以便读者理解Java语言的基本设计目标以及它在现实世界中的应用。本书介绍的是Java语言的

Java核心技术习题答案

Java核心技术习题答案 马志强张然李雷孝编 清华大学出版社

目录 第一章Java语言概述 (3) 第二章 Java语法基础 (4) 第三章面向对象编程 (11) 第四章数组 (25) 第五章高级类特性 (26) 第六章 GUI编程 (26) 第七章集合框架 (29) 第九章集合框架 (42) 第十章 IO流 (46) 第十一章 JDBC访问数据库 (46) 第十二章线程 (48) 第十三章网络编程 (53)

第一章Java语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1. MyClass 2. String数组(String[])一 3. javac java A 三、程序设计题 1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。 1)首先安装JDK; 2)配置环境变量path,classpath可配可不配; 3) public class HelloWorld{ public static void main(String[] args){ "开始学习Java程序设计!"); } } 2、修改下面四个Java源文件中的错误,使其能够编译和运行。 :TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰; :源文件中public修饰的类的名字为Testing2,和源文件名字不一致; :Test3类的main方法的形参类型为String[]; :Test4类的main方法必须使用static关键字修饰。

第二章 Java语法基础 一、选择题 1-5 BCADB 6-9 DCCC 二、填空题 1. abc ,a1, _abc, _1a, ab123 #a,const,$abc,1abc,if,$#1sa,$_a,_$q1 2.题目出现问题:代码修改为 ch = (char) (ch+1);结果为’B’;如果直接结果为 98。 (真) false(假) 5. 2 2 false 2 *20/100 (double)m*20/100 三、编程题 1、由命令行输入一个成绩,使用switch结构求出成绩的等级。A:90-100; B:80-89;C:70-79;D:60-69;E:0-59。 import class IfElseTest { public static void main(String[] args) { Scanner sc = new Scanner; int grade = (); if(grade<0 || grade>100){ "aaaa"); (0); } int temp =(int)(grade/10);

java核心技术习题答案定稿版

j a v a核心技术习题答案 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

Java核心技术 习题答案 马志强张然李雷孝编 清华大学出版社 目录 第一章Java语言概述 (3) 第二章 Java语法基础 (4) 第三章面向对象编程 (15) 第四章数组 (38) 第五章高级类特性 (45) 第六章 GUI编程 (51) 第七章集合框架 (62) 第九章集合框架 (77) 第十章 IO流 (81) 第十一章 JDBC访问数据库 (84) 第十二章线程 (85)

第十三章网络编程 (90)

第一章Java语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1. MyClass MyClass.class 2. String数组(String[])一 3. javac A.java java A 三、程序设计题 1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。 1)首先安装JDK; 2)配置环境变量path,classpath可配可不配; 3)FirstJava.java public class HelloWorld{ public static void main(String[] args){ 开始学习Java程序设计!"); } } 2、修改下面四个Java源文件中的错误,使其能够编译和运行。

Test1.java:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰; Test2.java:源文件中public修饰的类的名字为Testing2,和源文件名字不一致; Test3.java:Test3类的main方法的形参类型为String[]; Test4.java:Test4类的main方法必须使用static关键字修饰。

java核心技术试题

下列能自动为上下文中定义的所有的Bean生成代理的类为:() A. ProxyFactoryBean B. BeanNameAutoProxyCreator C. DefaultAdvisorAutoProxyCreator 若Hibernate的Session出现了Spring中的HibernateTemplate中没有的方法,则:( ) A. 无法使用Spring的HibernateTemplate了 B. 可以使用HibernateTemplate的回调方法 以下程序的打印结果是什么:( ) 1) tx = session.beginTransaction(); 2) Customer c1=(Customer)session.load(Customer.class,new Long(1)); 3) Customer c2=(Customer)session.load(Customer.class,new Long(1)); 4) System.out.println(c1==c2); 5) https://www.wendangku.net/doc/d67507190.html,mit(); 6) session.close(); A. 运行出错,抛出异常 B. 打印false C. 打印true 以下程序代码对Customer的name属性修改了两次 1) tx = session.beginTransaction(); 2) Customer customer=(Customer)session.load(Customer.class,new Long(1)); 3) customer.setName("Jack"); 4) customer.setName("Mike"); 5) https://www.wendangku.net/doc/d67507190.html,mit(); 执行以上程序,Hibernate需要向数据库提交几条update语句:( ) A.0 B. 1 C. 2 D. 3 以下哪一种检索策略利用了外连结查询:( ) A. 立即检索 B. 延迟检索 C. 迫切左外连结检索 假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况:( ) 1) Session session=sessionFactory.openSession(); 2) tx = session.beginTransaction(); 3) Customer customer=(Customer)session.get(Customer.class,new Long(1)); 4) https://www.wendangku.net/doc/d67507190.html,mit(); 5) session.close(); 6) Iterator orderIterator=customer.getOrders().iterator(); A. 编译出错 B. 编译通过,并正常运行 C. 编译通过,但运行时抛出异常 如果让数据库中的表与POJO对应,我们必须通过:( )映射 A. *.class B. *.xml C. *.hbm.xml; D. *.java 我们在实用Set方式映射一对多单向关联时,下列那句话是正确的:( )

《JAVA核心技术》讲了什么

《java核心技术》讲了什么 每次看到网上有很多想学习java技术的小伙伴都在寻找一些书籍和视频,作为一个初学者,该看怎么样的书籍比较适合呢?或者说,如何才能轻松入门又能深入学习呢?当然了这不是一本书就能解决的事。今天千锋老师先给大家分享一下《Java核心技术》这本书,将自己又温习了一遍的感想跟大家聊一聊。 Hash Code方法默认是调用该对象的地址,如果你重写了equals方法应该重写hash Code方法,例如你的equals方法是比较的对象的ID,就用该对象的ID来hash。 instanceof并不完美,不能够查出父子类,所以在写equals方法的时候应该比较下是否同一个类。。 String类和包装类的值都是不能改变的,所以如果希望实现它们的引用传递需要使用StringHolder类和包装类的Holder类,例如:IntHolder。

C#中的委托可以用JAVA中的反射invoke方法传递方法指针method完成。 不要使用protected修饰field因为整个包内都可以访问,破坏了封装性。 throwable接口的实现类有2个分支,一个是error,一般情况JAVA系统的内部错误或者资源耗尽,对于它,除了通知用户错误和让用户安全退出外别无他法。还有一个是exception,又分为Runtime Exception和非Runtime Exception。由于程序的错误导致出现的异常称为Runtime Exception,这种问题应该在程序中解决和避免,不应该抛出异常。而曾经能够正常运行,在某些时候可能会出现导致的异常称为非Runtime Exception,这种问题的解决应该抛出异常。常见的Runtime Exception有类型转换错误、数组越界、空指针等。如果出现Runtime Exception就一定是你的问题。Error和Runtime Exception 称为未检查异常。而非Runtime Exception称为已检查异常。 要使用精确的浮点运算请使用Big Decimal。除法的时候注意使用小数位,否则会导致得不到精确值错误。 建议不要在程序中使用char,因为char使用的是utf-16编码。 三种处理错误的机制:异常,日志和断言。java默认关闭使用断言,想使用应该在运行的jvm参数中使用-ea。例如:int x= 5;要判断x是否大于0可以使用assert x>0 : x;断言不应该使用在程序发生了可恢复性错误。断言只能用在开发和测试阶段。是一种战术性工具,而日志才是贯穿整个生命周期的策略性工具。 序列化除了能够保存简单对象以外,对复杂对象也有很好的处理方式,比如如果在几个对象共同引用一个共享对象时,就不会把这个共享对象保存几次,而是检查是否已经保存这个共享,如果没有则保存,如果已经保存,则保存一个该

java核心技术习题答案

j a v a核心技术习题答案 The pony was revised in January 2021

Java核心技术 习题答案 马志强张然李雷孝编 清华大学出版社 目录 第一章Java语言概述 (3) 第二章 Java语法基础 (4) 第三章面向对象编程 (15) 第四章数组 (38) 第五章高级类特性 (45) 第六章 GUI编程 (51) 第七章集合框架 (62) 第九章集合框架 (77) 第十章 IO流 (81) 第十一章 JDBC访问数据库 (84) 第十二章线程 (85)

第十三章网络编程 (90)

第一章Java语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1. MyClass 2. String数组(String[])一 3. javac java A 三、程序设计题 1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。 1)首先安装JDK; 2)配置环境变量path,classpath可配可不配; 3) public class HelloWorld{ public static void main(String[] args){ 开始学习Java程序设计!"); } } 2、修改下面四个Java源文件中的错误,使其能够编译和运行。

:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰; :源文件中public修饰的类的名字为Testing2,和源文件名字不一致; :Test3类的main方法的形参类型为String[]; :Test4类的main方法必须使用static关键字修饰。

Java 1笔试题

JAVA笔试题(一) 考试科目 ?Java核心技术 笔试考试范围 ?配置环境变量 ?Java命名规则 ?数据类型及类型转换 ?变量 ?转义字符 ?运算符号 ?流程控制语句 ?数组 ?面向对象 ?类与对象 ?方法与属性 ?构造函数 ?Java的内存分配 ?Java对象创建过程 ?Java的资源回收机制 试题 一、选择题 1.下面哪些是合法的变量名? (BCDE) A.2variable B.variable2 C._whatavariable D._3_ E.$anothervar F.#myvar G.synchronized 2.Java解释器是对什么进行解释运行的(B) A.文件名.java B.文件名.class C.文件名.obj D.文件名.exe 3.Java JDK中反编译工具命令是(D) A.javac B.java C.javadoc D.javap 4.一个Java程序运行从上到下的环境次序是(C) A.操作系统、Java程序、JRE/JVM、硬件 B.JRE/JVM、Java程序、硬件、操作系统

C.Java程序、JRE/JVM、操作系统、硬件 D.Java程序、操作系统、JRE/JVM、硬件 5.下列整型数据类型中,需要内存空间最少的是(A) A.byte B.short C.int D.long 6.以下选项中循环结构合法的是() A.while (int i<7){ i++; System.out.println(“i is “+i); } B.int j=3; while(j){ System.out.println(“ j is “+j); } C.int j=0; for(int k=0; j + k !=10; j++,k++){ System.out.println(“ j is “+ j + “k is”+ k); } D.int j=0; do{ System.out.println( “j is “+j++); if (j == 3) {continue loop;} }while (j<10); 7.下面代码执行后,正确的输出结果是(D) public class Example { public static void main(String[] args) { int l=0; do { System.out.println("Doing it for l is:"+l); }while(--l>0) System.out.println("Finish"); } } A.Doing it for l is:0 Finish B.Doing it for l is:-1 Finish C.Finish D.无法输出结果,程序编译错误 8.假定有变量定义int k=7,x=12;那么能使值为3的表达式是(D) A.x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5)

Java核心技术复习考试题目

1、在Java中可以用两种方式来创建线程,分别是继承父类Thread和实现Runnable接口,启动线程的方法是start,线程启动后运行的run方法里的代码。 2、如果自行构建的一个Java类想要自定义判断对象相等的规则,则需要重写其hashCode 方法,同时还需要重写他的equals方法。 3、事件处理方式采用了observer(观察者)设计模式,事件编程三要素是事件源、事件对象和监听者。 4、如果你想将一组对象按一定顺序存取,在不考虑并发访问的情况下会使用ArrayList,反之则会使用Vector; 如果你想存储一组无序但唯一的对象,你会使用HashSet; 如果你想按关键字对对象进行存取,在不考虑并发访问的情况下会使用HashMap, 反之则会使用HashTable。 5、在一个java源文件中的三个顶级元素,按顺序分别是package,import,class。 6、Java方法的参数传递对于基本数据类型如int, byte等,参数传递是值传递,对自定义数据类型,参数传递是引用传递。 7、并发控制是多线程编程的难点。一个线程要等待某个条件的满足,调用方法wait,通知某一个处于等待状态线程的方法是notify,通知多个的是notifyAll;处于等待状态的线程当前调用的方法或程序块用关键字synchronized来限制。一段线程不安全的代码,使用synchronized关键字实现代码块单线程运行。运行中线程等待另一个线程结束调用线程的join方法。暂时让出执行权调用yield方法。 8、对原始数据的读写,采用流InputStream和OutputStream,为了提高性能,采用流BufferedInputStream和BufferedOutputStream。 9.方法的重载Overloading: 条件: 1)方法名必须相同(在同一类中); 2)参数列表必须不同(参数个数不同,参数类型不同,参数顺序不同); 3)返回类型无关紧要(相同不相同均可); 10.方法的重写Overriding: 条件: 1)重写发生在子父类之间,同一类中的方法不能被重写只能被重载。 2)重写方法和被重写方法要保证具有相同的方法名字、参数列表、返回类型; 3)重写方法不能具有比被重写方法更严格的访问权限; 4)重写方法不能抛出比被重写方法范围更大的异常; 5)静态方法的重写:父类的静态方法可以被子类同名的静态方法重写,此时隐藏了父类的方法;父类的静态方法不能被子类非静态的方法重写(编译错误);父类非静态的方法不能被子类重写为静态方法; 11.构造方法是一个特殊的方法,方法名和类名相同,无返回类型; 构造方法在创建所属类型的对象时使用,作用就是创建一个对象,构造方法中的代码一般做一些初始化工作; 每个类都有一个构造方法,如果类中没有定义构造方法,那么系统将自动为其提供一个缺省的无参构造方法; 当一个类中定义了一个或者多个构造方法,那么系统将不再提供缺省的无参构造方法; 12.switch语句支持int,byte,short,char,枚举,类类型之一 13.一维数组的声明,初始化 14. 标识符

计算机类外文文献翻译---Java核心技术

本科毕业论文 外文文献及译文 文献、资料题目:Core Java? V olume II–Advanced Features 文献、资料来源:著作 文献、资料发表(出版)日期:2008.12.1 院(部):计算机科学与技术学院 专业:网络工程 班级: 姓名: 学号: 指导教师: 翻译日期:

外文文献: Core Java? Volume II–Advanced Features When Java technology first appeared on the scene, the excitement was not about a well-crafted programming language but about the possibility of safely executing applets that are delivered over the Internet (see V olume I, Chapter 10 for more information about applets). Obviously, delivering executable applets is practical only when the recipients are sure that the code can't wreak havoc on their machines. For this reason, security was and is a major concern of both the designers and the users of Java technology. This means that unlike other languages and systems, where security was implemented as an afterthought or a reaction to break-ins, security mechanisms are an integral part of Java technology. Three mechanisms help ensure safety: ?Language design features (bounds checking on arrays, no unchecked type conversions, no pointer arithmetic, and so on). ?An access control mechanism that controls what the code can do (such as file access, network access, and so on). ?Code signing, whereby code authors can use standard cryptographic algorithms to authenticate Java code. Then, the users of the code can determine exactly who created the code and whether the code has been altered after it was signed. Below, you'll see the cryptographic algorithms supplied in the java.security package, which allow for code signing and user authentication. As we said earlier, applets were what started the craze over the Java platform. In practice, people discovered that although they could write animated applets like the famous "nervous text" applet, applets could not do a whole lot of useful stuff in the JDK 1.0 security model. For example, because applets under JDK 1.0 were so closely supervised, they couldn't do much good on a corporate intranet, even though relatively little risk attaches to executing an applet from your company's secure intranet. It quickly became clear to Sun that for applets to become truly useful, it was important for users to be able to assign different levels of security, depending on where the applet originated. If an applet comes from a trusted supplier and it has not been tampered with, the user of that applet can then decide whether to give the applet more privileges.

《JAVA核心技术》基础试题

《JA V A编程初步》测试题 一、选择题 1、关于被私有保护访问控制符private protected修饰得成员变量,以下说法正确得就是()。 A、可以被三种类所引用:该类自身、与它在同一个包中得其她类、在其她包中得该类得子类 B、可以被两种类访问与引用:该类本身、该类得所有子类 C、只能被该类自身所访问与修改 D、只能被同一个包中得类访问 2、以下代码段将创建()个对象。 String s1="bc"; String s2="bc"; A、0 B、1 C、2 D、3 3、编译并运行以下程序,以下描述哪个选项就是正确得() 1: class X{ 2: protected String toString(){ 3: return super、toString();} 4: } A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译 D、不能成功编译,行3出错 4、下列关于修饰符混用得说法,错误得就是() A、abstract不能与final并列修饰同一个类 B、abstract类中不可以有private得成员 C、abstract方法必须在abstract类中 D、static方法中能处理非static得属性 5、容器Panel与Applet缺省使用得布局编辑策略就是() A、BorderLayout B、FlowLayout C、GridLayout D、CardLayout 6、以下标识符中哪项就是不合法得( ) A、BigMeaninglessName B、$int C、1 st D、$1 7、main方法就是Java Application程序执行得入口点,关于main方法得方法头以下哪项就是合法 得() A、public static void main() B、public static void main(String[ ] args) C、public static int main(String[ ] arg) D、public void main(String arg[ ]) 8、执行完以下代码int [ ] x = new int[25];后,以下哪项说明就是正确得() A、x[24]为0 B、x[24]未定义 C、x[25]为0 D、x[0]为空 9、以下代码段执行后得输出结果为() int x=3; int y=10;

相关文档