Java面试题及解答技巧解析介绍(合集)

您所在的位置:网站首页 matlab的心得体会 Java面试题及解答技巧解析介绍(合集)

Java面试题及解答技巧解析介绍(合集)

2023-06-04 06:20| 来源: 网络整理| 查看: 265

 

    Java面试题解答技巧

    第一,谈谈final, finally, finalize的区别。

    final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载

    finally再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

    finalize方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

    第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

    匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

    第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。

    Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。

    注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象

    第四,和的区别。

    是位运算符。是布尔逻辑运算符。

    第五,HashMap和Hashtable的区别。

    都属于Map接口的类,实现了将惟一键映射到特定的值上。

    HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。

    Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。

    第六,Collection 和 Collections的区别。

    Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

    Collection是个java.util下的接口,它是各种集合结构的父接口。

    第七,什么时候用assert。

    断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 Assertionerror。它用于调试目的:

    assert(a  0); // throws an Assertionerror if a = 0

    断言可以有两种形式:

    assert Expression1 ;

    assert Expression1 : Expression2 ;

    Expression1 应该总是产生一个布尔值。

    Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。

    断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记:

    javac -source 1.4 Test.java

    要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。

    要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。

    要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。

    可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。

  

    面试良好心态的技巧

    (1)要树立自信心。

    求职面试要敢于推销自己。

    自信是自我推销的前提,一个人如果没有自信心,就不可能成功地推销自己。

    与人交往中的胆怯心理、紧张情绪,大都因为缺乏自信。

    实际上,并不是自己不行,而是自卑心理作怪。

    因此要战胜自卑感,增强自信心。

    (2)要加强行为训练。

    造成紧张的另一个原因是某些毕业生缺乏这方面的锻炼。

    历届美国总统在发表国情咨文记者招待会之前,都 要进行行为预演,把他们的新闻助理、政策顾问找来,让他们提出各种问题,由总统回答,再由顾问们进行补充、校正,这样才能在记者招待会上给人留下对答如流、诙谐潇洒的良好印象。

    由此看来,行为训练是必不可少的。

    现在一些学校举办模拟招聘面试的行为训练活动,实为一种好方法。

    (3)要善于发挥自己的优势。

    每个人都有自己的个性、气质、爱好,都有优势与不足。

    面试中争取主动,扬长避短,可以收到出奇制胜的效果,这样不仅可以引起考官对你的好感,而且容易实现心理平衡,消除紧张情绪。

  

    面试不紧张的技巧

    一、紧张心理出现的原因及正确认识

    经心理研究发现,紧张情绪出现的根源基于以下四点:

    第一、 面试准备不充分,底气不足;

    第二、 害怕面试失利,对结果过度关注;

    第三、 有过面试失败的经历,阴影挥之不去;

    第四、 面对陌生环境或考官压力大,不能调整情绪。

    针对以上的情况,最重要的一点对面试要有正确的认识,既要知己,也要知彼。知己,要了解导致自己过度紧张的原因是什么,找到克服紧张心理的方式、方法;知彼,树立信心,不要把对手想得过于强大,无限放大自己的缺点或别人的优点都会自己是不利的,要相信自己能击败对手,给自己增加必胜的信心。

    二、常见的心理状况及调节策略

    1、说话结巴

    说话结巴分先天与后天两种。先天要靠练习去改变,后天要靠心理调节去实现。先天结巴要多练习朗读、比如熟读一些常用词汇、十八大报告等;后天心理结巴,即说话磕巴,这种情况主要是思维不流畅和语言匮乏的外在表现,结巴在面试考场上转化为经常停顿,大脑一片空白,包括导语空白、答题空白,全场好像梦游一样,这些都是紧张的副作用。针对说话结巴,我们要充分发挥提纲的作用,列好要点,平时加以录音练习,反复听,把话说顺。

    2、口头语严重

    在面试的过程中,我们不必要纠结语言的精准性,如果过分地要求用言简意赅的语言去表达,就须从大脑有限的词汇量中去抽取要表达所用的词汇,这时就会出现卡、顿的情况。其实在面试中适度口语化是不影响分数的,表达是为了让别人听懂,所以我们在面试时用比平时交谈稍严谨的语言即可。很多考生在语言表达过程中都会出现口头语的问题,经常出现的有啊、哦、嗯、这个、那个等,这种情况,我们可以通过录音来纠正,也可以通过吞咽口水的方法来缓解口头语严重的问题。

    3、说话嗦

    简洁明了是面试答题的一个基本要求,现在越来越多的地方严格控制面试答题的时间,一方面是为了提高工作效率,另外一方面就是为了防止考生废话过多。作为国家公职人员,不仅做事要有效率,讲话也要有效率。很多考生追求完美主义,总怕答不全、遗漏要点,同一意思反复表达。针对这种情况,考生可以先写下答案,自己做缩句练习,逐渐用简练的语言表达想说的话。

    4、无法对视

    很多考生在答题过程中缺少与考官的眼神交流,只顾低头盯题本、看提纲,自顾自说,这会给考官留下一种非常不自信的印象。考生进入考场后,要主动与考官进行亲切有神的目光交流,消除紧张情绪。如果心里害怕,出现被对方气势压倒的感觉时,更要鼓起勇气与考官进行眼神交流,待紧张情绪消除后,再表述题目。可以通过对着镜子练习进行练习的方法来纠正,也可以手里拿一支笔,面带微笑加以练习。在模拟练习中,眼神要淡定,目光要缓慢移动,更不能只盯着主考官看,也要兼顾其他考官,要做到自然、亲切。

    三、正确看待面试、相信自己

    克服心里紧张可以从以下两方面着手:

    首先是正确看待结果,放下自我。对面试而言,其重要性不言而喻,当然需要保持一定的紧张情绪。但是太看重结果就会加重个人的心理负担,压力激增,更会容易出错。如果坦然面对反而能够保持平常心,发挥自己的水平。

    其次要培养自信心,自信是成功的第一要诀。第一要克服自卑心理,自卑是自信的最大敌人,一个人的自卑一般来源于学历、外貌、家庭情况、肤色等对比。请记住一点,在面试面前大家是平等的,没有高低贵贱之别,完全凭的是个人能力。此外,我们必须还要进行反复的、多次的全真模拟,认真听取专业老师给的点评及改进意见。常言说熟读唐诗三百首,不会作诗也会吟,可见熟悉能转化为自然,也就不会紧张了。

  

