java面试基础知识分享_第1页
java面试基础知识分享_第2页
java面试基础知识分享_第3页
java面试基础知识分享_第4页
java面试基础知识分享_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java面试基础知识分享

java面试基础知识

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

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

在程序运行时的区别:实例变量是属于某个对象的属性,必须创建了实例对象,其

中的实例变量才会被分配内存空间,才可以使用这个实例变量。

静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了

类的字节码,不用创建任何实例对象,静态变量就会分配内存空间,而且只分配一次,

静态变量就可以被使用了。总之,实例变量必须创建后才可以通过这个对象来使用,

静态变量则直接可以使用类名来调用。

2、什么是反射机制?

java反射是在运行状态中,对任意一个类,都能够知道这个类的所有属性和方法,

对于任何一个对象,都能够调用它的任意一个属性和方法,这种动态获取信息以及动

态调用对象的方法的功能称为java的反射机制。

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

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

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

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

覆盖(Override)是指子类对父类方法的一种重写,只能比父类抛出更少的异常,访

问权限不能比父类的小,被覆盖的方法不能是privateft<J,否则只是在子类中重新定

义了一个新方法。

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

表各不相同。

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特别是

javascript语言越来越被企业重视。很多企业为此设置“Web前端工程师”岗位,所

以作为一名合格的java高级工程师要不断学习包括javascript在内的Java知识还

有其相关的Ajax、JQue”框架、Ext-JS框架。

5、企业及框架

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

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

企业在开发、测试、部署实际项目时需要有特定的软件环境,但是很多技术人员往

往不太重视这个,所以在工作中会出现很多问题和失误甚至被淘汰。因此,作为java

工程师对Linux高级命令集脚本编程、远程登录、Art、单元测试技术、Maven构建技

术、SVN应用技术等要有所了解。

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

软件开发是团队合作,因此企业开发流程和文档规范尤为重要。这也是区分“草根

程序员”和“正规程序员”的重要指标之一。开发项目项目无论大小都应该按照企业

开发的流程进行(需求分析、系统设计、编码实现、单元测试、系统测试、部署上线)。

java基础知识面试题及答案

1、static关键字什么意思?java中是否可以覆盖一个private或者是static的方

法?

"static"表明一个成员变量或者是成员方法可以在没有所属类的实例变量的情况

下访问。

java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而

static方法是编译时静态绑定的。static方法与类的任何实例都不相关。

java中不可以覆盖private方法。因为private修饰的变量和方法只能在当前类中

使用,如果是其他类继承当前类,继承类中是不能访问到private变量和方法的。

2、能否在static环境中访问非static变量?

不能。static变量是属于类的。当类被虚拟机载入时,会对static变量进行初始

化。非static变量是属于实例的,这个时候实例还没有被创建,编译器会报错。

3、java基本类型,什么是自动拆装箱?

基本类型:byte,short,int,float,long,double,boolean,char

自动装箱:是java编译器在基本类型和对应的对象包装类型之间做一个转化。比如

把int转化为Integer等等。反之为自动拆箱。

4>java的方法覆盖overriding和方法重载overloading是什么意思?

java中方法重载发生在同一个类中有两个或者多个方法名字相同但是参数不同的情

况。方法覆盖是子类重新定义父类的方法。方法覆盖必须有相同的方法名,参数列表

和返回类型。

5、java中,什么是构造方法?什么是构造方法重载?什么是复制构造方法?

当新对象被创建时,构造方法会被调用。每一个类都有一个构造方法,在没有给类

提供构造函数时,编译器会自动创建一个默认的构造方法

java中构造方法重载和方法重载很相似。可以为一个类创建多个构造方法,每一个

构造方法必须有它自己唯一的参数列表

6、java支持多继承吗?

不支持。只能支持单继承,即一个类只有一个父类。可以用implements实现多个接

口扩展

7、接口与抽象类的区别

(1)接口中所有方法隐含都是抽象的。而抽象类则可以同时包含抽象利非抽象的方法

(2)接口中声明的变量默认都是final,而抽象类可以包含非final的变量

(3)接口中成员函数默认都会public1,抽象类的成员函数可以是private,

protected或者pub1ic

(4)类可以小实现抽象类和接口声明中的所有方法,这种情况下,类也必须声明为抽

象的

8、jdk与jre区别是什么?

java运行时环境(jrc)是将要执行的java程序的java虚拟机,同时也包含了执行

applet需要的浏览器插件。java开发工具包(jdk)是完整的java软件开发包,包含了

jre,编译器和其他工具(比如:javadoc,java调试器),可以让开发者开发,编译,

执行java应用程序。

9、什么是只传递和引用传递

值传递是对基本类型变量而言,传递是该变量的一个副本,改变副本不会影响原变

引用传递一般是对于对象型变量而言,传递的是该对象地址的一个副本,改变副本,

会影响原变量

10、进程和线程的区别?

进程是执行着的应用程序,线程是进程内部的一个执行序列。一个进程可以有多个

线程

区别:

(1)地址空间和其他资源:进程之间相互独立。同一个进程的各个线程间共享。某进

程内的线程在其他进程不可见

(2)通信:进程之间通信ipc,线程间可以直接读写进程数据段(如全局变量)来进行

通信一需要进程同步和互斥手段的辅助,以保证数据的一致性

(3)调度和切换:线程之间上下文切换比进程上下文切换快的多

(4)在多线程os中,进程不是一个可执行的实体

11、同步方法和同步代码块的区别

同步方法默认是用this或当前类对象作为锁

同步代码块可以选择以什么来加锁,比同步方法更细粒度。我们可以选择只同步会

发生同步问题的部分代码而不是整个方法

12、什么是死锁?

死锁是值多个线程因资源竞争而造成的一种僵局,若无外力作用,这些线程都无法

向前推进。产生死锁的4个必要条件

(1)互斥条件

(2)不剥夺条件

(3)请求和保持条件

(4)循环等待

13、如何确保N个线程可以访问N个资源同时又不导致死锁?

一种非常简单的避免死锁的方式:指定获取锁的顺序,并强制线程按照指定的顺序

获取锁。因此如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁

14、java集合类框架的基本接口有哪些?

Collection,Set,List,Map

15、HashMap工作原理

hcishMap是以键值对的形式存储。hashmap需要一个hash函数,它使用hashCode和

equals方法来向集合/从集合添加和检索元素。当调用pul时,HashYap会计算key的

hash值,然后把键值对存储在集合中合适的索引上。如果key已经存在,valu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论