java面试基础知识有哪些

孙小飞

java面试基础知识

1、静态变量和实例变量的区别?

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

在程序运行时的区别:实例变量是属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配内存空间,才可以使用这个实例变量。

静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会分配内存空间,而且只分配一次,静态变量就可以被使用了。总之,实例变量必须创建后才可以通过这个对象来使用,静态变量则直接可以使用类名来调用。

2、什么是反射机制?

java反射是在运行状态中,对任意一个类,都能够知道这个类的所有属性和方法,对于任何一个对象,都能够调用它的任意一个属性和方法,这种动态获取信息以及动态调用对象的方法的功能称为java的反射机制。

3、什么是装箱?什么是拆箱?

装箱:自动将基本数据类型转换为包装器类型。

拆箱:自动将包装器类型转换为基本数据类型。

4、Java 中覆盖和重载是什么意思?

覆盖(Override)是指子类对父类方法的一种重写,只能比父类抛出更少的异常,访问权限不能比父类的小,被覆盖的方法不能是 private的,否则只是在子类中重新定义了一个新方法。

重载(Overload)表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同。

java入门需要学习哪些东西

1、首先要学习java的基础知识。

不要被新技术迷惑,所谓万变不离其宗,新技术都是基于java的基础之上,如果基础不扎实,对于这些新技术的理解也是一知半解,学不到根源。

2、做一个java项目

在学习完java的基础知识之后,做一个java项目来巩固一下,在项目中会发现很多问题,通过解决问题,加深基础知识的掌握。

3、学习数据库的基础知识和开发应用

软件开发离不了数据库,掌握几种流行的数据库:Oracle、SQLserver、MySQL等。

4、JEE基础

在这里首先要学习网站基础,包括HTML、DHTML、java script;接着要学习 XML,XML JAXP;然后学习JEE基础,包括JEE开发环境,RMI/IIOP、JNDI;最后学习JDBC数据库的应用开发。

5、web开发

全面的JEE的web开发知识:Servlet JSP javaBean TagLib,到这里做一个完整的web应用项目开发。

6、EJB开发

包含全面的EJB知识:1)EJB入门和无状态会话Bean;2)有状态会话Bean;3)BMP和CMP是实体Bean;4)jms和MessageDrivenBean;5)事物和安全(JTA、JTS和JAAS);6)WebService的开发和应用;

7、开源框架的学习

学习几种现在流行的开源框架:Struts、Spring、Hibernian、Webwork等。完整的学习这些框架的开发和应用。如果有兴趣还可以学习Ibati框架、AJAX技术和DWR框架的开发和应用。

8、JEE项目

综合应用JEE的知识来开发一个完整的应用。

9、面向对象分析与设计

java是一种面向对象的语言,所以要深入学习面向对象的分析与设计,另外还要学习UML统一建模语言。

10、接下来就是系统设计与架构

这里要学习的是Java设计模式、EJB设计模式、JEE核心设计模式、JEE应用程序框架设计。

11、软件工程

软件工程基本理论知识的学习,还有Rup和极限编程。

12、技术研究

学习搜索引擎技术:如Lucene等、工作流技术:包含Shark、JBPM等、SOA架构和应用。

13、综合项目实战

实现一个企业级的应用。

Java工程师需要具备什么技能

1、夯实的java基础

当前的java新技术层出不穷,各企业的有不同的侧重点,根据企业用人的需求,只有具备坚实的java基础功底的程序员才能快速掌握新的技术。需要在核心算法、面向对象应用、数据结合及集合框架、反射、输入输出、多线程、异常处理等方面进行深入学习。

2、熟悉Linux操作系统

Linux是当今用作广泛的服务器操作系统。合格的java高级工程师必须具备熟练地Linux操作技巧,这也正是在企业面试中获得加分的重要指标之一。

3、深入学习数据库技术

互联网公司对Java应用离不开数据库技术。任何一个大中型应用,数据库设计的好坏、数据库访问的效率直接决定了该项目的成败。当前数据库最主流的技术有Oracle和MySQL两种,除了能熟练应用数据库体系结构和SQL语句之外,还要掌握数据库设计、SQL语句优化方面。

4、系统的Web前端技术

随着互联网技术由Web2.0向Web3.0迈进,Web前端技术,包括HTML、CSS特别是java script语言越来越被企业重视。很多企业为此设置“Web前端工程师”岗位,所以作为一名合格的java高级工程师要不断学习包括java script在内的Java知识还有其相关的Ajax、JQuery框架、Ext-JS框架。

5、企业及框架

Java是组件和框架的世界,所有的java程序员都应当了解java框架。

6、专门的企业级开发及部署环境

企业在开发、测试、部署实际项目时需要有特定的软件环境,但是很多技术人员往往不太重视这个,所以在工作中会出现很多问题和失误甚至被淘汰。因此,作为java工程师对Linux高级命令集脚本编程、远程登录、Art、单元测试技术、Maven构建技术、SVN应用技术等要有所了解。

7、规范的企业开发流程及文档

软件开发是团队合作,因此企业开发流程和文档规范尤为重要。这也是区分“草根程序员”和“正规程序员”的重要指标之一。开发项目项目无论大小都应该按照企业开发的流程进行(需求分析、系统设计、编码实现、单元测试、系统测试、部署上线)。