JAVA面试库

1、基础

1.1、面向对象编程有哪些特性

1、抽象

抽象就是对同一个目标的共有的属性、特征、方法、功能、行为等进行抽取并归纳总结,它是一种将复杂现实简单化为模型的过程,它关注的是对象行为,而不用关注具体的实现细节。

在面向对象编程中,抽象主要是通过抽象类和接口来实现的:

  • 抽象类是不能被实例化的,它包含一些抽象的方法和具体的实现方法。
  • 接口是一种特殊的抽象类型,一般仅包含抽象方法的声明,在java8+中可以包含默认的方法和静态方法实现

抽象可以在不知道具体实现的情况下编程,提高了代码的灵活性和拓展性。

2、封装

封装就是指隐藏对象的属性和实现细节,将对象的数据、属性、行为、方法等组合到下一个单一的单元中,并通过访问修饰符控制成员属性的访问和修改权限,再通过特定公开的方法setter和getter方法暴露给外面访问。

private String name = "ccshen";public String getName(){return name;
}

name属性被private封装起来,外面只能通过对象的getName才能访问。

3、继承

继承是一种实现代码重用的机制,允许一个类继承另一个类的成员和方法,使得子类也能具有父类相同的行为。

继承是通过 extends 关键字实现的:

public class Dog extends Animal{@Overridevoid eat(){System.out.printIn("狗吃饭")}
}

java类之间只能实现单继承,接口之间可以多继承。

4、多态 

多态指同一个行为在不同情况下的多种不同表现形式或形态,主要体现为同一个接口或父类的引用指向不同的实现对象,并能够在运行时动态决定调用的具体实现,这使得程序具有更好的灵活性和可扩展性。

Animal animal = new Dog();
animal.eat();

通过父类引用变量指向子类时,当调用父类的方法时,它实际上会根据实际对象的类型,去调用子类中的方法。

1.2、JDK与JRE的区别

JDK:是整个Java的核心,包含了Java的运行环境(JRE)和一系列Java开发工具完整包。

JRE:是Java程序的运行环境,包含JVM、Java核心类库等。JRE只能运行Java应用程序,不能用于编译开发,它是JDK的子集。

安装JDK后就有JRE目录,JRE属于JDK的子集。

1.3、如何编译和运行Java文件  

使用javac命令来编译.java文件        

javac Test.java

运行后会生成Test.class文件

1.4、Java标识符命名规则

  • 标识符只能由字母、数字、下划线(_)、美元符号($)组成
  • 标识符不能由数字开头
  • 标识符不能使用Java关键字,比如 for 
// 类名
class User(){// 变量名int firstName;// 常量名private static final int default_code = 60;// 合法方法名public void setFirstName(int firstName){this.firstName = firstName;}
}

1.5、Java定义常量

Java常量是指使用final修饰的变量,它们的值在初始化后不能被改变

final int age = 30;

加修饰范围,以及静态关键字

private static final age = 30;

常量的作用域可以是类级别(普通、静态),方法级别。

1.6、Java有哪几种基本数据类型 

Java有 4类 8种 数据类型

整数型:byte、short、int、long

浮点型:float、double

字符型:char

布尔型:boolean

1.7、== 和 equals 比较有什么区别

==

如果比较的对象是基本的数据类型,则比较的是数值是否相同

如果比较的对象是引用数据类型,则比较的是对象的地址是否相同

equals

equals是Object类提供的方法,接收Object参数类型

用来比较两个对象是否相等,默认比较的是对象地址,不能用于比较基本数据类型,但可以是包装类型,所以,如果是要比较两个对象的值是否相等,一般需要重写equals与hashcode方法 。

比如常用的String、Date、Integer等类都重写了equals和hashcode方法,比较的是存储对象的内容是否相等,而不是堆内存地址。     

1.8、s1 = s1 + 1 和 s1 += 1 区别 

如果s1原有数据类型小于int类型,则s1 = s1 + 1发生编译异常

