java写一个计算机的类,类中有以下5个方法:

JAVA中inputstream类 read()函数问题,一个流结束的标志是?&&&&&&&&&&&&&&&&&&throws&IOExceptionThis&method&blocks&until&input&data&is&available,&the&end&of&the&stream&is&detected,&or&an&exception&is&thrown.如红色部分所示,它所说的流的结束标志是什么?
你得看看inputStream类的read()的方法的返回值!改方法读取文件的一个字节,可是返回类型却是int型!它在读取的字节前是补了24个0,这样就不会和结束标记-1(即11-11&)相冲突了!至于为什么-1定义为结束标记!这个是惯例~~~有关计算机JAVA 语言的知识,麻烦下写下,写一下详细点.
本文地址 :CodeGo.net/8039646/
-------------------------------------------------------------------------------------------------------------------------
1.Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示Java的魅力:跨平台动态的WebInternet计算。从此,Java被广泛接受并推动Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新  Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface简称API)构成。Java 应用编程接口为Java应用提供一个独立于操作系统的标准接口,可为基本部和扩展部。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4 CodeGo.net,最近版本为Java1.7  Java为三个体系J2SE(Java2 Standard Edition),J2EE(Java 2 Platform,Enterprise Edition),J2ME(Java 2 Micro Edition)编辑本段Java语言的特点  Java是一种简单的,面向对象的,布式的,解释型的,健壮安全的构中立的,可移植的,性能优异多线程的动态语言  当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?  Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变OAK的命运  在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要传统的编程语言显得无能为力。SUN的工程师敏锐地察觉到这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出HotJava的优先个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都心生感叹:噢,这正是我想要于是Java成一颗耀眼的明星,丑小鸭一下变成白天鹅编辑本段Java的主要特性:  1Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃C++ 中很少使用的很难理解的令人迷惑的那些特性,如操作符重载多继承自动的强制类型转换。特别地,Java语言不使用指针,并提供自动的废料收集,使得程序员不必为内存管理而担忧  2Java语言是一个面向对象的。Java语言提供类接口和继承等原语,为简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言   3Java语言是布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供用于网络应用编程的类库,包括URLURLConnectionSocket ServerSocket等。Java的RMI(远程方法激活)机制也是开发布式应用的重要手段   4Java语言是健壮的。Java的强类型机制异常处理废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性   5Java语言是安全的。Java通常被用在网络环境中,为此,Java提供一个安全机制以防恶意代码的攻击。除Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如配不同的名字空间以防替代本地的同名类字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。   6Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的发。    7Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还strict规定各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的   8Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中   9Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。    10Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)   11Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查  Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供有关技术和丰富的类库。
本文标题 :有关计算机JAVA 语言的知识,麻烦下写下,写一下详细点.
本文地址 :CodeGo.net/8039646/
Copyright (C) 2014 CodeGo.net 沪ICP备号 联&系& c&o&d&e&g&o &@&1&2&6&.&c&o&m怎样获取某个类的所有子类?-Java/JavaSE-java-电脑编程网怎样获取某个类的所有子类?-Java/JavaSE作者:dengyulong 和相关&&怎样通过程序获取某个类的所有子类?------回答---------------其他回答(3分)---------想从父类往下找子类的确是不可能的,要知道只要类不是final的话谁都有继承它的自由不需要事前通知父类。Eclipse实现不是重父类开始找而是重子类往回找,然后在逐个匹配。------其他回答(2分)---------引用 5 楼 starstroll 的回复:想从父类往下找子类的确是不可能的,要知道只要类不是final的话谁都有继承它的自由不需要事前通知父类。Eclipse实现不是从父类开始找而是从子类往回找,然后在逐个匹配。支持!------其他回答(2分)---------引用 5 楼 starstroll 的回复:想从父类往下找子类的确是不可能的,要知道只要类不是final的话谁都有继承它的自由不需要事前通知父类。Eclipse实现不是重父类开始找而是重子类往回找,然后在逐个匹配。支持------其他回答(1分)---------很简单,遍历源代码目录下的所有类文件,根据类定义行通过字符串匹配找出继承该类的所有子类。------其他回答(2分)---------这个很难实现。面向对象中的继承,强调的是子类继承父类,而父类被哪些子类调用,在JAVA虚拟机的容器中并没有直接接口获取。咱们试想想,如果在JAVA机制中,记录了每个类的父类,而且还记录每个父类的子类,是不是在存储上来讲就多此一举呢?如果一定要实现,觉得可以反向,即:遍历指定的包内所有的类,看其父类是否就是预先想要的。------其他回答(10分)---------Java code
import .io.F
public class GetAllSubclass {
public static void main(String[] args) {
File rootFile = new File(GetAllSubclass.class.getResource(&/&).getFile().replaceFirst(&/&, &&));
setSonList(rootFile, rootFile.getPath() + &\\&, GetAllSubclass.class);
public static &T& void setSonList(File rootFile, String parentDirectory, Class&T& parentClass) {
if (rootFile.isDirectory()) {
File[] files = rootFile.listFiles();
for (File file : files) {
setSonList(file, parentDirectory, parentClass);
String className =
if (rootFile.getPath().indexOf(&.class&) != -1) {
className = rootFile.getPath().replace(parentDirectory, &&).replace(&.class&, &&).replace(&\\&, &.&);
Class&?& classObject = Class.forName(className);
classObject.asSubclass(parentClass);
System.out.println(className + & 是 & + parentClass + & 的子类&);
} catch (ClassNotFoundException e) {
System.err.println(&找不到类 & + className);
} catch (ClassCastException e) {
System.err.println(className + & 不是 & + parentClass + & 的子类&);
}
}
class Sub1 extends GetAllSubclass {
}
class Sub2 extends GetAllSubclass {
}
应该有获得已加载类的方式的。。 挺多知识都不知道 我惭愧啊。。相关资料:|||||||怎样获取某个类的所有子类?-Java/JavaSE来源网络,如有侵权请告知,即处理!编程Tags:                &                    Java基础-类的继承_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Java基础-类的继承
上传于||文档简介
&&多​态​ ​t​h​i​s​ ​ ​s​u​p​e​r
大小:489.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢您所在的位置: &
Java类与对象的初始化
Java类与对象的初始化
wurr707的博客
面试的时候,经常会遇到这样的笔试题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和静态块,它们只包含一些简单的输出字符串到控制台的代码,然后让我们写出正确的输出结果。这实际上是在考察我们对于类的初始化知识的了解。
面试的时候,经常会遇到这样的笔试题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和静态块,它们只包含一些简单的输出字符串到控制台的代码,然后让我们写出正确的输出结果。这实际上是在考察我们对于类的初始化知识的了解。
首先,我们先看看下面的代码,这就是很经典的考察方式。
public&class&InitField&{ &&&&&public&static&void&main(String[]&args)&{ &&&&&&&&&SuperInitField&p&=&new&SuperInitField(); &&&&&&&&&SuperInitField&c&=&new&SubInitField(); &&&&&} &} &&class&SuperInitField&{ &&&&&public&SuperInitField()&{ &&&&&&&&&System.out.println(&parent&); &&&&&} &&&&&static&{ &&&&&&&&&System.out.println(&static&parent&); &&&&&} &&} &&class&SubInitField&extends&SuperInitField&{ &&&&&public&SubInitField()&{ &&&&&&&&&System.out.println(&child&); &&&&&} &&&&&static&{ &&&&&&&&&System.out.println(&static&child&); &&&&&} &}&
不管你是否能很快速的写出正确的答案,我们先把这个程序放一边,了解一下Java虚拟机初始化的原理。
JVM通过加装、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。类型的生命周期如下图所示:
498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="" src="/files/uploadimg/9220.png" />
装载和连接必须在初始化之前就要完成。
类初始化阶段,主要是为类变量赋予正确的初始值。这里的&正确&初始值指的是程序员希望这个类变量所具备的起始值。一个正确的初始值是通过类变量初始化语句或者静态初始化语句给出的。初始化一个类包含两个步骤:
1) 如果类存在直接超类的话,且直接超类还没有被初始化,就先初始化直接超类。
2) 如果类存在一个类初始化方法,就执行此方法。
那什么时候类会进行初始化呢?Java 虚拟机规范为类的初始化时机做了严格定义:在首次主动使用时初始化。
那哪些情形才符合首次主动使用的标准呢?Java虚拟机规范对此作出了说明,他们分别是:
1)&创建类的新实例;
2)&调用类的静态方法;
3) 操作类或接口的静态字段(final字段除外);
4)&调用Java的特定的反射方法;
5)&初始化一个类的子类;
6)&指定一个类作为Java虚拟机启动时的初始化类。
除了以上六种情形以外,所有其它的方式都是被动使用的,不会导致类的初始化。
一旦一个类被装载、连接和初始化,它就随时可以使用了。现在我们来关注对象的实例化,对象实例化和初始化是就是对象生命的起始阶段的活动。
Java编译器为它编译的每个类都至少生成一个实例初始化方法,即&init&()方法。源代码中的每一个类的构造方法都有一个相对应的&init&()方法。如果类没有明确地声明任何构造方法,编译器则为该类生成一个默认的无参构造方法,这个默认的构造器仅仅调用父类的无参构造器。
一个&init&()方法内包括的代码内容可能有三种:调用另一个&init&() 方法;对实例变量初始化;构造方法体的代码。
如果构造方法是明确地从调用同一个类中的另一个构造方法开始,那它对应的 &init&() 方法体内包括的内容为:
一个对本类的&init&()方法的调用;
实现了对应构造方法的方法体的字节码。
如果构造方法不是通过调用自身类的其它构造方法开始,并且该对象不是 Object 对象,那 &init&() 法内则包括的内容为:
一个父类的&init&()方法的调用;
任意实例变量初始化方法的字节码;
&实现了对应构造方法的方法体的字节码。
通过上面的讲解是不是对你理解Java类型的初始化有一定的帮助呢?
好,那我们再来分析一下开始的那段代码:
SuperInitField&p&=&new&SuperInitField(); &&&& &SuperInitField&c&=&new&SubInitField(); &&&&
到现在你应该大体了解了Java类初始化的原理了吧,那我就留一到练习题吧,写出下列代码的运行结果。
public&class&Test&{ &&&&&public&Test(){ &&&&&&&&&System.out.println(&parent&); &&&&&} &&&&&static{ &&&&&&&&&System.out.println(&static&parent&); &&&&&} &&&&&public&static&void&main(String[]&args)&{ &&&&&&&&&System.out.println(&main&); &&&&&} &}&
这道题是关于初始化顺序的,已经有人写过这方面的文章了,我就不多说了。
原文链接:
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
又是一周匆匆而过。上周五、周六两天,2013年51CTO云计算架构师
如何利用分析在恰当的时机为合适的人员提供内容访问权,帮助制定更好的决策。
IBM大数据讲堂
企业内容管理方案在资产密集型行业的实践
连线IBM大数据专家
获取详实大数据解决方案请致电
400-810-1818 转 2385
魅族应用商店作为国内最早的应用分发平台,国内首创了许多新业务模式
这个架构是从我近期在做的一个项目中剥离出来的,这个
MongoDB的转变也正是10gen的转变,Dwight Merriman在
在过去的近十年的时间里,面向对象编程大行其道。以至
本书分为8章,首先介绍ASP.NET的开发技巧和重点技术,尤其针对初学者如何快速入门并掌握ASP.NET编程做了深入浅出的介绍;然后重
51CTO旗下网站

我要回帖

 

随机推荐