java知识面试day2

news/2025/2/22 22:13:34/文章来源:https://www.cnblogs.com/tdsmomo/p/18731531

1.说出java和c++的区别

  • java是一个纯粹的面向对象语言,所有的对象都继承于java. lang.Object,C++兼容C,不但支持面向对象也支持面向过程
  • java有着一次编译四处运行的跨平台特性。
  • java不具有指针,但具有垃圾回收。
  • java不支持多重继承,只能通过实现多个接口去达到相同目的

2.JDK,JRE,JVM之间的关系
jvm是虚拟机
jre是java的运行环境,其中包含了jvm和java核心库,但是不包含开发环境,没有任何的编译器和调试器等。jdk。jre+java工具+编译器和调试器。

3.java程序是编译执行还是解释执行

  • 编译型语言:在程序运行前,通过编译器将源码转为二进制。再次执行这个程序时,则不要要再次编译。缺点是修改一小部分模块后,需要将所有的编码再次重新编译。
  • 解释性语言先翻译成中间代码,再翻译成中间代码,然后由解释器

4.介绍一下面向过程和面向对象的区别
面向过程就是分析出解决问题需要的步骤,然后通过一个个函数按照流程去实现
面向对象则是将事务划分位对象,并将对象分为各个的完整功能的系统。
alt text

5.面向对象有哪些特性
4大特性为封装,继承,多态,抽象

  • 封装体现在可以通过privicte这样将信息隐藏类内部,通过类实现方法实现对类的访问,良好的封装可以减少耦合。
  • 继承体现的是从已有的类派生出子类,新的类继承了父类的属性和行为,扩展了新的能力,java是单继承的,所以说一个子类只能有一个父类。
  • 多态:是一个行为的不同多种表现方式的能力,实现多态的三要素,继承,重写,父类引用指向子类对象
    静态多样性:通过重载实现,相同方法根据不同的参数做出不同处理
    动态多样性:子类中重写父类的方法,运行期间判断引用对象的类型,根据类型执行相应的方法
  • 抽象:将客观事务用代码抽象出
    6.面向对象的六大原则
  • 单一职责:对象设计要求独立,不能设计万能对象。列入在商品类的逻辑下不应该涉及订单类的逻辑
  • 里式替换原则,子类能够完全替代父类,反之则不行。这表示子类要实现父类的基本功能的原则下再去扩展新的功能。父类有a方法,子类就必须实现a方法。
  • 迪米特原则:高内聚,低耦合。要减少依赖的互相依赖。
  • 开闭原则:开放扩展,封闭修改。业务要求变更,尽量不对原代码进行修改,而是在原有的基础上进行扩展。
  • 依赖倒置原则:高层模块不应该直接依赖于底层模块的具体实现,而是依赖底层的抽象。,接口和抽象类不应该依赖于实现类,而实现依赖接口或抽象类。核心--基于接口编程,提前涉及好接口框架
  • 接口隔离原则:一个对象和另外一个对象交互的过程中,依赖内容最小。应该保证2者的依赖相互不是很紧密。接口的大小过大导致污染,过小导致调用麻烦。

7.数组是否为对象
是,
对象是根据某个类建立出的实列,其具有对象的特征如封装了属性,可以调用方法,对象是封装数据,在内存中的一个代码块。
alt text

8.JAVA的基本数据类型
8种,一字节对应8bit
byte 8bit char 16bit shot 16bit int 32bit float 32bit
long 64bit double 64bit boolean 1bit只对应2个值

9.为什么不能用浮点数表示金额
计算机种保存的小鼠是10进制小数的近似值,并非准确值,应该使用Long或者BigDecimal

10.什么是值传递和引用传递
值传递是相对基本变量而言,传递的是变量的一个副本,改变副本不影响原变量
引用传递是对象型变量而言,传递的是该对象地址的副本,而不是原对象本身,2者共同执行一个地址空间
java中不存在引用传递,只有值传递,不存在a执行b,b执行某一个对象。

11.了解过java的包装类型吗
因为java是面向对象的语言,所以很多集合类中无法将int,double这种放入,因为集合容器需要一个Object类型,为了让基本类型也具有对象的特征,出现了包装,使其具有对象的性质,添加了属性和方法,丰富了基本类型的操作。

