面试突击指南:Java基础面试题2
面向对象和集合
1. 面向对象和面向过程的区别
面向过程:面向过程的编程方式是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,并在使用的时候逐个调用。这种方式性能较高,因此在单片机和嵌入式开发中经常采用面向过程开发。
面向对象:面向对象的编程方式是把问题分解成各个对象,建立对象的目的是描述某个事物在解决整个问题过程中所发生的行为。面向对象具有封装、继承、多态的特性,因此易于维护、复用和扩展,可以设计出低耦合的系统。然而,面向对象的性能比面向过程要低。
面向对象编程(OOP)和面向切面编程(AOP):
- OOP:通过类和对象的方式,封装数据和行为,强调对象的行为和交互。
- AOP:通过切面将横切关注点(如日志、事务管理等)从业务逻辑中分离,减少代码重复和耦合。
2. 介绍下Java中的基本数据类型
| 基本类型 | 大小(字节) | 默认值 | 封装类 |
|---|---|---|---|
| byte | 1 | (byte)0 | Byte |
| short | 2 | (short)0 | Short |
| int | 4 | 0 | Integer |
| long | 8 | 0L | Long |
| float | 4 | 0.0f | Float |
| double | 8 | 0.0d | Double |
| boolean | - | false | Boolean |
| char | 2 | \u0000(null) | Character |
需要注意:
- int是基本数据类型,Integer是int的封装类,属于引用类型。int默认值是0,而Integer默认值是null,因此Integer能区分出0和null的情况。一旦Java看到null,就知道这个引用还没有指向某个对象。在任何引用使用前,必须为其指定一个对象,否则会报错。
- 基本数据类型在声明时系统会自动给它分配空间,而引用类型声明时只是分配了引用空间,必须通过实例化开辟数据空间之后才可以赋值。数组对象也是一个引用对象,将一个数组赋值给另一个数组时只是复制了一个引用,因此通过某一个数组所做的修改在另一个数组中也看的见。虽然定义了boolean这种数据类型,但在Java虚拟机中没有任何供boolean值专用的字节码指令。Java表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素占8位。这样我们可以得出,boolean类型在单独使用时占4个字节,在数组中占1个字节。使用int的原因是,对于当下32位的处理器来说,一次处理32位数据具有高效存取的特点。
3. 标识符的命名规则
标识符的含义:指在程序中自己定义的内容,如类的名字、方法名称以及变量名称等,都是标识符。
命名规则(硬性要求):标识符可以包含英文字母,0-9的数字,$以及_,但不能以数字开头,且不能是关键字。
命名规范(非硬性要求):
- 类名规范:首字符大写,后面每个单词首字母大写(大驼峰式)。
- 变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。
- 方法名规范:同变量名。
4. instanceof关键字的作用
instanceof 是 Java 中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:
boolean result = obj instanceof Class
其中 obj 为一个对象,Class 表示一个类或者接口。当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果 result 返回 true,否则返回 false。
注意:编译器会检查 obj 是否能转换成右边的 Class 类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。
int i = 0;
System.out.println(i instanceof Integer); // 编译不通过,i 必须是引用类型,不能是基本类型
System.out.println(i instanceof Object); // 编译不通过Integer integer = new Integer(1);
System.out.println(integer instanceof Integer); // true// false ,在 Java SE 规范中规定,如果 `obj` 为 `null`,返回 `false`
System.out.println(null instanceof Object);
5. 重载和重写的区别
重写(Override)
重写发生在父类与子类之间。子类继承父类的方法,但可以重新定义方法体,从而实现不同的功能。重写要求方法名、参数列表和返回类型(除非子类方法的返回值是父类方法返回值的子类)必须相同,且子类方法的访问修饰符不能比父类方法更严格。
public class Father {public void sayHello() {System.out.println("Hello");}
}class Son extends Father {@Overridepublic void sayHello() {System.out.println("hello by son");}public static void <相关文章:
面试突击指南:Java基础面试题2
面向对象和集合 1. 面向对象和面向过程的区别 面向过程:面向过程的编程方式是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,并在使用的时候逐个调用。这种方式性能较高,因此在单片机和嵌入式开发中经常采用面向过程开发。 面向对象:面向对象的编程方式是把问…...
MySQL快速安装(mysql8.0.30区别之前yum安装)
目录 一.初始化环境并解压 二.创建程序用户管理 三.修改mysql目录和配置文件的权限 四.修改配置文件 五.设置环境变量,申明/宣告mysql命令便于系统识别 六.初始化数据库 七.设置系统识别,进行操作 八.初始化数据库密码 九.用户并设置密码 十.赋…...
俄罗斯防空系统
俄罗斯的S系列防空系统是一系列先进的地对空导弹系统,旨在防御各类空中威胁,包括飞机、无人机、巡航导弹和弹道导弹。以下是几种主要的S系列防空系统: 1. **S-300系统**: - **S-300P**:最早期的版本,用…...
文件上传漏洞---Pyload
文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 本文重点从靶场案例分析文件上传漏洞常见的Pylod,本文演示靶场upload-labs 一.文件类型---Pyload 不同的文件对应不同的文件类型,后端代码通过限制特定的文件类型…...
应用案例 | 如何监测高价值货物在物流运输过程中受到的振动和冲击?全面保障货物安全
一、货物运输 不同种类的货物对运输的要求不同,钢铁、煤炭、矿石等大宗物资通常对运输要求较低,而电子产品、IT 产品、家电等高价值敏感类货物则更强调运输的安全性和时效性,往往希望能尽可能安全和快速送达这类货物,使之尽快进入…...
VMware17安装Ubuntu20版本-保姆级别
首先需要安装好VMware和Ubuntu20的镜像,在网上搜索Ubuntu镜像下载即可,最后选择国内镜像站下载,这样更快点,然后打开VMware。 1.创建虚拟机: 2.选择自定义: 3.默认,继续下一步: 4.选…...
初探Xcode工具
初探Xcode工具 Xcode是苹果公司为Mac OS X和iOS平台开发软件的集成开发环境(IDE)。作为苹果开发者的首选工具,Xcode提供了一系列强大的功能,帮助开发者设计、编写、调试和发布应用程序。本文将对Xcode进行初步探索,介…...
小迪安全v2023笔记 1-18
小迪安全v2023笔记 1-18 棱角社区 文章目录 1. 基础入门1. 正向shell与反向shell2. web应用3. 抓包,封包,协议,app,小程序,pc应用,web应用 2. 信息打点1. 常见信息获取2. 文件泄露3. 常见阻碍4. CDN绕过&a…...
RabbitMQ WEB管理端介绍
页面功能概览 Overview(概述)Connections(连接)Channels(通道)Exchanges(交换器)Queues(队列)Admin(用户管理)。 1. Overview(概述) 主要分为三部分 1.1 Queued messages(所有队列的消息情况) Ready:待消费的消息总数Unacked:待应…...
三阶魔方公式详解及快速解法方法介绍
三阶魔方公式详解及快速解法方法介绍 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来深入探讨三阶魔方的公式及其快速解法方法。无论是初学者还是已经…...
前端的拖拽和缩放(缩放以鼠标为中心)
效果: 拖拽和缩放(缩放以鼠标为中心) 代码具体实现如下: 但是有几个注意点 (1)为什么需要设置 transform-origin: 0 0; 缩放时以鼠标为中心进行缩放。这意味着需要手动计算缩放过程中元素的位移&#…...
【Vue】单向和双向数据绑定
在 Vue.js 中,数据绑定可以分为单向数据绑定和双向数据绑定两种类型。 单向数据绑定 单向数据绑定是指数据从模型流向视图,即数据的变化会自动反映到视图中,但视图中的变化不会自动反映回模型。Vue.js 中的单向数据绑定主要通过以下方式实现…...
HDFS学习
3.5 HDFS存储原理 3.5.1 冗余数据保存 作为一个分布式文件系统,为了保证系统的容错性和可用性,HDFS采用了多副本方式对数据进行冗余存储,通常一个数据块的多个副本会被分布到不同的数据节点上。 如图所示,数据块1被分别存放到…...
Winform使用HttpClient调用WebApi的基本用法
Winform程序调用WebApi的方式有很多,本文学习并记录采用HttpClient调用基于GET、POST请求的WebApi的基本方式。WebApi使用之前编写的检索环境检测数据的接口,如下图所示。 调用基于GET请求的无参数WebApi 创建HttpClient实例后调用GetStringAsync函数获…...
python–基础篇–正则表达式–是什么
文章目录 定义一:正则表达式就是记录文本规则的代码定义一:正则表达式是一个特殊的字符序列,用于判断一个字符串是否与我们所设定的字符序列是否匹配,也就是说检查一个字符串是否与某种模式匹配。初识 Python 正则表达式 定义一&a…...
15 个适用于企业的生成式 AI 用例
作者:来自 Elastic Jennifer Klinger 关于生成式人工智能及其能做什么(和不能做什么)有很多讨论。生成式人工智能(例如大型语言模型 - LLMs)利用从大量训练数据中学习到的模式和结构来创建原创内容,而无需存…...
若依框架中组件使用教程
...
秋招力扣刷题——数据流的中位数
一、题目要求 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: MedianFinder() 初始化 …...
51单片机学习——LED功能一系列实现
目录 一、开发前准备 二、点亮LED 三、LED闪烁 四、LED流水灯 五、LED流水灯plus 一、开发前准备 开发工具软件 烧录软件 其次还需要一块51单片机学习开发板及原理图 keil创造project文件及开启生成.hex文件 二、点亮LED 看二位进制对照原理图; #include <…...
互联网大厂核心知识总结PDF资料
我们要敢于追求卓越,也能承认自己平庸,不要低估3,5,10年沉淀的威力 hi 大家好,我是大师兄,大厂工作特点是需要多方面的知识和技能。这种学习和积累一般人需要一段的时间,不太可能一蹴而就&…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
