java基本特性_Java面试总结之Java基础

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

d8cc9cc54cf44dd15eac81dd4a73d8c5.pnghelloworld

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

答:封装,继承,多态

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

6ce92aadfd7915033ffbea1a4e294493.png

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修饰符的理解去回答即可。

希望对大家有所帮助

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

plotly python_使用Plotly for Python时的基本思路

plotly pythonI recently worked with Plotly for data visualization on predicted outputs coming from a Machine Learning Model.我最近与Plotly合作,对来自机器学习模型的预测输出进行数据可视化。 The documentation I referred to : https://plotly.com/pyt…

转发:毕业前的赠言

1、找一份真正感兴趣的工作。 “一个人如果有两个爱好,并且把其中一个变成自己的工作,那会是一件非常幸福的事情。那么另外一个爱好用来做什么?打发时间啦。所以,第二个兴趣非常重要,在你无聊寂寞的时候越发显得它…

Python模块之hashlib:提供hash算法

算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示&#xf…

css flexbox模型_完整CSS课程-包括flexbox和CSS网格

css flexbox模型Learn CSS in this complete 83-part course for beginners. Cascading Style Sheets (CSS) tell the browser how to display the text and other content that you write in HTML.在这本由83部分组成的完整课程中,为初学者学习CSS。 级联样式表(CS…

leetcode 830. 较大分组的位置

在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。 例如,在字符串 s “abbxxxxzyy” 中,就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。 分组可以用区间 [start, end] 表示,其中…

php 匹配图片路径_php正则匹配图片路径原理与方法

下面我来给大家介绍在php正则匹配图片路径原理与实现方法,有需要了解的朋友可进入参考参考。提取src里面的图片地址还不足够,因为不能保证那个地址一定是绝对地址,完全的地址,如果那是相对的呢?如果地址诸如&#xff1…

java项目经验行业_行业研究以及如何炫耀您的项目

java项目经验行业苹果 | GOOGLE | 现货 | 其他 (APPLE | GOOGLE | SPOTIFY | OTHERS) Editor’s note: The Towards Data Science podcast’s “Climbing the Data Science Ladder” series is hosted by Jeremie Harris. Jeremie helps run a data science mentorship startup…

MongoDB教程-使用Node.js从头开始CRUD应用

In this MongoDB Tutorial from NoobCoder, you will learn how to use MongoDB to create a complete Todo CRUD Application. This project uses MongoDB, Node.js, Express.js, jQuery, Bootstrap, and the Fetch API.在NoobCoder的MongoDB教程中,您将学习如何使…

leetcode 399. 除法求值(bfs)

给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 另有一些以数组 queries 表示的问题,其中 queries[j]…

【0718作业】收集和整理面向对象的六大设计原则

面向对象的六大设计原则 (1)单一职责原则——SRP (2)开闭原则——OCP (3)里式替换原则——LSP (4)依赖倒置原则——DIP (5)接口隔离原则——ISP (…

数据科学 python_适用于数据科学的Python vs(和)R

数据科学 pythonChoosing the right programming language when taking on a new project is perhaps one of the most daunting decisions programmers often make.在进行新项目时选择正确的编程语言可能是程序员经常做出的最艰巨的决定之一。 Python and R are no doubt amon…

如何进行有效的需求调研

一、什么是需求调研?需求调研对于一个应用软件开发来说,是一个系统开发的开始阶段,它的输出“软件需求分析报告”是设计阶段的输入,需求调研的质量对于一个应用软件来说,是一个极其重要的阶段,它的质量在一…

java中直角三角形第三条边,Java编程,根据输入三角形的三个边边长,程序能判断三角形类型为:等边、等腰、斜角、直角三角形,求代码...

private static Scanner sc;private static int edge[] new int[3];public static void main(String[] args) {System.out.println("请输入三角形的三条边");sc new Scanner(System.in);input();}public static void input() {int index 0;//数组下标while (sc.ha…

react中使用构建缓存_使用React和Netlify从头开始构建电子商务网站

react中使用构建缓存In this step-by-step, 6-hour tutorial from Coding Addict, you will learn to build an e-commerce site from scratch using React and create-react-app.在这个Coding Addict的分步,为时6小时的教程中,您将学习使用React和creat…

Django+Vue前后端分离项目的部署

部署静态文件: 静态文件有两种方式 1:通过django路由访问 2:通过nginx直接访问 方式1: 需要在根目录的URL文件中增加 url(r^$, TemplateView.as_view(template_name"index.html")),作为入口,在setting中更改…

leetcode 547. 省份数量(bfs)

有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。 给你一…

r怎么对两组数据统计检验_数据科学中最常用的统计检验是什么

r怎么对两组数据统计检验Business analytics and data science is a convergence of many fields of expertise. Professionals form multiple domains and educational backgrounds are joining the analytics industry in the pursuit of becoming data scientists.业务分析和…

win10专业版激活(cmd方式)

转载于:https://www.cnblogs.com/bug-baba/p/11225322.html

mit景观生成技术_永远不会再为工作感到不知所措:如何使用MIT技术

mit景观生成技术by Sihui Huang黄思慧 永远不会再为工作感到不知所措:如何使用MIT技术 (Never feel overwhelmed at work again: how to use the M.I.T. technique) Have you ever felt exhausted after a day at work? At the end of a busy day, you couldn’t …

leetcode 189. 旋转数组

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 代码 cla…