java程序员面试宝典1

  • 格式:pdf
  • 大小:709.14 KB
  • 文档页数:29

简述java中的main方法
public static void main(String[] args) 【答案】
main()方法是java程序的执行入口,它是一个定义在类中的、公开的、静态的、无返回值的、参数为一个字符串数组的方法,它的参数args与执行参数一一对 应。
java中的equal和==的区别
java基础知识
java开发环境
JRE和JDK的区别?各自的作用
分析:JRE:Java Runtime Environment的缩写,是java程序运行环境
JDK:Java Development Kit,是java的开发工具包,包含了各种类库,同时也包含JRE,具备开发功能的JDK所包含的JRE同时有client的JVM和server的JVM,而 仅仅作为运行环境的JRE下只有client的jvm.dll就够了。 JDK需要进行环境变量的配置,JRE安装时会自动经JRE的java.exe添加到系统变量Path中。
环境变量ClassPath的作用
ClassPath环境变量是用来指定java程序搜索类的路径的,对于java应用程序来说,该变量的意义是非常重要的。 CLASSPATH环境变量在编译java源码和运行程序是使用,也就是为java程序所依赖的接口、类等指定一个搜索路径。 例如:.;c:\jar\logj4.jar;d:\work\java 指定了三个搜索路径,分别为:当前目录、logj4.jar文件的路径和d:\work\java文件夹下的所有的类。在java程序编译和运行 时,不仅会在CLASSPATH中搜索类,还会在JRE的目录下去找一个名为rt.jar的文件,器路径为jre/lib/rt.jar。并且 会先搜索rt.jar 再搜索CLASSPATH指定的目录
java的引用和C++的指针有什么区别
【分析】 + 类型:引用其值为地址的数据元素,java封装了的地址可以转换成字符串看,长度可以不用关心。C++指针是一个装地址的变量,长度一般是计算机字长,可 以认为是个int + 所占内存:引用声明是没有实体,不占空间。c++指针如果声明后会到用时餐赋值,不用则不会分配内存。 + 初始值:引用的初始值 null,指针初始值不固定所以比较危险 + 计算:引用是不可以计算的。C++指针是int,可以计算 + 控制:引用不可以计算,所以它只能在自己程序中,可以被控制。C++指针是可以计算,所以比较危险 + 内存泄露:java引用不会产生内存泄露,c++指针容易产生 + 作为参数:java的方法参数只是传值,引用作为参数是,返回给函数内引用的值的拷贝,所以在喊内交换两个引用是没有意义的,但是改变引用的属性是有用 的,因为拷贝和引用的引用对象是同一个对象。 【答案】 java的易用与C++指针主要有类型、所占内存、内存泄露、初始值、计算和控制以及作为参数8个方面。本质上,它们两者都是想通过一个叫做引用或者指针的 东西,找到要操作的目标,方便在程序中操作。java中的引用更加安全一些。
protected void finalize()throws Throwable 另外ng.System类中有一个gc()方法,也对垃圾回收有一定的影响。通过显式的调用它可以请求开始垃圾回收线程,开始垃圾回收,但是垃圾回收线程是否 立即开始还是有JVM算法决定。 java,kabg.Runtime类中gc()方法与System的作用一样,只不过是Runtime是一个单例模式的类,需要用getRunTime()方法先获得实例,然后调用gc方法
【答案】
JDK是java开发工具,不仅提供了java程序运行所需要的JRE,还提供了一系列的编译、运行等工具,如javac java javaw等。JRE只是java程序的运行环境,其最 核心的内容就是JVM(java虚拟机)及核心类库。
如何用JDK编译和运行应用程序
编译:javac,将源码编译为class文件 运行:java,运行包含主方法的class文件 注意 需要将JDK的安装目录/bin配置到Path环境变量中
java中的基本类型和包装类
byte char int short long float double boolean Byte Character Integer Short Long Float Double Boolean
java中的装箱和拆箱
java 5.0 提供了自动装箱和拆箱的功能,可以使用以下语句进行打包基本类型 Integer integer = 10; 【答案】 java中的装箱和拆箱指的是基本数据类型和包装类型的自动相互转换,它为开发者提供了方便。开发人员也可以不使用它,而手动的进行数据类型转换。并 且,这个自动转换的过程是在编译阶段。
【答案】
java的堆内存的数据释放功能由垃圾回收器自动完成,无需程序员显式的调用delete方法。该机制有效的避免了程序员因忘记释放内存而造成的内存溢出的错 误,是一项改进。
生成、部署
如何利用命名提示符把java程序打包成jar文件
【分析】 jar文件是java程序打包以后的格式文件,它一般保存的有class文件、配置文件等。jar文件的主要是方便程序的发布和部署。
【答案】 equal和== 都表示相等的意义 == 运用在基本数据类型比较时,比较的是实际的值,当用于比较引用类型是,则比较两个引用的地址是否相等 equal 方法是ng.Object的方法,可以被程序员覆盖重写通过自定义的方式来判断两个对象是否相等,对于字符串ng.String类来说,它的equal方法用 来比较字符串的字符序列是否完全相等。
Java语法基础
基础类型和语法
变量及其作用范围
【答案】 静态变量:由类决定 成员变量:由对象决定
局部变量:定义在方法中的变量、方法的参数或代码块里定义的变量,作用范围用{}来界定 局部变量不能与上一层局部变量同名会编译错误 局部变量可以与成员变量和静态变量重名,此时如果想要调用成员变量使用this指针,使用静态变量可以使用类名。
java变量分哪两种大的数据类型
基本数据类型:直接存放数据的值:byte char short int long float double boolean 引用数据类型:存放数据所在的地址
class Student{ public String name; public int age; public Student(String name,int age){ = name; this.age = age; } } public class RefTest{ private static void refChange(Student stu){ = "wang"; stu.age = 10; } public static void main(String[] args){ Student stu1 = new Student("zhang",12); Student stu2 = stu1; refChange(stu2); System.out.println(+","+stu1.age);//wang,10; 即stu1 和 stu2指向的是同一个地址,所以改变stu2,stu1也会跟着改变。 } }
java和c++程序在编译和运行有什么区别
C++源码编译以后生成的特定机器可以直接运行的文件,而java编码经过编译后生成的中间字节码文件,这些字节码文件需要放到JVM中运行,而JVM是有多个 平台版本的所以说java鱼油跨平台性。 java是解释型语言 c++是编译性语言
什么是JVM及其工作原理
JVM是一种用软件模拟出来的计算机,用于执行java程序编译后生成的中间字节码文件,是java跨平台的依赖基础。java虚拟机有自己想象的硬件,如处理器、 堆栈、寄存器等,还具有相应的指令系统,它运行java程序好像一台计算机运行C++或C程序一样,它屏蔽底层系统实现的细节。
java程序为何无须使用delete语句进行内存回收
JVM在内存存储对象的原理:java除了8中基本类型外,其他的类型都是对象类型的数据。JVM会把程序中的对象放在堆空间。 堆是一个运行时的数据存储区,一般,运行时的数据存储区包含堆和堆栈,栈中存放非static的自动变量、函数参数、表达式的临时结果和函数返回值。栈中的 这些实体数据的分配和释放都是由系统自行完成的。堆中存放的实体数据都是程序中由程序员显示分配的,没有自动垃圾回收机制的系统必须由程序员显式释 放这些实体。 JVM具有垃圾回收机制,也就是堆内存的管理的自动运行。—提出:如何确定对象已经回收? java中根父类ng.Object中有个finalize()方法,它会在垃圾回收期认为这个对象是垃圾的之后,真正回收之前被调用。因为所有的类都继承自OBject,所以 它们都会有finalize()方法。所以程序员可以在这个方法中实现一些对象被回收之前的事,如关闭数据库连接等,finalize()方法的原型为
jar cf test.jar 创建并生成 test.jar包
关于java web项目的生成、部署和配置问题
一个标准的java web应用程序的规范包括:目录结构、web配置文件、打包和部署、Servlet JSP 等 文件夹的目录机构必须包含一个WEB-INF目录(classes、lib)以及Web描述文件web.xml;与WEB-INF同一层的目录存放的是JSP、HT信息。 Servlet是服务器端处理HTTP请求的基本组成单元,包括JSP、过滤器等在内的许多技术都基于Servlet实现。Servlet是符合一定规范的Java类,存活在Web容器 中,由容器来控制Servlet的生命周期。 JSP 是参考其他动态语言而设计,脚本语言就是 java ,但是本质也是 Servlet ,它比其他动态语言更加强大,严格意义来说,熟悉 JSP 开发,并意味值熟悉 Java Web开发,只能说是使用动态语言开发Web乘车,JSP作为Java Web开发是不可或缺的一部分,在大多数的开发中,它往往是用于显示处理后的结果。 打包与部署:web应用程序也可以打包,只是后缀是War,与jar打包原理一样,都可以通过JDK提供的jar命令进行打包。 部署:将java Web应用程序的文件夹或打包文件放在Tomcat的安装目录项/webapps下面即可完成部署 【答案】 java Web应用程序的生成、需要把它所需要的class文件编译好存放在WEB-INF/classes下,然后按照以上介绍的目录结构放置各类文件,如果需要添加自己的配 置,需要增加或修改WEB-INF/web.xml文件。对于JAVA WEB应用程序的部署,可以使用文件夹夏河War文件两种部署方式,其中War就是把文件夹按照jar的方法 进行打包,只不过后缀为War。