《261个Java语言问题面试》.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《261个Java语言问题面试》.doc

你必须知道的261个Java语言问题 Java语言的运行机制: Java既不是编译型语言也不是解释型语言,它是编译型和解释型语言的结合体。首先采用通用的java编译器将Java源程序编译成为与平台无关的字节码文件(class文件),然后由Java虚拟机对字节文件解释执行 什么是JVM?有什么作用?工作机制如何? JVM是一个虚构出来的计算机,可在实际的计算机上模拟各种计算机功能,JVM有自己完善的硬件架构,如:处理器、堆栈、寄存器等,还有相应的指令系统。 JVM是由Java字节码执行的引擎,为java程序的执行提供必要的支持,它还能优化java字节码,使之转换成效率更高的机器指令。JVM屏蔽了与具体操作系统平台相关的信息,从而实现了Java程序只需要生成在JVM上运行的字节码文件,就可以在多种平台上不加修改地运行。JVM中类的装载是由类加载器(CLassLoader)和它的子类来实现的。CLassLoader是java运行时一个重要的系统组件,负责在运行时查找和装入类文件的类。 操作系统装入JVM是通过JDK中的java.exe来实现,主要通过以下几个步骤完成: 创建JVM装载环境和配置 装载jvm.dll 初始化jvm.dll 调用JNIEnv实例装载并处理class类 运行Java程序 为何在JDK安装路径下存在两个JRE 第一个:C:\Program Files\Java\jdk1.6.0_13\jre;第二个:C:\Program Files\Java\jre6;第一个JRE用于为JDK自带的开发工具提供运行环境,第二JRE用于为开发者编写的代码提供运行环境。 this:用于解决变量的命名冲突和不确定性问题而引入的关键字。使用情况: 返回调用当前方法的对象的引用 在构造方法中调用当前类中的其他构造方法 当方法参数名和成员变量名(字段更专业,java专有名词)相同时,用于区分参数名和成员变量名 super:代表父类的实例,在子类中,使用super可以调用其父类的方法、属性和构造方法。使用情况: 调用父类中的构造方法; 调用父类中的方法和属性:super.xxx(); static:可修饰方法、属性、自由块、内部类。使用static修饰这些成员时,可以理解成这些成员与类相关,通过“类名.成”的形式调用;没有static修饰可以理解成这些成员与对象相关,需要通过“对象名.成员”的形式调用。 static不能修饰构造方法 在static修饰的方法中,不能调用没有static修饰的方法和属性,也不能使用this和super关键字。 static修饰属性时,这个静态属性还具有一个特性,那就是该属性衩多个当前类对象共享。 static修饰自由块,只要类被加载,即使没有创建对象,也将被执行。此外静态自由块无论创建多少个对象,仅执行一次。 成员变量和局部变量区别:局部变量指方法体内部定义的变量,作用域只在方法块内部有效。局部变量在使用时,必须初始化。成员变量指在类中定义的变量,也就是属性,作用域是在整个类中有效。成员变量在定义时可以不指定初始值,系统可以按默认原则初始化。以下几个方面: public protect private static 等修饰符可用于修饰成员变量,但不能修饰局部变量。两者都可以使用final修饰。 成员变量存储在堆内存中,局部变量存储在栈内存中。 作用域看上面 初始化看上面 简单类型变量和引用类型变量存储机制:简单类型变量是直接在栈内存中开辟存储空间存储变量值。引用类型变量是由引用空间和存储空间两部分构成,引用空间在栈内存中,存储空间在堆内存中,存储空间负责存储变量值,引用空间负责存放存储空间的首地址。引用变量中存放的是地址值,通过地址值可以定义存储位置并修改存储信息。当变量与变量之间赋值时,引用类型变量和简单变量都属于值传递,不同的是简单变量传递的是内容本身,而引用变量传递的却是引用地址。 新式样for循环: String[] arr={“ddd”,”dda”,”dds”}; for(String s:arr){ System.out.println(s); }(type to from) 内部类: 优点: 内部类对象能访问其所处类的私有属性和方法 内部类能够隐藏起来,不被同一个包中的其他类访问。 匿名内部类可以方便地用在回调方法中 特征: 内部类可以声明为抽象类,因此可以被其他的内部类继承,也可以声明为final的 和外部类不同,内部类可以声明为private和protected,外部类只能用public和default 内部类可以声明为static的,但此时就不能再使用外层封装类的非static的成员变量 非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中

您可能关注的文档

文档评论(0)

wgvi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档