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