JavaGuide复习1——常见面试题总结部分

news2024/11/14 4:14:53

1、关于包装类的缓存机制

两种浮点数类型的包装类 Float,Double 并没有实现缓存机制。
在这里插入图片描述
对应源码:
在这里插入图片描述

拆装箱

都是调用了包装类的方法:valueOf(基本转包装)、xxxValue(包装转基本)

注意char

char在Java中占用2个字节

关于静态方法和非静态成员之间的调用

静态方法属于类,非静态成员属于对象实例,静态方法是在类加载的时候就产生了,而非静态成员是在对象实例化之后才产生的
【实例方法】就是指非静态的方法
静态方法,只能访问静态成员(变量及方法)

总结重载和重写

重载:方法名必须相同,方法的返回值、修饰符、参数个数、参数类型可以不同(参数列表必须修改)。(重载是根据传入的参数不同,方法的处理也不同)
重写:方法名、参数个数、参数类型(参数列表)必须相同,返回值、异常范围<=父类的该方法,修饰符>=父类。 如果⽗类⽅法访问修饰符为 private/final/static 则⼦类就不能重写该⽅法。(因为方法体不同,所以处理不同)
两同两小一大
注意:重写时如果返回类型是 void 和基本数据类型,则返回值重写时不可修改

关于面向对象

封装:针对的是类的属性
继承:⼦类拥有⽗类对象所有的属性和⽅法(包括私有属性和私有⽅法),但是⽗类中的私有属性和⽅法⼦类是⽆法访问,只是拥有

关于对象引用和对象实例

对象实例在堆内存中,对象引用指向对象实例(对象引用存放在栈内存中)
对象的相等和引用相等的区别:
对象的相等一般比较的是内存中存放的内容是否相等。
引用相等一般比较的是他们指向的内存地址是否相等。
在这里插入图片描述
== 运算符比较的是字符串的引用是否相等。equals 方法比较的是字符串的内容

接口

接口中的成员变量只能是public static final类型的,不能被修改且必须有初始值,而抽象类的成员变量默认 default,可在子类中被重新定义,也可被重新赋值(static修饰的静态内容,实例共享;final修饰不可变的内容)

Java中子类能够继承父类的private属性或方法吗

子类继承父类,子类拥有了父类的所有属性和方法。程序验证,父类的私有属性和方法子类是无法直接访问的。当然私有属性可以通过public修饰的getter和setter方法访问到的,但是私有方法不行。

多态

多态的使用:当调用子父类同名同参数方法时,实际调用的是子类重写父类的方法

Person p2 = new Man();

简称:编译时,看左边;运行时,看右边。
“看左边”:看的是父类的引用(父类中不具备子类特有的方法)
“看右边”:看的是子类的对象(实际运行的是子类重写父类的方法)
对象的多态性:只适用于方法,不适用于属性(编译和运行都看左边)——也就是只能调用父类的属性(有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法,但是由于变量声明为父类类型,导致编译时,只能调用父类中声明的属性和方法。)

想要调用用子类特有的属性和方法:向下转型
a instanceof A:判断对象a是否是类A的实例
举例:

//问题1:编译时通过,运行时不通过
		//举例一
//		Person p3 = new Woman();
//		Man m3 = (Man)p3;
		
		//举例二
		Person p4 = new Person();
		Man m4 = (Man)p4;
		
		//问题二:编译通过,运行时也通过
		Object obj = new Woman();
		Person p = (Person)obj;

注意:
在这里插入图片描述

值传递与引用传递

值传递 :方法接收的是实参值的拷贝,会创建副本。
引用传递 :方法接收的直接是实参所引用的对象在堆中的地址,不会创建副本,对形参的修改将影响到实参。
举例:
在这里插入图片描述
a、b 相当于 num1、num2 的副本

**Java 只有值传递**
在这里插入图片描述
仍然是值传递,只不过传递的值是实参的地址
在这里插入图片描述
swap 方法的参数 person1 和 person2 只是拷贝的实参 xiaoZhang 和 xiaoLi 的地址

总结:
Java 中将实参传递给方法(或函数)的方式是 值传递 :如果参数是基本类型的话,很简单,传递的就是基本类型的字面量值的拷贝,会创建副本。如果参数是引用类型,传递的就是实参所引用的对象在堆中地址值的拷贝,同样也会创建副本。

