JAVA相关面试题分享

Java 基础知识

1.1 面向对象的特征(了解)

面向对象的特征:封装、继承、多态、抽象。 封装:就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对 象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的 公开,别人只能用我提供的功能实现需求,而不知道是如何实现的。增加安全性。 继承:子类继承父类的数据属性和行为,并能根据自己的需求扩展出新的行为,提 高了代码的复用性。 多态:指允许不同的对象对同一消息做出相应。即同一消息可以根据发送对象的不 同而采用多种不同的行为方式(发送消息就是函数调用)。封装和继承几乎都是为多态而准 备的,在执行期间判断引用对象的实际类型,根据其实际的类型调用其相应的方法。 抽象表示对问题领域进行分析、设计中得出的抽象的概念,是对一系列看上去不同, 但是本质上相同的具体概念的抽象。在 Java 中抽象用 abstract 关键字来修饰,用 abstract 修饰类时,此类就不能被实例化,从这里可以看出,抽象类(接口)就是为了继承而存在的。

1.2 Java 的基本数据类型有哪些(了解)

1.3JDK JRE JVM 的区别 (必会)

JDK(Java Development Kit)是整个 Java 的核心,是 java 开发工具包,包括 了 Java 运行环境 JRE、Java 工具和 Java 基础类库。

JRE(Java Runtime Environment)是运行 JAVA 程序所必须的环境的集合,包 含 java 虚拟机和 java 程序的一些核心类库。

JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,是整个 java 实现跨平台 的最核心的部分,能够运行以 Java 语言写作的软件程序。

1.4 重载和重写的区别(必会)

重载: 发生在同一个类中,方法名必须相同,参数类型不同.个数不同.顺序不同, 方法返回 值和访问修饰符可以不同,发生在编译时。 重写: 发生在父子类中,方法名.参数列表必须相同,返回值范围小于等于父类, 抛出的异 常范围小于等于父类, 访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能 重写该方法。

1.5 Java 中==和 equals 的区别(必会)

== 的作用: 基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同 equals 的作用: 引用类型:默认情况下,比较的是地址值。 特:String、Integer、Date 这些类库中 equals 被重写,比较的是内容而不是地址!3 面试题:请解释字符串比较之中 “ == ” 和 equals() 的区别? 答: ==:比较的是两个字符串内存地址(堆内存)的数值是否相等,属于数值比较; equals():比较的是两个字符串的内容,属于内容比较。

1.6 String、StringBuffer、StringBuilder 三者之间的区别(必会)

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)

String 中的 String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[] ,String 对象是不可变的,也就可以理解为常量,线程安全。 AbstractStringBuilder 是 StringBuilder 与 StringBuffer 的公共父类,定义了 一些字符串的基本操作,如 expandCapacity、append、insert、indexOf 等公共方法。 StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全 的。 StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的。

小结: (1)如果要操作少量的数据用 String; (2)多线程操作字符串缓冲区下操作大量数据用 StringBuffer; (3)单线程操作字符串缓冲区下操作大量数据用 StringBuilder。

1.7 接口和抽象类的区别是什么?(必会)

实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接 口。 构造函数:抽象类可以有构造函数;接口不能有。 main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方 法。 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访 问修饰符。

1.8 string 常用的方法有哪些?(了解)

indexOf():返回指定字符的索引。

charAt():返回指定索引处的字符。

replace():字符串替换。

trim():去除字符串两端空白。

split():分割字符串,返回一个分割后的字符串数组。

getBytes():返回字符串的 byte 类型数组。

 length():返回字符串长度。

toLowerCase():将字符串转成小写字母。

toUpperCase():将字符串转成大写字符。

substring():截取字符串。

equals():字符串比较。

1.9 反射(了解)

