无论是工作多年的高级开发人员还是刚入职场的新人,在换工作面试的过程中,Java基础是必不可少的面试题之一。能不能顺利通过面试,拿到自己理想的offer,在准备面试的过程中,Java基础也是很关键的。对于工作多年的开发人员来说,Java基础往往是会被大家所忽略的,但在面试的过程中,确是必不可少的问题。在这篇文章里就来为大家总结一下经常会被问到的Java基础题。

helloworld

1.Java面向对象的三大特征

答:封装,继承,多态

评论:对于刚入职场的新人来说,这个回答就可以了,但对于工作多年的高级开发人员来说,这个回答是远远不够的。你需要对这大三特征有比较深刻的认识才可以。封装表面上看就把描述一个对象的属性和行为封装成一个类,把业务逻辑封装成方法,封装的另一层含义在于通过修饰符控制类的访问属性(公有,私有等)。继承主要是实现了代码的复用,所有子类公用的行为和属性可以抽取为一个父类,所有子类继承了父类的属性和行为,java中继承是单一性的。多态:程序中定义的引用类型变量所指向的具体类型和调用的具体方法在程序编译阶段无法确定,而是在运行期才能确定该引用类型变量指向具体哪个对象而调用在哪个类中声明的方法。多态的表现形式有强制类型转换,向上构造等。多态可分为行为多态和对象多态。

2.Java的基本数据类型

答:基本数据类型有,byte,short,int,long,float,double,char,boolean这8种。

评论:在实际面试过程中一般不会这么问你,一般会拿一个具体的问题考你。比如让你设计一个和订单金额有关的数据结构,或者问你数据类型里的隐式转换(int-Integer)相关的,这些都是考察基本功。

3.Java的修饰符

答:private,protected,public,default

评论:这里知道这几种修饰符的作用范围之外,还有一些比较深层次的也要注意一下。有一次我被问到如何去访问一个private修饰的方法。这里有一种方法就是通过反射可以实现对private的访问。

4.Java的运算符

答:Java是一门强类型的语言,运算符基本可以为分6类:算数运算符,赋值运算符,关系运算符,逻辑运算符,位运算符,条件运算符。

评论:运算符的考察,一般会给你一个实际的题让你算结果,通常考基本功的话会问你一些位运算,或者和运算符优先级相关的题。

5.Java的String,StringBuffer,StringBuilder类用法与区别?

答:String类适用于少量字符串的操作,StringBuilder适用于单线程下在字符缓冲区进行大量操作的情况,StringBuffer适用多线程下在字符缓冲区进行大量操作的情况。

评论:考察java字符串的基础通常会围绕这3个类展开。一般回答的时候要围绕运算速度和线程安全这两个方面展开。

6.两个对象的hashCode()相同,则equals()也一定为true吗?

答:不一定相同。正常情况下,因为equals()方法比较的就是对象在内存中的值,如果值相同,那么Hashcode值也应该相同。但是如果不重写hashcode方法,就会出现不相等的情况。

7.Java中的Override与Overload的区别?

答:overload在相同的类范围内执行,override发生在具有继承关系的两个类。

评论:要回答的完美,还需要从目的,范围,参数,多态性,返回类型这几个方面回答。

8.final在Java中的作用?

答:在java中有4种用法,1.修饰数据,2.修饰方法参数,3.修饰方法,4修饰类

评论:1.修饰数据,包括成员变量,局部变量,则变量只能被赋值一次。2.修饰方法参数,表示变量在生命周期只能被赋值 一次。3.修饰方法,表示该方法不能被重写。4.修饰类表示该类不能被继承

9.如何将字符串反转?

答:有很多种,如通过char数组,StringBuffer的reverse等

10.String类的常用方法有哪些?

答:常用方法,new String,length,charAt,subString,compareTo,compareToIgnore,equals,equalsIgnoreCase,concat,indexOf,replace,replaceAll,trim,startWith等

11.Object类有哪些常用的方法?

答:这个类是所有java对象的父类,常用方法toString,equals,hashCode

12.抽象类必须要有抽象方法吗?

答:可以没有抽象方法,但抽象方法一定在抽象类中。

13.抽象类与接口的区别?

答:抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这里主说一下用法:如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类。如果基本功能在不断改变,那么也使用抽象类。如果你想实现多重继承,那么你必须使用接口。

