java程序员面试题day01

Java程序员面试题day01

1.jdk和jre有什么区别?各自有什么作用?

jdk是java开发的工具包,主要包含各种的类库和工具如javac/javaw/java,也包括了另外的一个jre,提供了两个不同的虚拟机,jdk的bin目录下有client和server两个文件下的jvm.dll文件;jre作为运行环境,仅仅有一个client下的jvm.dll文件。

1.如何利用jdk 编译和运行应用程序?

javahome如何配置?

进入到java文件的目录下

编译语句:javac HelloWorld.java

执行语句:java HelloWorld.java

3.classpath的作用是什么?

作用:是java程序在编译和运行的时候搜索类的时候用的,实际保存的是一些目录和jar文件的地址;点号代表的是当前的路径。

实际上,java程序在编译和运行时会先在jre的文件夹下找一个叫rt.jar的文件,然后才是classpath指定的路径。

4.如何为java程序动态地指定类的搜索路径

-cp   -classpath命令

Javac -cp 添加路径\jar文件路径 自己的类文件

Java  -cp  添加路径\jar文件路径 自己的类文件

5.java语言的编译和运行的特点

一个类文件被javac编译后生成一个class文件,该文件是一个字节码文件,这个文件计算机本身无法识别,但是jvm可以识别,jvm加载这些文件,然后将这些字节码转换为机器码,为计算机可以去执行,这也是跨平台的缘故所在。

6.jvm是什么以及其工作原理?

jvm是一种用软件模拟出的计算机,在执行java程序时有一套非常严格的技术规范,也是跨平台依赖的基础。其中有处理器、堆栈、寄存器,也有相应的指令系统。一个java要在jvm上运行,会经过jvm的加载、链接、初始化。类的执行总是从main方法开始的,如果试图执行该类的二进制文件,找不到对应的类的信息,就通过class.forName进行类的加载。然后再进行链接和初始化,类的初始化是对类中申明的静态初始化函数和静态域的初始化构造方法的执行。然后开始执行main方法。

7.java中为什么不用delete语句进行垃圾的回收?

java中堆内存的数据的释放是又垃圾回收机制负责管理的,当java程序中显式地创建了对象后,程序员不用再向写c++程序一样,每次都将堆内存中的数据delete掉,也不用像写c程序一样,每次对堆区数据free掉。因为垃圾回收机制会在这个对象没有被引用时,调用系统的gc方法和finalize方法进行垃圾的回收,此外finalize方法会在对象被真正的回收之前被调用。

8.利用jar命令打包文件

8.javaWeb项目的目录结构、部署、和配置信息

自己的一个项目层次:

.myeclipse空的文件夹

10.ejb是什么?

Enterprise java bean是java ee  的一部分,适合做分布式开发,定义了会话bean 实体bean 还有消息驱动bean.

Session bean:用于接收客户端的请求和实现业务逻辑,可以是有状态的,也可以是无状态的,每次客户端请求时,容器会选择一个sessionBean为客户端服务。

Entity bean:实体对象,主要实现o/r映射,负责将数据库中的表记录映射为内存中的entity对象

Message driven bean:只能接收客户端发送的jms消息,然后再处理,适合做的异步开发。

11.Java中的变量及其作用范围?

被static修饰的静态变量,它属于类本身,在类被加载的时候,会被初始化,随着类的结束而结束其生命周期。

成员变量属于类的实例,是类的对象,随着对象的加载而生成并且初始化,随着对象被当成垃圾回收后而消失。

局部变量是定义在方法内部的变量或者方法本身的参数,在{}中起作用。随着方法的调用而创建,随着方法的执行完毕而消失。

12.Java变量分为哪两种大的数据类型?

基本数据类型:byte short int long float double char作用:存储数据量比较小的数据,存储1个或者几个字节数据,用二进制直接保存数据的值。

引用数据类型:创建的对象  String 的实例 数组 ... ...

存放的是地址。

13.java基本数据类型所对应的包装类

有一定的应用场合:list  set中不可以存储基本的数据类型,只可以存储包装类型的数据。

例如,将基本数据类型转换成包装类型:

(1)Int i = 5;

Integer  num1  =  Integer.valueOf(i);

(2)构造函数:

Num2  =  new Integer(i);

(3)实际上,由于java有自动装箱功能

则 Integer num3 = 5;

这个5可以被直接自动装箱成Integer类型。

包装类型转换为基本数据类型:

Integer num = Integer.valueOf(100);

(1)Int.value()方法:num.intValue();

(2)将包装类型赋值给基本类型,自动拆箱:Int res = num;

基本数据类型和包装类型的对应关系:

14.如何理解java中的装箱和拆箱?

是基本数据类型和包装类型之间(还是那8种类型之间其对应关系如上表所示)的相互转换,不用手动地进行类型的转换,该自动转换会在编译的阶段完成。

一个例子:

Integer num = 10;

Sop(num++);

理解这两行代码:

第一步将基本数据类型的10自动装箱成Integer的包装类型,在输出时先将该包装类型自动拆箱成基本数据类型,再进行一个自增的运算。

15.Java的引用和c++指针的联系和区别?

联系:都是指向一块内存地址的,通过引用或者指针来对内存中的数据进行操作。

区别:

<1>类型:引用的值为地址的数据元素,分装的地址,可以转成字符串查看,长度不必关心;c++的指针是一个装了地址的Int型变量,长度一般是计算机的字长。

<2>所占的内存:引用申明时没有实体,不占空间,也就是定义了,但是没有初始化,就不占空间;c++指针如果申明了,但是后面不会用到,则不会分配内存。申明一个指针后,要么给它指定一个已存在的地址,要么分配一个地址。