因为s1是short类型,1是int类型,所以计算结果为int类型,它不能自动转换为比它小的数据类型,所以发生编译异常。

解决办法使用类型强制转换:

public static void main(String[] args){short s1 = 1;s1 = (short)(s1 + 1);// s1 = 2
}

使用s1 += 1不会有问题,因为 s1 += 1;支持隐式强制类型转换

public static void main(String[] args){short s1 = 1;s1 += 1;// s1 = 2
}

1.9、float n = 1.8 有错吗

有错!!!

因为double是双精度型浮点型,float是单精度型浮点型。

数字1.8默认是double类型,如果将一个double类型的值赋值给一个float类型的变量时,需要进行类型转换,因为double类型的精度高于float类型。

这种情况,如果不显示进行类型转换,编译器报错,因为可能会有精度丢失

因此需要强制类型转换或后面加上F:

float n = (float)1.8;

float = 1.8F;

1.10、i++ 与 ++i 区别

i++是先赋值后加1,++1是先加1后赋值

 

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

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

相关文章

中关村论坛 | 区块链与隐私计算论坛倒计时1天!

「区块链与隐私计算论坛」 倒计时1天! 地址:中关村国家自主创新示范区会议中心(新建宫门路2号)万春厅 时间:2024年4月27日,下午14:30-17:00 本次论坛围绕释放数据要素价值深入探讨如何将区块链与隐私计算…

【Docker学习】查询容器镜像的docker search

这个命令是使用Docker的必备技能。我们使用的各种官方镜像,一般都能通过这个命令找到。 命令: docker search 描述: 在Docker Hub上查找镜像。Docker Hub是为开发者和开源贡献者设计的容器镜像注册中心,它允许用户查找、使用和…

用python写了一个把iptv节目列表换成txt 适配diyp

这几天抓取了很多iptv,需要列表,列表太多麻烦,所以编写个小程序python转换一下 代码如下 # 读取原始文本文件 with open(iptv.txt, r, encodingutf-8) as file:lines file.readlines()# 定义存储频道信息的字典 channels {"央视频道&…

MySQL中order by排序时,数据存在null,排序在最前面

