阿里最新Java面试题,摘选最具代表性49题,看了答案也不过如此

article/2025/9/21 0:13:36

本文转载自:阿里最新Java面试题,摘选最具代表性49题,看了答案也不过如此


不想当将军的士兵不是好士兵,不想成为架构师的Java程序员不是好程序员!为什么要成为架构师,为什么要进大厂?

那年十八 母校舞会
站着如喽啰
那时候 我含泪
发誓各位 必须看到我

在这里插入图片描述

1. 面向对象的特征有哪些方面?

答:面向对象的特征主要有以下几个方面:

  • 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
  • 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。
  • 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。
  • 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1. 方法重写(子类继承父类并重写父类中已有的或抽象的方法);2. 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。

2. 访问修饰符public,private,protected,以及不写(默认)时的区别?

答:区别如下: 作用域 当前类 同包 子类 其他 public √ √ √ √ protected √ √ √ × default √ √ × × private √ × × × 类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。

3. String 是最基本的数据类型吗?

答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。

4. float f=3.4;是否正确?

答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。

5. short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

答:对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。

6. Java 有没有goto?

答:goto 是Java中的保留字,在目前版本的Java中没有使用。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)

7. int 和Integer 有什么区别?

答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入不是对象的基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从JDK 1.5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。 Java 为每个原始类型提供了包装类型: 原始类型: boolean,char,byte,short,int,long,float,double 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

8. &和&&的区别?

答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(“”),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。 补充:如果你熟悉JavaScript,那你可能更能感受到短路运算的强大,想成为JavaScript的高手就先从玩转短路运算开始吧。

9. 解释内存中的栈(stack)、堆(heap)和静态存储区的用法。

答:通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;而通过new关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接书写的100、“hello”和常量都是放在静态存储区中。栈空间操作最快但是也很小,通常大量的对象都是放在堆空间,整个内存包括硬盘上的虚拟内存都可以被当成堆空间来使用。 String str = new String(“hello”); 上面的语句中str放在栈上,用new创建出来的字符串对象放在堆上,而“hello”这个字面量放在静态存储区。 补充


http://chatgpt.dhexx.cn/article/Gu8tX6jo.shtml

相关文章

Ubuntu安装MySQL并配置远程连接(适用于Ubuntu 20.04和MySQL 8.0)

下载安装MySQL sudo apt-get update #更新软件源 sudo apt-get install mysql-server #安装mysql启动Mysql-servers service mysql start修改root密码 Ubuntu在安装MySQL的时候会自动生成一个账号密码,因此我们先获取mysql随机账号用户名和初始密码&#xff08…

ubuntu安装mysql(tar.gz)

准备 0. 获取 mysql-5.5.15-linux2.6-i686.tar.gz 二进制安装文件 mysql 官网下载页面 选择 Linux-Generic 下的 Linux - Generic 2.6 (x86, 32-bit), Compressed (位数适你的linux的位数而定。我这里用的是32位的,所以我选择32位版本的mysql) 你可以在ubuntu 中…

WSL中ubuntu安装mysql数据库

安装主要分为下面的几个步骤 wsl与普通ubuntu安装的主要区别就是会在启动mysql时报错。普通ubuntu的mysql在安装完成后也会自动运行。 一、删除之前安装的mysql 没有安装可以跳过 sudo apt-get remove --purge *mysql* sudo rm -rf /etc/mysql /var/lib/mysql sudo apt-get re…

Ubuntu安装mysql(终端安装)

文章目录 1.更新源2.安装MySql服务器和客户端3.Ubuntu18.04安装过程中没有设置密码的环节(如果有让你设置密码就下面的不需要做了)4.重置用户和密码5.启动和关闭mysql启动mysql:停止mysql:重启mysql: 1.更新源 sudo apt update2.安装MySql服…

Linux Deploy Ubuntu安装MySQL

一、在Android手机安装Linux 参考https://blog.csdn.net/weixin_38235758/article/details/79219050 Github下载:https://github.com/meefik/linuxdeploy/releases, https://github.com/meefik/busybox/releases Linux Deploy配置说明:htt…

ubuntu安装mysql配置

前言: 此处使用的是ubuntu 20 (如何在windows上安装ubuntu,请参考上一篇文章) 打开命令行终端 cmd终端分别输入(以下黑色背景部分命令) (1)获取root权限 sudo su输入 apt-get up…

在Ubuntu下安装mysql数据库

