Java面试宝典 1.13~1.31【2020.5 Beta版】
Java面试宝典 1.13~1.31【2020.5 Beta版】
<a name="14cb060b"></a>
1.Java基础
<a name="22b8b366"></a>
1.13 静态变量与实例变量的区别?
静态变量 | 实例变量 | |
---|---|---|
定义 | 使用static关键字声明的 | 实例变量在类中声明,但是在方法,构造函数或其他块之外 |
初始化 | 属于类,只要加载了类的字节码,就会被分配空间 | 必须创建实例对象,才会被分配空间 |
加载次数 | 初始化加载一次 | 每创建一次对象加载一次 |
<a name="3360eeec"></a>
1.14 是否可以从一个static方法内部发出对非static方法的调用?
<br />不可以,static方法调用时不需要创建对象,非static方法的调用需要创建实例,那在这个时刻,就像是你想找对象秀恩爱,你对象还没出生,这不扯呢<br />
<a name="6c5ca606"></a>
1.15 Math.round(1.5)等于多少?Math.round(-1.5)又等于多少?
// Math.round 返回一个四舍五入的值
Math.round(1.5) = 2
Math.round(-1.5) = -1
//
Math.ceil() 向上取整
Math.floor() 向下取整
<a name="74f218ae"></a>
1.16 下面的代码有什么不妥之处?
// 1
if(str.equals("test")){}// 2
System.out.println(0.1+0.2);
<br />第一个 str 为 null的话会抛出空指针异常,所以改为 "test".equals(str)<br />第二个会输出0.30000000000000004,改成<br />
System.out.println(new BigDecimal(String.valueOf(0.1)).add(new BigDecimal(String.valueOf(0.2))));
<a name="76fb7dfa"></a>
1.17 java中作用域 public,protected,private和默认不写时的区别
作用域 | 说明 |
---|---|
public | 可以被任何类访问 |
protected | 可以被同一包中的所有类访问,被所有子类访问,子类没有在同一包中也可以访问 |
private | 只能够被当前类的方法访问 |
缺省 | 无访问修饰符,可以被同一包中的所有类访问,如果子类没有在同一个包中,也不能访问 |
<a name="2553c675"></a>
1.18 重载与重写的区别
<br />很多,面试的时候就捡简要的说<br />
- 重载在一个类中,重写发生在父子类
- 重载是可以在一个类中有多个重名但参数列表不同,参数列表要个数或数据类型不同,重写则返回值和形参都不能改变
- 重写的方法只能比父类抛出更少的异常,并且访问限制符也只能比父类大<br />
ps: 参数相同,但返回值相同,那不叫重载,错误写法
<br />基本上回答这些就OK<br />扩展:方法的重载与重写都是实现多态的方式,区别是前者是编译时的多态性,后者是运行时的多态性,重写遵循里氏代换原则,就是子类可以扩展父类的功能,但不能改变父类原有的功能<br />
<a name="badee970"></a>
1.19 Integer与int的区别
- Integer是int的包装类,可以为 null 值
- int是8种原始数据类型之一<br />
8种原始数据类型与其包装类型
原始 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
boolean | Boolean |
char | Character |
float | Float |
double | Double |
1.20 构造器Constructor是否可被override?
<br />构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload<br />
<a name="bdd0c610"></a>
1.21 java的接口可以继承接口吗?接口中可以定义静态或者默认方法吗?
<br />java的接口可以继承接口,第二个在jdk8之后也支持了,可以写静态方法体,但是默认方法要用default修饰符<br />
public interface TestInterface implements A,B,C{ static void staticMethod() { System.out.println("static method"); }default void defaultMethod() { System.out.println("default method"); }
}
<a name="dcf93c57"></a>
1.22 抽象类可以实现接口吗?抽象类是否可以继承具体类?抽象类中是否可以有静态main方法?
- 抽象类可以实现接口
- 抽象类可以继承具体类
- 抽象类中可以有静态main方法
<br />抽象类可以实现接口,可以不必须实现接口中的所有方法<br />
<br />抽象类与普通类的区别<br />
- 前者不能实例化
- 前者允许存在抽象方法
- 后者实现接口必须要实现接口中所有方法
<a name="09764d9b"></a>
1.23 clone()有什么作用?
<br />super.clone()<br />拷贝使用<br />
package erdan.demo;public class TestClone {public static void main(String[] args) throws CloneNotSupportedException {Demo demo = new Demo();demo.a = 1;demo.b = 2;Demo demo2 = (Demo) demo.clone();demo2.a = 100;System.out.println(demo.a + " " + demo.b);System.out.println(demo2.a + " " + demo2.b);}static class Demo implements Cloneable {int a;int b;public Object clone() throws CloneNotSupportedException {return super.clone();}}
}
<a name="4e1b36ed"></a>
1.24 面向对象的特征
特征 | 总结 |
---|---|
封装 | 隐藏对象的属性与实现细节,对外提供公开的访问接口 |
抽象 | 将一类对象共同特征总结出来构造类的过程 |
继承 | 从已有类得到继承信息创建新类的过程 |
多态 | 指允许不同子类型的对象对同一消息作出的不同响应 |
<a name="03cf2641"></a>
1.25 Java中实现多态的机制是什么?
<br />答:父类中有方法 fun(),子类B与C分别继承与重写了fun()方法,当创建一个 A a = new B()时,a.fun()调用的是B中的fun(),假若是new C(),那么调用的就是C中的fun()方法,怎么判断使用的是哪个类的fun(),就是动态绑定,这个现象,就是多态<br />
1.26 abstract class 与 interface 有什么区别?
- abstract class可以有构造方法,而interface不行
- 单继承(抽象类),多实现(接口)
- 方法类型:接口只能有抽象方法。抽象类可以具有抽象和非抽象方法。从Java 8开始,接口还可以具有默认方法和静态方法。
- 最终变量:在Java接口中声明的变量默认为final,抽象类可能包含非 final 变量。
- 变量类型:抽象类可以具有 final,非 final,static和非 static 变量。接口只有 static 变量和 final 变量。
- 实现:抽象类可以提供接口的实现。接口无法提供抽象类的实现。
- 继承与抽象:可以使用关键字“ implements”来实现Java接口,而可以使用关键字“ extends”来扩展抽象类。
- 数据成员的可访问性:默认情况下,Java接口的成员是公共的。Java抽象类可以具有private,protected修饰的类成员
- 接口是用来约束类的,抽象类基本是用来代码复用的
1.30 抽象的方法可以是静态的吗?abstract与synchronized可以一起使用吗?
<br />用static声明方法表明这个方法在不生成类的实例时可直接被类调用,而abstract方法不能被调用,所以不能为静态的。<br />synchronized作用在具体的方法上才有意义,所以不行<br />
1.31 什么是内部类?Static Nested Class 与 inner class 不同点?
<br />内部类顾名思义就是在类内部的一个类,内部类中不能定义静态成员<br />Static Nested Class 静态内部类,不依赖于外部实例被实例化,通常的内部类需要在外部实例化后才能实例化。