order by排序是最常用的功能,但是排序有时会遇到数据为空null的情况,这样排序就会乱了,这里以MySQL为例,记录我遇到的问题和解决思路。 sql 排序为 null 值问题: 排序时我们用 receive_date(一个统计的时间&#xff…

【js刷题:数据结构链表之设计链表】

设计链表 一、题目二、题解 一、题目 二、题解 // 定义节点类,每个节点都有一个值和一个指向下一个节点的引用 class LinkNode{constructor(val,next){ // 构造函数,接收节点值和下一个节点的引用this.valval // 节点的值this.nextnext // 指…

欣赏一个尚未关闭的python运行时bug

这是一个语言的运行时错误,在linux环境,跨语言使用共享内存时,会触发。它会在python程序退出时,自行销毁sharedMemory,即便此时还有其他的进程在使用——这会让C/Python跨进程调用几乎没有办法进行。 python程序运行完…

校园科普气象站的工作原理

TH-XQ3校园科普气象站是学校为了进行气象科普教育而设立的一种特殊设施。它不仅是一个能够实时监测和记录各种气象参数的气象站,更是一个促进学生对气象科学兴趣和理解的重要平台。 校园科普气象站通常包括一系列的气象观测设备和相关的科普设施。这些设备包括但不限…

Ubuntu20.04调试功能包的一些报错解决办法【更新中2024.05.14】

一、Could not find a package configuration file provided by “catkin_virtualenv” 解决办法: sudo apt install ros-noetic-catkin-virtualenv二、 ERROR: Could not find a version that satisfies the requirement pip-tools5.1.2 (from versions: none) …

electron 使用两个页面(额外添加一个html文件)

需求:打开窗口 (加载本地的html页面) 并播放视频资源 环境 electron 28.1.3 electron-forge 7.2.0 思路:因为要加载新弹出一个窗口并播放资源,可以自己加载一个外部的页面或者加载一个本地的页面,使用本地的会好些。让electron-…

【制作100个unity游戏之26】unity2d横版卷轴动作类游戏5(附带项目源码)

最终效果 系列导航 文章目录 最终效果系列导航前言三段攻击攻击设置只对敌人造成伤害限制可以移动攻击问题 角色连续按四下攻击,最后会多a一下问题:站在原地连续攻击野猪,只有第一下攻击野猪才掉血,后面的攻击野猪不掉血源码完结 …

深⼊理解指针(5)

目录 1. 回调函数是什么?1.1 使用回调函数修改 2. qsort使⽤举例2.1 使⽤qsort函数排序整型数2.2 使⽤qsort排序结构数据按年龄排序2.3 使⽤qsort排序结构数据按名字排序2.4整体代码 3. qsort函数的模拟实现3.1 整型数组的实现3.2 结构体按名字排序实现3.3 结构体按…

蓝桥杯练习系统(算法训练)ALGO-941 P0601字符删除

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch&#xff0c…

java数据结构与算法(二叉树中序遍历)

前言 二叉树的中序遍历是一种特定的遍历方法,按照左子树、根节点、右子树的顺序进行遍历。如果二叉树为空,则遍历结束并返回;否则,首先递归遍历左子树,然后访问根节点,最后递归遍历右子树 实现原理 中序…

JavaScript事件监听

JavaScript事件监听是指在某个元素上监听特定事件的触发,并在事件触发时执行相应的函数。事件可以是用户的鼠标操作、键盘操作、页面加载等等。 在JavaScript中,可以使用addEventListener方法来添加事件监听器。它接受三个参数:事件类型、要…

第3章Spring Boot进阶,开发社区核心功能【仿牛客网社区论坛项目】

第3章Spring Boot进阶,开发社区核心功能【仿牛客网社区论坛项目】 前言推荐项目总结第3章Spring Boot进阶,开发社区核心功能1.过滤敏感词2.发布帖子3.帖子详情4.事务管理5.显示评论6.添加评论7.私信列表8.发送私信9.统一处理异常10.统一记录日志 最后 前…

如何使用ffmpeg从mp3中删除ID3音频标签图像(或元数据)

本文介绍了如何使用ffmpeg从mp3中删除ID3音频标签图像(或元数据)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 FFMPEG确实是一个很棒的工具.我知道它可以编辑ID3标签,甚至可以连…

Date计算年龄:

方法一: Date dateSimpleDateFormat(“yyyy-MM-dd”).parse(“2000-08-19); LocalDate localDateLocalDate.now(); LocalDate localDate1date.toInstant.atZone(ZoneId.systemDefualt()).toLocalDate(); Int ageLocalDate localDate1.getYear()-LocalDate local…

照片误删如何恢复?这些方法帮你重拾回忆!

手机照片是我们记录美好时刻的重要工具。但有时我们会因为不小心或者错误操作而导致珍贵照片的丢失。那些与家人、朋友共度的美好时刻、旅途中的风景、重要的纪念日,一旦删除,就如同从记忆中抹去,令人惋惜不已。幸运的是,随着科技…

Spring AOP(概念,使用)

目录 Spring AOPAOP是什么什么是Spring AOPAOP实际开发流程1. 引入依赖2. 编写AOP程序 Spring AOP详解Spring AOP中的核心概念Spring AOP的通知类型六种类型PointCutOrder(切面优先级) Spring AOP AOP是什么 Aspect Oriented Programminig(面向切面编程)切面指的是某一类特定…

Oceanbase 4.3特性解析:用物化视图来优化复杂查询

如果你是一位数据分析师,需要在包含数百万行数据的数据库中频繁地检索特定信息,而每次这样的查询都伴随着复杂的计算,耗费大量时间和资源。你可以考虑采用物化视图这一功能,提高查询效率。 物化视图是什么? 物化视图…