在Ubuntu下安装 MySQL 数据库 一、安装MySQL 1、使用以下命令即可进行mysql安装,注意安装前先更新一下软件源以获得最新版本: $ sudo apt-get update #更新软件源$ sudo apt-get install mysql-server #安装mysql 2、启动和关闭mysql服务器&#x…

Ubuntu安装Mysql启用远程连接

1、用apt-get安装mysql #更新一下apt 仓库 sudo apt-get update#安装mysql-service sudo apt-get install mysql-server -y#也可以指定版本 (可选) sudo apt install mysql-server-5.7 2、查看Mysql的状态是否安装成功 sudo service mysql status 3…

Ubuntu安装Mysql数据库

1、首先查看Ubuntu中是否安装过mysql,使用如下命令。 dpkg -l | grep mysql 若没有安装则不会出现任何提示,如下图是安装过的。 2、安装mysql-server sudo apt install mysql-server 3、 再次验证是否安装mysql,上面有截图 dpkg -l | grep mysql rootEth002:/ho…

Ubuntu安装MySQL及常用操作

文章目录 Ubuntu安装MySQL及常用操作1、安装MySQL1.1 更新软件源1.2 下载并安装MySQL1.3 启动和关闭mysql服务器1.4 确认是否启动成功1.5 进入mysql shell界面1.6 解决中文乱码问题 2、MySQL常用操作2.1 显示数据库2.2 显示数据库中的表2.3 显示表的结构2.4 显示表中的记录2.5 …

ubuntu 安装 mysql

1.安装 mysql 在Ubuntu 18.04上,默认情况下,只有最新版本的 MySQL 包含在APT软件包存储库中。目前来说是MySQL 5.7。 首先在安装之前需要更新服务器上的软件包索引然后才能使用apt安装默认软件包: $ sudo apt update $ sudo apt install m…

ubuntu上安装mysql

场景:一Ubuntu系统作为自己学习或开发时的服务器,并在此服务器上安装mysql 步骤: 输入命令,更新软件包 输入如下命令安装mysql sudo apt install mysql-server -y安装完成 输入命令查看版本 mysql --version使用systemctl sta…

Ubuntu 安装和使用MySQL

目录 前言 安装MySQL 更新列表 安装MySQL服务器 安装MySQL客户端 配置MySQL 测试MySQL MySQL数据库基本使用 启动MySQL数据库服务 重启MySQL数据库服务 停止MySQL数据库服务 查看MySQL运行状态 设置MySQL服务开机自启动 停止MySQL服务开机自启动 MySQL的配置文件…

ubuntu安装mysql教程

ubuntu安装mysql教程 一.首先卸载掉原来的mysql 第一步,依次执行下面的语句 sudo apt-get autoremove --purge mysql-server sudo apt-get remove mysql-server sudo apt-get autoremove mysql-server sudo apt-get remove mysql-common 第2步 清理残留数据 d…

ubuntu安装mysql数据库方法

ubuntu基于linux的免费开源桌面PC操作系统,十分契合英特尔的超极本定位,支持x86、64位和ppc架构。一个比较流行的Linux操作系统,不仅简单易用,而且和Windows相容性非常好。那么在ubuntu中如何安装mysql数据库呢? 在ubuntu安装mys…

Ubuntu 安装 Mysql【详细步骤】

文章目录 主要内容安装并设置 mysql安装 mysql设置 mysql首次登录数据库 配置远程访问修改配置文件mysql 授予权限重启 mysql 测试远程访问建立访问连接workbench 访问workbench 增删查改 参考 主要内容 本文主要是实现在虚拟机 Ubuntu 18.04 成功安装 MySQL 5.7,并…

ubuntu篇---ubuntu安装mysql教程

ubuntu篇---ubuntu安装mysql教程 一. 首先卸载掉原来的mysql第一步,依次执行下面的语句第2步 清理残留数据第三步 验证原有主机上是否安装mysql: 二. 安装mysql三. 修改密码 加粗样式ubuntu安装mysql教程 一. 首先卸载掉原来的mysql 第一步&#xff0c…

ubuntu安装mysql详细过程

1.安装mysql-server sudo apt install mysql-server2.登录 sudo mysql -u root -p两点要注意: 添加sudo; password中,任意密码都能登录 3.修改登录密码 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 123456;mysql8.0以后的版本…

filezilla显示乱码(已解决)

问题:filezilla连接上站点后显示乱码,如下图 解决方案: 1、filezilla连接上站点后,点击菜单栏的“文件”选项,下拉选择“添加当前连接到站点管理器”。 2、在弹出的“站点管理器”窗口中,左侧选择“新站点…