在 Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有 的 属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获 取信息 以及动态调用对象方法的功能成为 Java 语言的反射机制。 获取 Class 对象的 3 种方法 : 调用某个对象的 getClass()方法 Person p=new Person(); Class clazz=p.getClass(); 调用某个类的 class 属性来获取该类对应的 Class 对象 Class clazz=Person.class; 使用 Class 类中的 forName()静态方法(最安全/性能最好) Class clazz=Class.forName("类的全路径"); (最常用)

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

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

相关文章

关系(五)利用python绘制连接散点图

关系(五)利用python绘制连接散点图 连接散点图(Connected Scatterplot)简介 连接散点图(点线图)是折线图的一种,与散点图类似。但添加了按数据点出现顺序的连线,以此来表示两个变量…

nginx+Tomcat动静分离

本⽂的动静分离主要是通过nginxtomcat来实现,其中nginx处理图⽚、html等静态的⽂ 件,tomcat处理jsp、do等动态⽂件. 实验环境 192.168.200.133 nginx反向代理 192.168.200.129 static 192.168.200.130 dynamic 步骤 修改三台主机名 [rootadmin ~]#…

Llama 3 ——开源大模型Llama 3从概念到使用

概述 Meta公司自豪地宣布推出其最新的开源大型语言模型——Llama 3,这是一款专为未来AI挑战而设计的先进工具。Llama 3包含两个不同参数规模的版本,以满足多样化的计算需求: 8B版本:优化了在消费级GPU上的部署和开发流程&#xf…

Hadoop概述

大数据处理技术 对大数据技术的基本概念进行简单介绍,包括分布式计算、服务器集群和 Google 的 3 个大数据技术。 分布式计算 对于如何处理大数据,计算机科学界有两大方向。 第一个方向是集中式计算,就是通过不断增加处理器的数量来增强单…

前端请求没问题,后端正常运行,但查不出数据

写代码时写得快了些,Orders.的订单状态写错了CONFIRMED 改成COMPLETED

python自动化操作docx

使用Python自动化处理Word文档 在日常工作中,我们经常需要处理大量的Word文档,这时自动化脚本就显得尤为重要。本文将介绍如何使用Python中的python-docx库来创建和修改Word文档。 安装python-docx库 在开始之前,确保你已经安装了python-d…

手搓数组栈(C语言)

stack.h #pragma once#include <stdio.h> #include <stdlib.h> #include <assert.h> #include <stdbool.h> // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* a;int top; // 栈顶int capacity; // 容量 }Stack; //…

ping命令操作记录

1&#xff0c;ping 主机可查看主机是否在线 2&#xff0c;ping -a参数&#xff0c;解析主机的名称 3&#xff0c;ping -r 跟踪打印路由信息 ping命令的作用&#xff1a;确认目标主机是否存活&#xff0c;确定网络是否畅通 ping的原理&#xff1a;ping发送ICMP&#xff08;互联…

数据库(MySQL)—— 数据类型

数据库&#xff08;MySQL&#xff09;—— 数据类型 MySQL中的数据类型数值类型字符串类型时间戳类型 一个实例 我们今天来看MySQL中的数据类型&#xff1a; MySQL中的数据类型 MySQL中的数据类型有很多&#xff0c;主要分为三类&#xff1a;数值类型、字符串类型、日期时间类…

SpringBoot实现图片上传(个人头像的修改)

SpringBootlayui实现个人信息头像的更改 该文章适合对SpringBoot&#xff0c;Thymeleaf&#xff0c;layui入门的小伙伴 废话不多说&#xff0c;直接上干货 Springbootlayui实现头像更换 前端公共部分代码 HTML页面代码 <div class"layui-card-header" style&quo…

远程桌面的端口配置与优化

在现代企业环境中&#xff0c;远程桌面连接已成为日常工作中不可或缺的一部分。然而&#xff0c;随着网络攻击的增加&#xff0c;确保远程桌面连接的安全性变得尤为重要。其中一个关键的安全因素是端口配置。 一、远程桌面默认端口 远程桌面协议&#xff08;RDP&#xff09;默…