java面试题

一、java面试题第一天

1.java的特点

  • **Java是一门面向对象的编程。**面向对象就是我们将对应的操作都封装成对应的api,就是所谓的方法,提供给别人使用(面向过程就是所有的方法,api由自己编写)

  • java具有平台独立性和移植性。

    java可以在不同平台下运行,编程器将java编译成class文件以后,所编译的class文件可以通过java虚拟机(jvm)在对应操作系统运行

  • Java具有稳健性

    java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

2.java是如何跨平台的

java可以在不同平台下运行,编程器将java编译成class文件以后,所编译的class文件可以通过java虚拟机(jvm)在对应操作系统运行

3.java与c++语言的区别

  • java没有指针,c++有指针
  • java是面向对象语言,c++既可以是面向对象,也可以是面向过程的语言
  • java有自动垃圾回收器, c++回收内存需要自己手动回收
  • java不支持多继承,但是可以实现多个接口,c++是多继承

4.jdk,jre,jvm之间的关系

jdk是java开发的运行环境,它包括的java程序员的开发环境,已经对应的运行的环境,而jre 没有对应的开发环境,简单来说就是没有相对的开发工具包,jvm是java虚拟机,也是java字节码的运行机器,jdk/jre是包括jvm的,我所编译的字节码文件,都是放在不同操作系统的jvm下允许的。

5、java是动态语言还是静态语言

**1、动态语言,**在运行中可以改变结构的语言,如JavaScript、PHP、Python。

例如,新函数、对象、代码可以引进,现有函数可以删除或其他结构的变化。一般来说,运行时代码可以根据条件改变自己的构造。

主要动态语言: Object-C、 C#、 JavaScript、PHP、Python等。

静态语言

2、对应动态语言,运行时结构不变的语言是静态语言。

**1、动态语言,在运行中可以改变结构的语言,如JavaScript、PHP、Python。

例如,新函数、对象、代码可以引进,现有函数可以删除或其他结构的变化。一般来说,运行时代码可以根据条件改变自己的构造。

主要动态语言: Object-C、 C#、 JavaScript、PHP、Python等。

静态语言

2、对应动态语言,运行时结构不变的语言是静态语言。

例如Java、c、C+。

Java不是动态语言,但Java可以称之为准动态语言。也就是说,Java具有一定的动态性,可以利用反射机制获得类似动态语言的特性。Java的动态使编程更加灵活。

6、面向对象和面向过程的区别?

面向对象和面向过程的区别:1、思路不同2、特点不同3、优势不同。面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了;而面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。面向过程思想偏向于我们做一件事的流程,首先做什么,其次做什么,最后做什么。面向对象思想偏向于了解一个人,这个人的性格、特长是怎么样的,有没有遗传到什么能力,有没有家族病史。

面向过程是一种以过程为中心的编程思想,面向过程编程是基于“冯·诺依曼”模型的。面向过程的优点:流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果,具体步骤清楚,便于节点分析。效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。缺点:需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大。面向对象优点:易维护、易扩展、易复用,有封装、继承、多态的特性、更容易设计出耦合的系统。缺点:性能比面向过程低。

7.面向对象有哪些特点

面向对象四大特点:封装,继承,多态,抽象

1、封装就是类的信息进行隐藏起来,提供一个对外的方法

2、继承是从父类中继承对应的信息,公用同一套方法和属性,不需要我们重新在编写

3、多态是指同一个方法我们可以不同代码,子类继承父类的情况下可以通过方法重写来实现多态

4、抽象:把某个方法进行抽象标识,让子类需要实现方法。

你可能感兴趣的:(java,开发语言,面试)