关于rpc协议

参考博客: rpc协议

动态代理

一、JDK动态代理机制

动态代理步骤:
创建接口
得到实现这个接口的实现类(被代理类)
新建一个实现了InvocationHandler接口的实现类(代理类),并重写其invoke方法,主要用于自定义对代理类方法的扩展
创建一个代理工厂类,通过getProxy方法得到目标被代理类的代理对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/93bf101382ef44b29f7a2d5e5b213e60.png

当我们的动态代理对象调用原生方法的时候,最终实际上调用到的是 invoke() 方法,然后 invoke() 方法代替我们去调用了被代理对象的原生方法

二、CGLIB动态代理机制

步骤:
添加CGLIB的依赖
定义一个被代理类
自定义一个实现了MethodInterceptor的方法拦截器,并重写intercept方法
创建工厂类,并在其中创建一个动态代理增强类Enhancer的对象,通过调用enhancer的create方法创建动态代理类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:
JDK的只能代理实现了接口的类,或者直接代理接口,而CGLIB可以代理没有实现任何接口的类

BigDecimal

常用方法:
加——add、减——subtract、乘——multiply、除——divide、比较——compareTo

BigDecimal a = new BigDecimal("1.0");

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

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

相关文章

Illustrator如何进行文本的创建与编辑之实例演示?

文章目录 0.引言1.创建点文字2.串接文本3.石刻文字 0.引言 因科研等多场景需要进行绘图处理&#xff0c;笔者对Illustrator进行了学习&#xff0c;本文通过《Illustrator CC2018基础与实战》及其配套素材结合网上相关资料进行学习笔记总结&#xff0c;本文对文本的创建与编辑进…

shell脚本编程基础

shell 文件的建立和执行 shell脚本是将shell命令在文件中编写&#xff0c;从而实现一次执行很多shell命令。如&#xff1a; # ab.sh # !/bin/bash echo "Welcome Linux" cd mkdir myjsjsj echo "Your dir is" pwd可以看到这就是多个shell命令。 执行前需…

【数据结构】选择排序(详细)

选择排序 1. 直接选择排序2. 堆排序2.1 堆2.2 堆的实现&#xff08;以大根堆为例&#xff09;2.3 堆排序 3. 堆排序&#xff08;topK问题&#xff09; 1. 直接选择排序 思想 以排升序为例。以a[i]为最大值&#xff08;或最小值&#xff09;&#xff0c;从a[i1]到a[n-1-i]比较选…

【5G RRC】NR 小区接入控制

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

Wind10安装cuDNN,几分钟搞定

cuDNN的安装过程 1、下载cuDNN 因为之前的博文“目标检测第3步”下载的CUDA版本是11.1&#xff0c;那么我们就要找到与CUDA11.1版本对应的cuDNN版本。地址为&#xff1a;cuDNN Archive | NVIDIA Developer 2、安装cuDNN 下载到的cuDNN文件是一个压缩包&#xff0c;解压缩之后…

并发编程03:Java锁

文章目录 3.1 乐观锁和悲观锁3.2 通过8种情况演示锁运行案例&#xff0c;看看锁到底是什么3.2.1 锁相关的8种案例演示code3.2.2 synchronized有三种应用方式3.2.3 从字节码角度分析synchronized实现3.2.4 反编译synchronized锁的是什么3.2.5 对于Synchronized关键字 3.3 公平锁…

创维高安版-E900-Hi3798MV100-强刷卡刷固件包-当贝纯净桌面

创维高安版-E900-Hi3798MV100-强刷卡刷固件包-当贝纯净桌面-内有主板图短接点和教程 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置…

关于百度地图开放平台api覆盖物“自定义Marker图标”不能正常显示的解决方案

“自定义Marker图标”不能正常显示&#xff08;用网上图片能正常显示&#xff0c;用本地图片就不能显示&#xff09;&#xff0c; 分两种情况&#xff1a; 1.网上图片&#xff0c;往往是图片的url地址有问题&#xff0c;也可能是url地址的图片失效了。 2.本地图片&#xff0c;这…

linux软件包管理和进程管理