喜欢的朋友记得点赞、收藏、关注哦!!!
相关文章:
Java面试宝典 1.13~1.31【2020.5 Beta版】
Java面试宝典 1.13~1.31【2020.5 Beta版】 <a name"14cb060b"></a> 1.Java基础 <a name"22b8b366"></a> 1.13 静态变量与实例变量的区别? 静态变量实例变量定义使用static关键字声明的实例变量在类中声明,但…...
调度系统:使用 Airflow 对 Couchbase 执行 SQL 调度时的潜在问题
使用 Airflow 对 Couchbase 执行 SQL 调度时,通常情况下不会直接遇到与 Couchbase 分布式特性相关的异常,但在某些特定情境下,可能会出现一些与分布式环境、调度和数据一致性相关的潜在问题。以下是一些可能会遇到的问题和建议的解决方案&…...
过载与简单:理解感知
通常情况下,最好的设计是使用最少设计技巧的设计。这是为什么?这一切都是关于人类大脑是如何工作的,它决定了观众对媒体的反应、感受情绪和做出决定。 注意。我们被海量的信息轰炸。不间断地处理所有这些信号会降低我们大脑的注意力。根据微…...
前端加密的方式汇总
目录 一、Base64编码 二、哈希算法 三、对称加密(AES/DES) 四、非对称加密(RSA) 五、加盐 六、Web Cryptography API? 七、总结 随着信息和数据安全重要性的日益凸显,如何保证信息数据在传输的过程中的安全成为开发者重点关注的内容。前端加密通常是指在浏览…...
git新建远程分支后,无法切换
git remote # 列出所有远程主机 git remote update origin --prune # 更新远程主机origin 整理分支 git branch -r # 列出远程分支 git branch -vv # 查看本地分支和远程分支对应关系 git checkout -b gpf origin/gpf # 新建本地分支gpf与远程gpf分支相关…...
HarmonyOS 线性容器List 常用的几个方法
List底层通过单向链表实现,每个节点有一个指向后一个元素的引用。当需要查询元素时,必须从头遍历,插入、删除效率高,查询效率低。List允许元素为null。 List和LinkedList相比,LinkedList是双向链表,可以快速…...
【21天学习AI底层概念】day2 机器学习基础
按照由浅入深的顺序,下一步学习 机器学习(Machine Learning) 的基础是最自然的选择。机器学习是人工智能的核心技术之一,很多AI系统都依赖它。以下是学习路线建议: 第二步:机器学习基础 学习目标ÿ…...
简单的Java小项目
学生选课系统 在控制台输入输出信息: 在eclipse上面的超级简单文件结构: Main.java package experiment_4;import java.util.*; import java.io.*;public class Main {public static List<Course> courseList new ArrayList<>();publi…...
TDengine Flink集成
Flink 集成 TDengine 主要涉及在 Flink 项目中配置与 TDengine 的连接,实现数据的读取和写入。以下是一个详细的指南,介绍如何在 Flink 中集成 TDengine: 一、准备工作 安装并启动 Flink: 下载并解压 Flink 安装包。启动 Flink …...
数据结构和算法-05堆和优先队列-01
堆结构(heap) 生活中我们遇见的数据结构-堆: 查看电影口碑排名第一的电影。 堆的概念 [堆(heap)] 是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个结点的值总是不大于或不小于其父结点的…...
PDFMathTranslate,PDF多语言翻译,批量处理,学术论文,双语对照(WIN/MAC)
分享一个非常实用的PDF文档翻译项目——PDFMathTranslate。作为一个经常逛GitHub的开发者,我总喜欢翻看各种项目附带的论文,虽然大多时候是瞎研究,但却乐在其中。该项目能够完美保留公式、图表、目录和注释,对于需要阅读外文文献的…...
爬虫基础与实践
爬虫技术基础与实践 在当今数字化的时代,数据成为了宝贵的资源。爬虫技术作为获取数据的重要手段,受到了广泛的关注和应用。本文将介绍爬虫的基本概念、工作原理以及一些常用的技术和工具。 一、爬虫的基本概念 爬虫,也称为网络蜘蛛或网络机器…...
uni-app Android平台上架要求的隐私政策提示配置方法【跨端开发系列】
文章目录 前言📖一、前言二、DCloud 数据采集说明三、配置方式3.1 HBuilderX3.2.1及以上版本配置方式3.2 HBuilderX3.2.0及以下版本配置方法3.3 模板提示框3.4 无提示框 四、离线打包配置方式五、模板提示框六、二次确认提示框七、国际化八、隐私协议内容需要注意的…...
在Ubuntu上使用docker compose安装N卡GPU的Ollama服务
在现代计算环境中,利用 GPU 进行计算加速变得越来越重要。下面将讲解如何在Ubuntu上使用docker compose安装N卡GPU的Ollama服务。 1、安装 NVIDIA 容器工具 首先,需要确保你的系统已经安装了 NVIDIA 容器工具 nvidia-container-toolkit。这是让 Docker 容器访问 GPU 的关键…...
中文分词学习
1.安装 jieba 库 !pip install jieba jieba 库是用于中文分词的工具,它通过精确的分词算法来处理文本。通过分词可以将中文句子拆分成单独的词语,这对于自然语言处理任务非常重要,比如文本分类、情感分析、关键词提取。 2.中文文本分词处理…...
Seata 分布式事务
1. 分布式事务介绍 传统单体应用场景下,系统的数据保存在一个数据库实例中,通常场景的关系数据库都能自动提供事务保证,并且这种情况下的事务称为本地事务,能保证原子性、一致性、隔离性、持久性(ACID 特性)…...
Burp入门(10)-IP伪造插件
声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:IP伪造和爬虫审计_哔哩哔哩_bilibili 本文详细介绍IP伪造插件Burp Fake IP使用。 一、插件安装 打开Burp Suite。进入扩展标签页。点击添加&…...
idea连接SQL Server数据库_idea连接sqlserver数据库
4.设置密码(这一步可以在安装数据库时就可以完成),如果觉得用户名有问题,也可以修改用户名 5.查看SQL Server端口号(默认端口:1433),选择SQL Server2019配置管理器 6.打开SQL Server…...
SQL汇总数据:聚集函数
我们经常需要汇总数据而无需实际检索出这些数据,为此SQL提供了专门的函数。使用这些函数,SQL查询能够高效地检索数据,以便进行分析和报表生成。这类检索的例子包括: 确定表中行数(或者满足某个条件或包含某个特定值的…...
Next.js系统性教学:服务器操作与数据变更
更多有关Next.js教程,请查阅: 【目录】Next.js 独立开发系列教程-CSDN博客 目录 1. 什么是服务器操作和数据变更? 1.1 服务器操作 (Server Actions) 1.2 数据变更 (Mutations) 2. Next.js中的服务器操作与数据变更 2.1 引入:…...
Python Selenium 各浏览器驱动下载与配置使用(详细流程)
大家好啊!我是NiJiMingCheng 这是我的博客:NiJiMingCheng 这节课我们来学习安装selenium和对应的各个浏览器驱动,个人比较喜欢使用谷歌浏览器驱动,所以接下来以谷歌浏览器来为大家做示例!!! Sel…...
python flask 框架模块介绍
Flask 是一个轻量级、可扩展的 Python Web 框架,特别适合构建小型和中型应用程序。它的设计哲学是简单、灵活,允许开发者根据需要选择或创建功能模块。以下是 Flask 框架的核心模块和其功能的详细讲解: 1. Flask 核心模块 (1) flask.Flask 类…...
手把手搭建基于.NET 8.0的Web API项目
1.背景 工作以后,大部分时间都是在做基于业务的CRUD工作,软件产品或者项目的框架基本都早就搭建好了,程序员只需要在框架内去填格子打代码就行了。于是,我抽了时间来搭建个简单的三层架构模式的web api项目,技术点大概…...
SQL注入基础入门篇 注入思路及常见的SQL注入类型总结
目录 前言一、了解mysql数据库1、了解sql增删改查2、了解sql查询 二、sql注入基础三、学习sql注入漏洞1、union注入1、判断数字型注入还是字符型型注入:2、判断闭合方式(字符型注入):3、判断回显位4、查询库名,表名&am…...
部门操作和日志
PostMapping("/depts") public Result add(RequestBody Dept dept){System.out.println("添加部门: " dept);deptService.add(dept);return Result.success(); }Override public void add(Dept dept) {dept.setCreateTime(LocalDateTime.now());dept.setU…...
如何使用WinCC DataMonitor基于Web发布浏览Excel报表文档
本文介绍使用 WinCC DataMonitor 的 "Excel Workbooks" 功能,通过 Excel 表格显示 WinCC 项目的过程值、归档变量值和报警归档消息。并可以通过 Web 发布浏览访问数据 1.WinCC DataMonitor是什么 ? DataMonitor 是 SIMATIC WinCC 工厂智能中…...
禁用SAP Hana错误密码锁定用户功能
背景 公司项目适配多种数据库其中包含SAP Hana,由于有同事的数据库连接工具保存了某个在用的数据库的旧密码,导致时不时会被锁用户。通过查询官方文档已解决,这里统一记录一下。 禁用密码锁定方法 以下按系统管理员和普通用户的解法分别列…...
uni-app 个人课程表页面
uni-app 个人课程表页面 插件参考地址 大部分代码都是参考了上述代码,只对代码做出了优化 1. 页面模板 在 schedule.vue 文件中,编写页面结构: <template><view><u-navbar title"个人中心"><view class&q…...
实现盘盈单自动化处理:吉客云与金蝶云星空数据对接
盘盈单103v2对接其他入库:吉客云数据集成到金蝶云星空 在企业信息化管理中,数据的高效流转和准确性至关重要。本文将分享一个实际案例,展示如何通过轻易云数据集成平台,将吉客云的数据无缝对接到金蝶云星空,实现盘盈单…...
如何查看内网设备访问互联网时的出口 IP 地址?
在企业VPC中我们通常是一个机房公用一个公网IP,也就是所有的设备共用同一个出口IP。 那么如何查看如何查看内网设备访问互联网时的出口 IP 地址呢? 要查看一台 Linux 内网设备访问互联网时的出口 IP 地址,可以使用以下几种方法:…...
JavaCV之FFmpegFrameFilter视频转灰度
1、代码 package com.example.demo.ffpemg;import lombok.SneakyThrows; import org.bytedeco.javacv.*;public class FFmpegFrameFilterVideoExample {SneakyThrowspublic static void main(String[] args) {// 输入视频文件路径String inputVideoPath "f:/2222.mp4&qu…...
MySQL | 尚硅谷 | 第16章_变量、流程控制与游标
MySQL笔记:第16章_变量、流程控制与游标 文章目录 MySQL笔记:第16章_变量、流程控制与游标第16章_变量、流程控制与游标 1. 变量1.1 系统变量1.1.1 系统变量分类1.1.2 查看系统变量 1.2 用户变量1.2.1 用户变量分类1.2.2 会话用户变量 1.2.3 局部变量1.2…...
css矩形样式,两边圆形
废话不多说,代码如下,直接拷贝即可使用: index.vue文件 <template><view class"wrap"><view class"tabs"><view class"tab active"><view class"name">标签</view…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(7)
1.问题描述: 推送通知到手机,怎么配置拉起应用指定的页面? 解决方案: 1、如果点击通知栏打开默认Ability的话, actionType可以设置为0, 同时可以在.clickAction.data中,指定待跳转的page页面…...
孚盟云 MailAjax.ashx SQL注入漏洞复现
0x01 产品简介 上海孚盟软件有限公司是一家外贸SaaS服务提供商,也是专业的外贸行业解决方案专业提供商。 全新的孚盟云产品,让用户可以用云模式实现信息化管理,让用户的异地办公更加流畅,大大降低中小企业在信息化上成本,用最小的投入享受大型企业级别的信息化服务,主要…...
Windows平台Unity3D下RTMP播放器低延迟设计探讨
技术背景 好多开发者希望我们分享下大牛直播SDK是如何在Unity下实现低延迟的RTMP播放的,以下是一些降低 Unity 中 RTMP 播放器延迟的方法: 一、选择合适的播放插件或工具 评估和选用专业的流媒体插件 市场上有一些专门为 Unity 设计的流媒体插件&…...
数据结构---队列(Queue)
1. 简介 队列(Queue)是一种常用的数据结构,它遵循先进先出(FIFO,First In First Out)的原则。这意味着第一个进入队列的元素将是第一个被移除的元素。队列在计算机科学中有着广泛的应用,比如任…...
软件测试丨Appium 源码分析与定制
在本文中,我们将深入Appium的源码,探索它的底层架构、定制化使用方法和给软件测试带来的优势。我们将详细介绍这些技术如何解决实际问题,并与大家分享一些实用的案例,以帮助读者更好地理解和应用这一技术。 Appium简介 什么是App…...
selenium学习:等待方式
隐式等待 1.针对查找元素设置最大的超时时间 2.可以全局性的设置 3.不满足时,提示no such element driver.implicitly_wait(5) #对查找元素最大的超时时间,如果超过最大等待时间后,没有找到元素,则会报错:no such #e…...
京准电钟分享:医院网络内NTP时间同步服务器作用是什么?
京准电钟分享:医院网络内NTP时间同步服务器作用是什么? 京准电钟分享:医院网络内NTP时间同步服务器作用是什么? 时间同步技术必定将是整个大数据处理系统的重要支撑和保障。时间同步技术使数据产生与处理系统的所有节点具有全局…...
Excel 合并工具 将文件复制到目标工作表中与操作日志记录
指定文件夹中读取符合条件的 Excel 文件,将其中的数据按照一定规则复制到目标工作表中,并进行相关的日志记录和工作簿保存操作。 先看下 excel 的结构 合并的结果 log 记录 vba 代码 Sub DeltaCheck()作者和创建时间的注释 定义工作表变量Dim ws As Wor…...
Linux 内核源码
Linux 内核的源代码可以在以下位置获取: • 官方网站:https://www.kernel.org/是Linux内核源代码的官方获取渠道,该网站提供了各种版本的内核源代码压缩包,用户可按需选择版本下载. • Git 仓库:使用Git工具可克隆Li…...
Windows中MySQL8.3.4 MSI版本——详细安装教程
一、下载MySQL安装文件。 下载地址:MySQL官网 进入后点击下面的MySQL社区版下载 点击MySQL Comunity Server。 我这里选择的是版本8.4.3LTS版本,在线对应的msi文件。 点击No thanks,直接下载。 二、安装MySQL 2.1、双击刚刚下载好的msi文件,…...
STM32F103单片机使用STM32CubeMX新建IAR工程步骤
打开STM32CubeMX软件,选择File 选择新建工程 在打开的窗口输入单片机型号 在右下角选择单片机型号,然后点右上角 start project,开始新建工程。 接下来设置调试接口,在左边System Core中选择 SYS,然后在右右边debu…...
使用 WebRtcStreamer 实现实时视频流播放
WebRtcStreamer 是一个基于 WebRTC 协议的轻量级开源工具,可以在浏览器中直接播放 RTSP 视频流。它利用 WebRTC 的强大功能,提供低延迟的视频流播放体验,非常适合实时监控和其他视频流应用场景。 本文将介绍如何在Vue.js项目中使用 WebRtcSt…...
Java中内存存储与Redis存储的动态同步示例
在web应用程序中,缓存的使用越来越普遍。Redis,作为一种高性能的键值数据库,常被用作数据缓存。本文将说明如何在 Java 应用中使用 Redis 存储,并确保在内存中的值发生变化时,Redis 中的值也能动态更新。 Redis&#…...
Vue3的表单提交控制:条件启用和禁用按钮
目录 前言1. 需求分析2. Demo 前言 主要总结基本的知识点、需求归类以及模版的总结 新增的时候只有点击某个按钮,后续才能触发保存 但是为了规避 编辑的时候同一个表单,需要加入一个type,避开update而不是create 以下Demo主要作为分析使…...
FastAPI解决跨域报错net::ERR_FAILED 200 (OK)
目录 一、跨域问题的本质 二、FastAPI中的CORS处理 1. 安装FastAPI和CORS中间件 2. 配置CORS中间件 3. 运行FastAPI应用 三、解决跨域报错的步骤 四、案例:解决Vue.js与FastAPI的跨域问题 1. Vue.js前端应用 2. FastAPI后端API 3. 配置CORS中间件 4. 运行和测试 五…...
使用SQLark分析达梦慢SQL执行计划的一次实践
最近刚参加完达梦的 DCP 培训与考试,正好业务系统有个 sql 查询较慢,就想着练练手。 在深入了解达梦的过程中,发现达梦新出了一款叫 SQLark 百灵连接的工具。 我首先去官网大致浏览了下。虽然 SQLark 在功能深度上不如 DM Manager 和 PL/SQ…...
12-从TypeScript到ArkTS的适配规则(2)
12-从TypeScript到ArkTS的适配规则(2) 不支持this类型 **规则:**arkts-no-typing-with-this 级别:错误 ArkTS不支持this类型,改用显式具体类型。 TypeScript interface ListItem { getHead(): this} class C { …...