返回顶部
首页 > 资讯 > 精选 >java入门面试题有哪些
  • 386
分享到

java入门面试题有哪些

2023-06-20 19:06:50 386人浏览 独家记忆
摘要

这篇文章主要为大家展示了“java入门面试题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java入门面试题有哪些”这篇文章吧。1. 谈谈你对面向对象的了解? (谈谈你对面向对象和面向过程

这篇文章主要为大家展示了“java入门面试题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java入门面试题有哪些”这篇文章吧。

1. 谈谈你对面向对象的了解? (谈谈你对面向对象和面向过程的了解?)

面向对象与面向过程相比较,面向过程注重事件的步骤与顺序,比较直接高效,面向对象注重事件参与的对象与对象各己需要做的事,更易于复用,维护与扩展。(以举例来说明更加形象)

(例:拿常见手机支付来看)

面向过程:1,手机扫码——>2,输入密码——>3,确认是否支付成功——>4,离开

面向对象:拆出人与手机二个对象,(人:输入密码,离开,手机:手机扫码,确认是否支付成功)

下面就要谈谈面向对象的三大特征:封装。继承与多态

封装的意义:明确标识出允许外部使用的属性与方法,内部细节对外部隐藏,外部调用无需修改和关心内部如何实现。

继承:继承父类(基类)的方法,不包括私有化的部分,引用父类的方法或者按自己需求进行修改与扩展。

多态:(条件:1,在继承的基础上,2,存在方法重写,3,父类的引用指向子类的对象),基于对象所属类的不同,子类对父类同一个方法的调用,实际执行的逻辑不同。(无法调用调用子类特有的方法)。

2.==与equals的比较(笔试中常见)

==:比较的是栈中的值,基本上就是比较的变量当中的值,引用类型是堆中的内存对象地址、

equals:Object默认采用“==”比较,通常继承后会进行重写比较的为对象的内容(例如String)。

例题:

public class Taxi {    public static void main(String[] args) {        String str1="hello";        String str2=new String("hello");        String str3=str2;        System.out.println(str1==str2);//false        System.out.println(str1==str3);//false        System.out.println(str2==str3);//true        System.out.println(str1.equals(str2));//true        System.out.println(str1.equals(str3));//true        System.out.println(str2.equals(str3));//true    }}

解析:在Java中字符串是对象,字符串在生成时其实是在内存常量池当中生成。所以str1指向的“hello”的对象内存地址,str2因为new关键字在堆中开辟内存,但内存指向常量池中的“hello”,str2指向开辟内存的对象地址。str3==str2,所以str3指向str2指向开辟内存的对象地址。因为str1与str2和str1与str3“==”比较内存地址不同返回flase,str2与str3的内存地址相同返回ture,字符串方法中equals重写过,比较的是内容,str1与str2与str3的内容相同为“hello”,所以返回的是ture.

3.fianl关键字

final的作用:

该类不能被继承
方法该方法不能被重写,但可以重载
变量变量一旦被赋值就不能修改
成员变量(普通)在声明的时候就需要赋值,或者静态块中与构造函数中赋值
成员变量(静态)在声明的时候就需要赋值,或者静态块中赋值
局部变量系统不会给变量初始化,必须程序员写入,在初始化时不会报错,但在使用前一定要初始化,不然报错
基本数据类型基本数据类型的数值初始化后不能改变
引用数据类型初始化后不能指向另一个对象,但引用的值是可以改变的

4.为什么局部内部类与匿名内部类只能访问局部的final变量?

首先必须知道,内部类与外部类,内部类不会因为定义在方法中,跟方法执行完一起回收,就会产生一个问题,外部方法结束时,就会回收局部变量,但内部类对象(当没有引用时回收)还存在,就存在了一个问题,内部类访问了一个不存在的变量,所以在jdk当中为了解决这个办法,局部就复制了一份内部类成员变量,当局部变量回收后仍可以访问局部变量,但实际访问的是“copy”过的值。(为了复制的局部变量必须与原局部变量一样,所以使用final修饰)

public class Management {    private int id=10;    //final修饰局部变量    public void outPrint(final String x){        class InClass{            public void Inprint(){                System.out.println(x);                System.out.println(id);            }        }        new InClass().Inprint();    }    public static void main(String[] args) {       Management m=new Management();        m.outPrint("小罗");    }}

5.String,StringBuffer,StringBuilder 三者的区别与使用场景?

String:final修饰的,不可变的,每次操作会产生新的对象。

StringBuffer,StringBuilder:对原对象进行操作,不产生新对象。

性能上:StringBuilder (线程安全)> StringBuffer(线程安全) > String

使用场景:当需要对字符串内容进行多次改变时,使用StringBuffer,StringBuilder。但因为性能原因优先使用StringBuilder ,需要多线程,共享变量时使用StringBuffer。

6.重载和重写(覆盖)的区别?

重载:发生在类当中,方法名称必须相同,参数的类型,个数顺序不同。方法返回值与修饰符可以不同。(下图:不是重载,方法名称必须相同,参数的类型,个数顺序相同,重载与返回值没有关系)

 public void outPrint(String x,int i){           }public int outPrint(String x,int i){       //这个不是重载,编译时会报错     }

重写(覆盖):发生在继承的父类与子类当中,方法名与参数列表必须相同,返回值的范围小于等于父类,如果存在异常,抛出异常范围小于等于父类,修饰符的权限必须大于等于父类。如果父类方法以private修饰则子类不能重写该方法。

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

1,抽象类可以存在普通成员函数,而接口只能存在public abstract 方法,

2,抽象类只能继承一个,而接口可以s实现多个。

3,抽象类中成员变量可以是任何类型,而接口中成员变量只能是public static final 类型的。

(高级:接口设计的目的:是对类行为进行约束,抽象类的目的:提高代码的复用性,抽象类不允许实例化)

使用场景:当你关注的是事务本身时,就用抽象类,当你关注操作时就使用接口。

8.list与set的区别?

list:有序,可重复的,按对象进入顺序进行存储,允许多个null对象,可以使用迭代器取出所以元素,还可以所以get方法获取指定下标的元素。

set:无序,不可重复。只允许有一个null对象,只能使用迭代器遍历元素。

9.hashCode与equals

equals:Object默认采用“==”比较,通常继承后会进行重写比较的为对象的内容(例如String)。

hashCode:定义在Object中hashCode()会获取哈希码(又称为散列码),确定哈希表表上的索引,并返回int整数。特点“根据键快速找到与之对应的值”

联系与规则:

1,如果二个对象相等,hashCode一定也是相等的

2,如果二个对象相等,二个对象调用equals返回ture。

3,二个对象的hashCode一样,他们不一定相等。

4,equals方法被覆盖,hashCode方法也必须覆盖。

5,hashCode默认行为是堆上的对象独特值,如果没有重写hashCode(),则该类二个对象无论如何都不会相等。

10.ArryList与LinkList的区别?

ArryList:基于动态数组,连续存储,适合下标访问,扩容机制:因为数组长度是固定的,超过固定长度会新建立一个数组,长度扩大原来1.5倍,回收老数组。

LinkList:基于列表,可以存储在分散的内存当中。适合插入,删除,不适合查询。LinkList一般使用迭代器进行遍历。不建议使用for循环遍历,因为每一次遍历都会get方法,消耗性能大,不使用indexOf来返回元素索引,和遍历元素。用indexOf遍历list进行遍历时,当结果为空时还遍历这个列表。

以上是“java入门面试题有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: java入门面试题有哪些

本文链接: https://lsjlt.com/news/299299.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java入门面试题有哪些
    这篇文章主要为大家展示了“java入门面试题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java入门面试题有哪些”这篇文章吧。1. 谈谈你对面向对象的了解? (谈谈你对面向对象和面向过程...
    99+
    2023-06-20
  • 热门的高级Java面试题有哪些
    本篇内容主要讲解“热门的高级Java面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“热门的高级Java面试题有哪些”吧!什么是可变参数?可变参数允许调用参数数量不同的方法。请看下面例子...
    99+
    2023-06-17
  • java面试题有哪些
    这篇文章将为大家详细讲解有关java面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、什么是ARQ协议自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据...
    99+
    2023-06-20
  • Java的热门笔试试题有哪些
    今天就跟大家聊聊有关Java的热门笔试试题有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。A.一个文件里可以同时存在两个public修饰的类B.构造函数可以被重写(overrid...
    99+
    2023-05-30
    java
  • Java RabbitMQ面试题有哪些
    这篇文章主要讲解了“Java RabbitMQ面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java RabbitMQ面试题有哪些”吧!1.RabbitMQ是什么?RabbitM...
    99+
    2023-06-25
  • Java main面试题有哪些
    本篇内容介绍了“Java main面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、不用main方法如何定义一个类?  不行...
    99+
    2023-06-02
  • java面试中有哪些基础面试题
    这篇“java面试中有哪些基础面试题”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java面试中有哪些基础面试题”文章吧。作...
    99+
    2023-06-03
  • Java中有哪些Spring面试题
    本篇内容主要讲解“Java中有哪些Spring面试题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中有哪些Spring面试题”吧!谈谈你对 Spring 的理解?Spring 是一个开源...
    99+
    2023-06-16
  • Java基础面试题有哪些
    小编给大家分享一下Java基础面试题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!面试题1:JDK1.8的新特性有哪些?接口的默认和静态方法:Java 8允...
    99+
    2023-06-20
  • 有哪些Java核心面试题
    本篇内容主要讲解“有哪些Java核心面试题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些Java核心面试题”吧!01、请说出 Java 14 版本中更新的重要功能Java 14 发布于 2...
    99+
    2023-06-16
  • Java链表面试题有哪些
    这篇文章主要为大家展示了“Java链表面试题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java链表面试题有哪些”这篇文章吧。第一题题目:反转一个单链表每个节点是不变的,只是修改当前每个...
    99+
    2023-06-29
  • P6级Java面试题有哪些
    这篇文章主要介绍了P6级Java面试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、String stringBuffer和stringBuilderString:...
    99+
    2023-06-02
  • 实用的Java面试题有哪些
    这篇文章主要讲解了“实用的Java面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“实用的Java面试题有哪些”吧!1.三分钟自我介绍自我介绍这块是...
    99+
    2024-04-02
  • java内部类面试题有哪些
    这篇文章给大家分享的是有关java内部类面试题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现了Web MV...
    99+
    2023-06-14
  • java中io流面试题有哪些
    这篇文章主要介绍了java中io流面试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java可以用来干什么Java主要应用于:1. web开发;2. Android开...
    99+
    2023-06-14
  • Java中Mybatis的面试题有哪些
    这篇文章给大家分享的是有关Java中Mybatis的面试题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. MyBatis 中 #{}和 ${}的区别是什么?#{}是预编译处理,${}是字符替换。 在使用...
    99+
    2023-06-20
  • Java架构师面试题有哪些
    这篇“Java架构师面试题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java架构师面试题有哪些”文章吧。基础题目J...
    99+
    2023-06-17
  • Java程序员面试题有哪些
    这篇文章主要介绍了Java程序员面试题有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java程序员面试题有哪些文章都会有所收获,下面我们一起来看看吧。一、开场白简单的介绍一下自己的工作经历与职责,在校或者...
    99+
    2023-06-16
  • 有哪些常见的java面试题
    这篇文章主要介绍“有哪些常见的java面试题”,在日常操作中,相信很多人在有哪些常见的java面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些常见的java面试题”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-20
  • Java IO常见面试题有哪些
    这篇文章主要为大家展示了“Java IO常见面试题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java IO常见面试题有哪些”这篇文章吧。1. 什么是IO流?它是一种数据的流从源头流到目...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作