目录标题 RPM管理工具rpm安装rpm查询功能rpm软件包升级、卸载 YUM管理工具建立本地光盘源配置互联网源yum工具管理软件包 ps指令动态查看进程top RPM管理工具 软件包&#xff08;本地–网络&#xff09;—安装&#xff08;软件包&#xff09;—卸载&#xff08;软件&#xff0…

【Python】【进阶篇】24、Django if标签详解

目录 24、Django if标签详解1. 模板标签1) 判断逻辑的 if 标签 24、Django if标签详解 本节继续讲解 Django 的模板语言&#xff0c;Django 内置了许多标签用于简化模板的开发过程&#xff0c;同时 Django 也支持自定义标签&#xff0c;这极大的方便了 Web开发者&#xff0c;下…

拓展系统变量

文章目录 拓展系统变量 使用方式拓展系统变量获取服务端IP - $ZSERVERIP获取客户端IP - $ZCLIENTIP获取最大许可数量 - $ZMAXLICENSE获取当前系统名称 - $ZOSNAME获取字符串最大长度 - $ZMAXSTRINGLEN获取当前登录用户ID - $ZUSERID获取当前登录用户名 - $ZUSERNAME系统最近错误…

【Linux从入门到精通】C语言模拟实现进度条小程序

在Linux下&#xff0c;我们安装软件时会经常看到进度条&#xff0c;来告知我们安装的进度。我们不妨自己模拟实现一个进度条&#xff0c;看看其中的细节。模拟实现进度条并不困难&#xff0c;但其中的细节我们又不可忽视。本篇文章会对模拟实现进度条进行详解。 文章目录 一、进…

顺序表(数据结构)---排队啦!

目录 前言&#xff1a; 1.线性表的性质 2.静态数组or动态数组 2.1静态数组 2.2动态数组 3.结构体的创建 4*接口函数的详细讲解 4.1初始化结构体 4.2尾插 4.3打印数据 4.4用完后销毁创建的堆空间 4.5 尾删 4.6头插 4.7头删 4.8查找 4.9任意位置插入 4.10任意位…

springboot+jsp商务安全邮箱(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot商务安全邮箱。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&…

谈谈Edge浏览器新出的分屏功能

谈谈Edge浏览器新出的分屏功能 前言 在 2023 年三月份微软为 Microsoft Edge 浏览器的稳定版本带来了一个新功能 —— 分屏浏览 (Split Screen)&#xff0c;此功能允许用户在当前页面以左右视图的形式并排打开两个标签页面&#xff0c;作用上类似于应用的分屏可以让浏览器同时处…

Kali Linux部署qemu虚拟化启动img镜像文件

一、先下载最新版本的Kali环境 Kali Linux官网下载网址&#xff1a;Get Kali | Kali Linux 安装到VMware里面后&#xff0c;调整内存大小为4G&#xff08;如果自己电脑内存32G的话&#xff0c;可以调整为8G&#xff09; 更新一下Kali Linux源 然后安装如下软件 apt install qe…

二十九、交换机堆叠与集群

文章目录 堆叠技术概述一、可靠组网二、堆叠技术名称三、华为堆叠原理1、基本概念2、堆叠端口&#xff1a;&#xff08;逻辑端口&#xff09;3、堆叠拓扑类型4、堆叠硬件要求 四、堆叠配置示例&#xff08;华三模拟器&#xff09;1、sw1&#xff1a;2、sw2&#xff1a;3、激活i…

弹射起步——pythonweb开发Flask框架,前端原生+Flask后端框架+mysql数据库实战(附带小案例)

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

HCT:深度是我们没有的奢侈品

文章目录 Deep is a Luxury We Don’t Have摘要本文方法Efficient AttentionThe HCT Architecture Deep is a Luxury We Don’t Have 摘要 医学图像具有高分辨率。高分辨率对于早期发现恶性组织至关重要。然而&#xff0c;这一解决方案在建模长期依赖性方面提出了挑战。浅层t…

接口自动化测试的神器:使用Python编写高效的自动化测试工具

B站首推&#xff01;2023最详细自动化测试合集&#xff0c;小白皆可掌握&#xff0c;让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db 目录 摘要&#xff1a; 安装工具&#xff1a; 测试脚本 编写python脚本 1.使用requests发送HTTP请求 2.使用py…