2017/6/13面试问题整理

已有 83 次阅读2017-6-16 17:09 |个人分类:面试题库|系统分类:学习纪录| 面试问题

  1. Java发展史
      a. Java从第一个版本诞生到现在已经有十九年的时间了。
      b. 由James Gosling博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个计划的产品就是Java语言的前身:Oak(橡树)。Oak当时在消费品市场上并不算成功,但随着1995年互联网潮流的兴起,Oak迅速找到了最适合自己发展的市场定位并蜕变成为Java语言。
  2. java特点
      a. 简单性。
      b. 面向对象。
      c. 分布性。
      d. 编译和解释性。
      e. 多线程。
      f. 安全性。
      g. 动态性。
      h. 稳健性。
      i. 可移植性。
      j. 高性能。
  3. 什么是java
      a. Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
  4. java版本分类及其作用
      a. java SE:
          i. va SE   开发java桌面应用程序,和低端的服务器程序,还可以开发java Applet    Java标准版,是Java所有版本的基本,提供了Java最基本的语言特性;
      b. java EE:
          i. Java EE   Java企业版或Java企业平台:包含了java SE平台,并增加了附加类库,以便支持目录管理、交易管理、和企业级消息处理等  
      c. java ME:
          i. Java ME 在Java SE基础上将一些功能进行缩减,并软提高了其运行效率,又发展出了针对便携设备、智能家电的Java Mirco Edition,即Java移动版;
  5. java虚拟机的作用
      a. Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
  6. java代码安全性体现
      a. 异常处理机制
      b. 垃圾回收机制
  7. java垃圾回收机制
      a. java语言中一个显著的特点就是引入了java回收机制,是c++程序员最头疼的内存管理的问题迎刃而解,它使得java程序员在编写程序的时候不在考虑内存管理。由于有个垃圾回收机制,java中的额对象不在有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存;
      b. 程序员可以干预垃圾回收机制但是不能控制。
  8. 简述java代码运行过程
      a. 编译:
          i. 创建完源文件之后,程序会先被编译为.class文件。
          ii. java类运行的过程大概可分为两个过程:1、类的加载  2、类的执行。
      b. 运行:
          i. 在编译好java程序得到MainApp.class文件后,在命令行上敲java AppMain。系统就会启动一个jvm进程,jvm进程从classpath路径中找到一个名为AppMain.class的二进制文件,将MainApp的类信息加载到运行时数据区的方法区内,这个过程叫做MainApp类的加载。
          ii. 然后JVM找到AppMain的主函数入口,开始执行main函数。
          iii. main函数的第一条命令是Animal  animal = new Animal("Puppy");就是让JVM创建一个Animal对象,但是这时候方法区中没有Animal类的信息,所以JVM马上加载Animal类,把Animal类的类型信息放到方法区中。
          iv. 加载完Animal类之后,Java虚拟机做的第一件事情就是在堆区中为一个新的Animal实例分配内存, 然后调用构造函数初始化Animal实例,这个Animal实例持有着指向方法区的Animal类的类型信息(其中包含有方法表,java动态绑定的底层实现)的引用。
          v. 当使用animal.printName()的时候,JVM根据animal引用找到Animal对象,然后根据Animal对象持有的引用定位到方法区中Animal类的类型信息的方法表,获得printName()函数的字节码的地址。
          vi. 开始运行printName()函数。
  9. 如何配置Java开发环境
      a. 安装JDK
          i.  JVM(Java Virtual Machine—Java虚拟机)
          ii. JRE(Java Runtime Environment—Java运行时环境)
          iii. JDK(Java Development kit—Java开发工具包)
      b. 配置环境变量
          i. JAVA_HOME     配置JDK安装路径
          ii. PATH               配置JDK命令文件的位置
          iii. CLASSPATH      配置类库文件的位置
  10. 完整的java代码分为几个部分
      a. package 当前类所在位置 
      b. import  当前类运行时所需要的包或类
      c. public class 类名 {
      d. 属性定义;
      e. 方法定义:
      f. 构造方法定义;
      g. main函数
      h. 语句;
      i. //注释 
  11. java注释的方法
      a. 单行(single-line)注释:“//……”
      b. 块(block)注释:“/*……*/”
      c. 文档注释:“/**……*/”
  12. 标识符定义规则
      a. 标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字。
      b. 不能把关键字和保留字作为标识符。
      c. 标识符没有长度限制。
      d. 标识符对大小写敏感。
  13. 什么是关键字
      a. Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。
      b. 关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
      c. Java语言规定关键字不能作为标识符。目前共有50个Java关键字。
  14. java基本数据类型
      a. 内置数据类型
          i. byte
          ii. short
          iii. int
          iv. double
          v. float
          vi. boolean
          vii. char
          viii. long
      b. 引用数据类型
          i. 对象、数组都是引用数据类型
  15. 什么是引用类型
      a. 引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
  16. 什么是按址传递,按引用传递
      a. 按址传递
          i. 指的是在方法调用时,传递的参数是按值的拷贝传递。
              1. 按值传递重要特点:传递的是值的拷贝,也就是说传递后就互不相关了。
      b. 按引用传递
          i. 指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。
              1. 传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。
  17. new关键字
      a. 创建对象、调用构造函数。
      b. 是作为修饰符,显示隐藏继承于基类的继承成员。
      c. 是用在泛型中添加类型的约束。
  18. "="与"=="的功能及区别
      a. "=":
          i. 用在变量赋值时候
      b. "=="
          i. 用在if 判断时候
          ii. 内存地址时将地址传给某个变量。
  19. a++与++a的区别
      a. a++:是先使用再+1;
      b. ++a:是先+1在使用;


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright;  ©2015-2017  知了堂学习社区  Powered by  知了堂Edu!     ( 蜀ICP备16011312号-1 )