Java语言的特点

  

    Java语言的特点

    1.简单性

    Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。

    2.面向对象

    Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。

    Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。

    3.分布性

    Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。

    网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。

    4.编译和解释性

    Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。

    在一个解释性的环境中,程序开发的标准链接阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的编译、链接和测试形成鲜明对比的精巧的开发过程。

    5.稳健性

    Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。

    Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。

    可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重写存储和讹误数据的可能性。类似地,Java自动的无用单元收集预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。

    异常处理是Java中使得程序更稳健的另一个特征。异常是某种类似于错误的异常条件出现的信号。使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。

  

    Java语言技术的应用

    1、Android应用

    许多的 Android应用都是Java程序员开发者开发。虽然 Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。相当一部分的手机中都支持JAVA游戏,这就使很多非编程人员都认识了JAVA。

    2、在金融业应用的服务器程序

    Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,因为相对而言,Java较安全[39] 。大型跨国投资银行用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。大多数情况下,Java被用在服务器端开发,但多数没有任何前端,它们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)。

    3、网站

    Java 在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0以及frameworks。即使是简单的 servlet,jsp和以struts为基础的网站在政府项目中也经常被用到。例如医疗救护、保险、教育、国防以及其他的不同部门网站都是以Java为基础来开发的。

    4、嵌入式领域

    Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。

    5、大数据技术

    Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。

    6、高频交易的空间

    Java平台提高了这个平台的特性和即使编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java成为的程序员编写交易平台的语言,因为虽然性能不比C++,但开发人员可以避开安全性,可移植性和可维护性等问题。

    7、科学应用

    Java在科学应用中是很好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。

  

    Java语言的发展前景

    计算机的诞生及广泛应用推动了IT领域的发展,但21世纪的计算机早已不是访问INTERNET的唯一的途径。各类更具信息化的电子产品逐渐进入IT领域,推动了PC时代的大发展。由于各种消费信息的急剧增加,传统的客户机的各方面条件均不如PC,PC的发展对服务器的应用管理体统也提出了更高标准。Java语言完全满足了PC的条件,在减少内存,直接在各类电子产品中运行,在网络中可被任何设备所识别,充分利用网络资源等方面有所突破创新,为PC时代的发展创造了有力条件。

    随着IT产业的发展,许多企业中的计算机应用程序也在随之转型,企业中所应用的计算机模式逐渐向客户端较小、服务器随之增大、数据库的容量也在相应增加的方向转变。此外,加上Java语言独有的特点,根据其在各项服务器中应用程序的开发所占有的优势,企业版的J2SE为企业环境中计算机模式的应用提供了良好的平台。

    Java语言为与数据库联系紧密设计了Java servlet和SQL-J技术,以及JSP技术。随着JSP技术的发展,使JAVA语言的网络应用更为实际化、更高效快捷,成为IT产业常用的技术。JSP以Java语言作为其服务器端的使用语言,结合了JAVA SCRIPT等多种其他客户端语言,使网络浏览器更为方便的展现。[48]

    在远程网络教学方面,由于JAVA改变了传统的基于Microsoft Front Page或HTML语言制作的Web页面形态,使网络远程教学更加朝着动态、便捷化、安全化的方向发展,丰富了网络远程教学的手段和覆盖面。

  



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3