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,一经查实,立即删除!

相关文章

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

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

数据科学 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…

win10专业版激活(cmd方式)

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

命令行窗口常用的一些小技巧

一. 打开命令行窗口的方式 1. 按住【shift】键,在桌面右击,选择“在此处打开命令行窗口(W)”,如下图所示: 2. 按住【开始】 R快捷键,弹出运行窗口,输入cmd,回车(确定)即可。 二. 常用…

为什么即使在班级均衡的情况下,准确度仍然令人困扰

Accuracy is a go-to metric because it’s highly interpretable and low-cost to evaluate. For this reason, accuracy — perhaps the most simple of machine learning metrics — is (rightfully) commonplace. However, it’s also true that many people are too comfo…

filebeat向kafka传输数据,无数据现象

通过netstat 能够看到filebeat确实是有向kafka传输数据, filebeat 日志显示 那就需要修改 /etc/hosts文件 将kafka主机的名字和ip写入filebeat主机的hosts文件中。 转载于:https://www.cnblogs.com/liuYGoo/p/11226272.html

感想篇:4)越来越精简的机械设计

本章目的:述说机械设计方向的发展。 kiss原则需要后期追加。 作者在写电机选用章节时想到了机构的问题,机械发展的前半生对机构来说无疑有会辉煌的成就,各种各样的机构能取得难以置信的成效,最终甚至可以说上升到了艺术的阶段。如…

浅谈传统企业网络运营那些事儿

网络的变革、更新推动的速度很快,小到出门购物全方位在原基础的微信/支付宝等第三方支付等,随着微信公众号/微信小程序等"轻"级传播推广渠道的发展,以及客观的传统企业在互联网的冲击下,同样的价格比服务?比…

vim 下web开发html css js插件

Vim下的Web开发之html,CSS,javascript插件HTML 下载HTML.zip 解压HTML.zip,然后将里面的所有文件copy到C:\Program Files\Vim\vimfiles目录下首先,你应该把“ filetype plugin on ”写入你的vimrc。重启vim。新建一个test.html文件。用gvim打开按 "…

Android_Event Bus 的基本用法

1 //事件总线分发2 public class MainActivity extends ActionBarActivity {3 Button button;4 TextView text;5 6 Override7 protected void onCreate(Bundle savedInstanceState) {8 super.onCreate(savedInstanceState);9 setContentView(R…

php企业黄页源码,PHPCMS 企业黄页模块 v9 GBK 正式版

PHPCMS V9采用OOP(面向对象)方式进行基础运行框架搭建。模块化开发方式做为功能开发形式。框架易于功能扩展,代码维护,优秀的二次开发能力,可满足所有网站的应用需求。PHPCMS V9企业黄页主要特色1、模型自定义,支持模型添加、修改…

fromEvent

fromEvent(selector,Event) 实际效果图 这个功能和cad 3dmax里面的鼠标定位功能一致吧,是不是有点小成就? 转载于:https://www.cnblogs.com/xiongwei2017/p/7074180.html

java虚拟机编译文件,理解Java虚拟机(1)之一个.java文件编译成.class文件发生了什么...

理解Java虚拟机(1)之一个.java文件编译成.class文件发生了什么最近在看《深入理解Java虚拟机》弄明白了很多java的底层知识,决定分几部分总结下,从.java文件编译,到类加载机制,内存分配垃圾回收机制,线程并发&#xff…

RabbitMQ学习系列(一): 介绍

1、介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue )协议的开源实现。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面都非常的优秀。是当前最主流的消息中间件之一。 RabbitMQ的官网:http…

RabbitMQ学习系列(二): RabbitMQ安装与配置

1.安装 Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装RabbitMQ之前要先安装Erlang。 erlang:http://www.erlang.org/download.html rabbitmq:http://www.rabbitmq.com/download.html 注意: 1.现在先别装最新的 3…

帝国CMS浅浅滴谈一下——博客园老牛大讲堂

封笔多月之后,工作中遇到了很多很多的问题,也解决了一些问题,下面我把一些得出的经验,分享给大家! 会帝国cms的请离开,这篇文章对你没什么用 1、什么是帝国CMS?---博客园老牛大讲堂 多月之前&am…

matlab cdf,Matlab 简单计算PDF和CDF | 学步园

通信的魅力就是在于随机性中蕴含的确定性,这也就是为什么你随便拿出一本通信方面的教材,前面几章都会大篇幅的讲解随机过程,随机过程也是研究生必须深入了解的一门课,特别是对于信号处理以及通信专业的学生。在实际工作中&#xf…

Android数据适配-ExpandableListView

Android中ListView的用法基本上学的时候都会使用,其中可以使用ArrayAdapter,SimpleAdapter,BaseAdapter去实现,这次主要使用的ExpandableListView展示一种两层的效果,ExpandableListView是android中可以实现下拉list的…

JavaWeb 命名规则

命名规范命名规范命名规范命名规范 本规范主要针对java开发制定的规范项目命名项目命名项目命名项目命名 项目创建,名称所有字母均小写,组合方式为:com.company.projectName.component.hiberarchy。1. projectName:项目名称2. com…

多元概率密度_利用多元论把握事件概率

多元概率密度Humans have plenty of cognitive strengths, but one area that most of us struggle with is estimating, explaining and preparing for improbable events. This theme underpins two of Nassim Taleb’s major works: Fooled by Randomness and The Black Swa…