12.自动装箱和拆箱
结合11点回答,装箱就是将基本类型转为包装类型,拆箱相反
alt text

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

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

相关文章

继承中构造方法访问特点--java 进阶day01

1.子类不可以继承父类的构造方法构造方法的名称必须与类名一致,上图中类名是Zi,而构造方法名是Fu,肯定不行 2.子类在初始化之前,需要对父类初始化 子类在初始化的过程中,很有可能会调用到父类的数据,如果父类没有提前初始化,子类就无法调用这些数据3.通过在子类中访问父…

Mysql莫名其妙爆出拒绝访问问题的原因及解决方案

本文记录使用Mysql作为数据库时发生拒绝访问问题的解决方案Mysql出现拒绝连接问题 ⛄问题原因 : Mysql密码错误,本机上并不是只有一个Mysql服务,我们在开机时启动了并非以前使用的那个Mysql服务,所以造成了密码的错误🌟解决方案 :手动关闭当前正在启用的Mysql服务,尝试找…

Codes 开源 免费 研发项目管理平台 3.0.0 版本发布及创新的轻IPD实现

Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过创新的方式简化研发协同工作,使敏捷开发更易于实施。采用轻量化的 IPD 模式实现,且融合了敏捷 。轻 IPD 主要解决多项目交付的研发过程管理,…

2025/2/15课堂记录

数字转换,皇宫看守,树上dp,树的直径目录数字转换 皇宫看守数字转换这是一道树的直径题。 首先,树的直径定义是:树上两个结点之间的最短(加权)路中最长的一条路径(和二分答案没关) 但由于贪心思想,这个路径一定起点终点是两片叶子结点如图,这棵树的直径就是5,即节点…

基于CPS-SPWM链式STATCOM系统在电压不平衡环境下控制策略的simulink建模与仿真

1.课题概述基于CPS-SPWM链式STATCOM系统在电压不平衡环境下控制策略的simulink建模与仿真。利用电压外环PI调节器得到有功 电流指令值结合由负载侧电流检测 到 的无功 电流指令值 ,经由 状态解耦PI调节的电流内环控制器输出直接得到的是输出电压的指令值,用此信号作为采用控制…

【库】Coravel Schedule任务调度

Coravel 通过使高级应用程序功能(如任务/作业调度、排队、缓存、邮件(以及更多!))易于访问且易于使用,帮助开发人员快速启动并运行 .NET 应用程序。具有简单、富有表现力和直接的语法。   下面是简单的用法,通过注入Scheduler和在中间件中定义调度的实现,来完成简单的…

【库】用Rin透视Web请求

Rin 可以捕获对 ASP.NET Core 应用程序的 HTTP 请求,并为捕获的数据提供查看器。它是调试 Web 应用程序(例如,网站、API 应用)的有用工具。先看如下代码:var builder = WebApplication.CreateBuilder(args); builder.Logging.AddRinLogger(); builder.Services.AddRin(); …

【蓝桥训练记录】第 26 场 蓝桥月赛

训练情况赛后反思 这场怎么都是猜猜乐+典题,做不出来的题真的不会了 A题 显然 2025 里面有多少个 15,除法向上取整即可点击查看代码 #include <bits/stdc++.h> // #define int long long #define endl \nusing namespace std;void solve(){cout<<ceil(1.0*2025/15…

光纤三维布里渊温度和应变分布matlab模拟与仿真

1.程序功能描述 光纤三维布里渊温度和应变分布matlab模拟与仿真。其中 , 布里渊散射是光波与声波在光纤中传播时相互作用而产生的光散射过程 , 在不 同的条件下 , 布里渊散射又分别以自发散射和受激散射两种形式表现出来 。 2.测试软件版本以及运行结果展示MATLAB2022A版…

基于一阶梯度的图像亚像素位移matlab仿真,带GUI界面

1.算法运行效果图预览 (完整程序运行后无水印)2.算法运行软件版本 matlab2022a3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)% --- Executes on button press in checkbox1. function checkbox1_Callback(hObject, eventdata, handles) % hObject handle to…