<3>初始值:引用的初始值为null,c++的初始值不固定。

<4>计算:引用的值不可以计算,c++指针是int,可以进行计算,但是它可能指向一个不属于自己程序使用的地址,对于其他程序是危险的。

<5>作为参数:java的方法参数只是传值,引用作为参数使用时,在函数的内部交换两个引用参数是没有意义的,函数只是交换了参数的copy值,但是在函数内改变一个引用参数的属性是有意义的,因为引用参数的copy所引用的对象和引用参数是同一个对象。C++指针作为参数给函数使用,实际上是所指的的地址上的操作,会影响到指针所指向的地址。

16.简述java中的main方法?

main方法是java程序的入口函数,它是一个公开的,静态的,无返回值的,接受一个String数组参数的方法,其参数args和执行参数是一一对应的,定义在一个类中。

Public class Test{

Public static void main(String[] args){

}}

17.equlas方法和==的区别?

解释:==在运用在基本数据类型时,会去比较他们实际的值用来比较两个对象是不是相等,当运用在引用类型的数据时,会比较地址是否相同,也就是是不是指向的是同一个对象,通过new String()会单独的生成一个新的对象。

equal方法是java.lang.object方法,也是所有的java类都会有的方法,可以被程序员覆盖和重写,通过自己定义的方法来判断两个对象是不是相等,默认的方法和==是相同的。同时,,java.lang.String是一个特殊的类,不可以被继承,equals方法用于比较字符串的字符序列是否完全相同,如果相同才会返回true.

18.java中的循环结构和各自的特点?

While do-while  for

19.三目运算符?

表达式1?表达式2:表达式3

表达式1仅仅可以返回true/false  返回true就执行表达式2,否则执行表达式3

20.java中的注释?

四种注释:

行注释 //

块注释 /**/

文档注释/**    */

annotation(注解)

文档注释可以将注释信息进入到javadoc文档中;注解会进入到编译层,并对程序的结果产生影响。

时间: 2024-10-07 05:31:33

java程序员面试题day01的相关文章

Java程序员面试题集(1-50)

下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最新版本,去掉了EJB 2.x等无用内容,补充了数据结构和算法相关的题目.经典面试编程题.大型网站技术架构.操作系统.数据库.软件测试.设计模式.UML等内容,同时还对很多知识点进行了深入的剖析,例如hashCode方法的设计.垃圾收集的堆和代.Java新的并发编程.NIO.2等,相信对准备入职的Ja

Java程序员面试题集(71-85)

Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言).面向对象的设计原则(六原则一法则).GoF设计模式.企业级设计模式.JDBC(Java数据库连接).XML(可扩展标记语言)等知识. 71.UML是什么?UML中有哪些图? 答:UML是统一建模语言(Unified Modeling Language)的缩写,它发表于1997年,综合了当时已经存在的面向对象的建模语言.方法和过程,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化

中软国际Java程序员笔试题

1.谈谈final, finally, finalize的区别. final:修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改.被声明为final的方法也同样只能使用,不能重载. finally:在异常处理时提供 finally 块来执行任何

java程序员面试题大全含答案(2018--2019)

java程序员面试题大全含答案(2018--2019) 1.10道经典java面试题_实习生必问! 2.15个Java线程并发面试题和答案 3.15个高级Java多线程面试题及回答 4.2018年java分布式相关最新面试题 5.2018最新java技术面试题与答案 6.4个Spring常见面试题及答案解析 7.css面试题及答案 8.HR常问面试题总结(上) 9.HR常问面试题总结(下) 10.html面试题及答案 11.java中String类的面试题大全含答案 12.java二叉树算法面试

Java程序员面试题集(86-115)

摘 要:下面的内容包括Struts 2和Hibernate的常见面试题,虽然Struts 2在2013年6月曝出高危漏洞后已经显得江河日下,而Spring MVC的异军突起更加加速了Struts 2的陨落,但面试中仍然有可能被问及和此框架相关的内容,毕竟Struts 2曾经被阿里巴巴.京东以及政府企业门户网站广泛采用.另一方面,Hibernate目前仍然是ORM框架中的中坚力量,MyBatis在此领域也有不容 忽视的一席之地,因此了解这两个ORM框架对Java程序员是很有必要的.第一期发布的Ja

Java程序员面试题收集(6)

<!————————————————————————————基础题122道,代码题19道————————————————————————————> JAVA相关基础知识1.面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法

Java程序员面试题收集(3)

面试中被问到过的题目: 1.<%@ include=""/>和<jsp:include page="" flush="true"/> 2.知道的GOF 模式,说明 3.自己的长期规划是什么,近期规划是什么? 4.override和overload 5.final关键字 6.系统如何分层,前台,逻辑,数据访问.你的职责,代码如何保证质量的 7.getAttribute 和getParameter 区别 8.forward和r

Java程序员面试题收集(1)

一.Java基础部分 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么. 2)继承:继承是从已有类得到继承信息创建新类的过程.提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). 3)封装:通常认为封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面.面向对象的本质就是将现实世界描绘成一系列

Java程序员面试题集(51-70)

摘要:这一部分主要讲解了异常.多线程.容器和I/O的相关面试题.首先,异常机制提供了一种在不打乱原有业务逻辑的前提下,把程序在运行时可能出现的状况处理掉的优雅的解决方案,同时也是面向对象的解决方案.而Java的线程模型是建立在共享的.默认的可见的可变状态以及抢占式线程调度两个概念之上的.Java内置了对多线程编程的支持在20世纪90年代可以说是一个巨大的进步,但是最初的设计在当下看来已经给程序带来很多困扰了.感谢Doug Lea在Java 5中提供了他里程碑式的杰作java.util.concu