14.抽象类可以用final修饰吗?

答:不可以,final修饰的类的是不可以被继承的

15.String类为什么是final类型的?

答:可以从这3方面回答,1.为了实现字符串池,2.为了线程安全,3.为了实现String可以创建HashCode不可变性。

评论:这题主要从Final修饰符的理解去回答即可。

希望对大家有所帮助

java基本特性_Java面试总结之Java基础相关推荐

  1. java list 初始化_Java面试大全(十)

    第五章 Java 的高级 1.说说你对 Java 中反射的理解 Java 中的反射首先是能够获取到Java 中要反射类的字节码,获取字节码有三种方法:1. Class.forName(classNam ...

  2. java几大特性_java三大特性是什么?

    java三大特性:1.封装,是指隐藏对象的属性和实现细节,仅对外提供公共访问方式:2.继承,从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力:3.多态,一个方法可以有多种 ...

  3. java 新特性_Java 9的14个新特性总结

    原标题:Java 9的14个新特性总结 作者 | Aboullaite Mohammed 翻译 |Kenneth Java 9 包含了丰富的特性集.虽然Java 9没有新的语言概念,但是有开发者感兴趣 ...

  4. java 常用类库_JAVA(三)JAVA常用类库/JAVA IO

    成鹏致远 |lcw.cnblog.com|2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不同, ...

  5. JAVA翻译官_Java学习笔记之——Java介绍

    1.Java体系: JavaSE:标准版,其他两个体系的基础 JavaEE:企业版 JavaME:微型版,适用于消费类型的微型设备 2.Java三大特性:封装.继承.多态 3.Java的特点:面向对象 ...

  6. 我的世界java版特性_我的世界Java版特性展望直面会爆料

    在今年我的世界MineconEarth的Java版特性展望直面会上,官方人员曝光了非常多Java版未来会加入的特性,现在就让我们一起来了解一下Java版未来的更新计划吧! [我的世界pc版交流群1]欢 ...

  7. java系统教程_Java 教程(开发环境配置+基础语法)

    Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.ora ...

  8. java类描述_java笔记2:Java语言中的类和对象的描述

    在Java 语言中,除8 个基本数据类型值之外, 一切都是对象,而对象就是面向对象程序设计的中心. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还 ...

  9. java回收类_Java的内存回收——Java引用的种类

    1.Java引用的种类 Java是面向对象的编程语言,一个Java程序往往需要创建大量的Java类,然后对各Java类创建大量的Java对象,再调用这些Java对象的属性和方法来操作它们. 程序员需要 ...

最新文章

  1. 只出现一次的数字—leetcode136
  2. 单例模式160905
  3. 关于Unity中NGUI的背包实现之Scrollview(基于Camera)
  4. timerfd与epoll
  5. 前端学习(2484):发表更新
  6. java静态变量重复new_Java非静态成员变量之死循环(详解)
  7. 笔记----Linux中pt_regs结构体
  8. Springboot打jar包项目无法访问jsp问题解决
  9. mysql ndb 测试_mysql ndb笔记
  10. C# 中值类型[Required(*****)] 报错
  11. Android初级教程:对文件和字符串进行MD5加密工具类
  12. 「 计算机视觉」帧差法移动侦测
  13. js实现文本相似度对比
  14. 从最近一次的计算机攻击中,我们学到的经验教训
  15. 简单的猜数字小游戏(1 ~ 100)
  16. ADDA: Adversarial Discriminative Domain Adaptation
  17. 微信小程序存储(数据缓存,存储和取值)
  18. low-light系列:Lightening Network for Low-light Image Enhancement
  19. Python爬取磁力链信息
  20. 基于MATLAB的4f系统实现边缘提取

热门文章

  1. 获取对象属性(key)
  2. 关于夏季及雷雨天气的MODEM、路由器使用注意事项
  3. Suricata的初始化脚本
  4. 必须使用301重定向的运用场景
  5. 我们为何要使用多线程,它有什么优点?
  6. 红帽436——HA高可用集群之概念篇
  7. mybatis处理集合、循环、数组和in等语句的使用
  8. 信息安全系统设计基础第十一周 20135218 姬梦馨
  9. Android应用程序打包时,出现错误:XXX is not translated in af (Afrikaans), am (Amharic), ar (Arabic).....(...
  10. 比较DataTable中新旧数据