【JAVA】计算机软件工程人工智能研究生复试资料整理

news2024/11/30 6:37:59

1、JAVA
2、计算机网络
3、计算机体系结构
4、数据库
5、计算机租场原理
6、软件工程
7、大数据
8、英文 自我介绍

1. Java

1. == 和 equals的区别

比较基本数据类型是比较的值,引用数据类型是比较两个是不是同一个对象,也就是引用是否指向同
一个对象,地址是否相同,equals本质上也是
,但是可以重写这个方法,比如String和Integer类。

2. 为什么重写equals要重写hashcode?

我个人的理解是,Hash比equals方法的开销要小,速度更快,所以在涉及到hashcode的容器中(比如
HashSet),判断自己是否持有该对象时,会先检查hashCode是否相等,如果hashCode不相等,就会
直接认为不相等,并存入容器中,不会再调用equals进行比较。而hashcode的默认方法是根据内存地
址获得的,这样就会导致,即使该对象已经存在HashSet中,但是因为hashCode不同,还会再次被存
入。
因此要重写hashCode保证:如果equals判断是相等的,那hashCode值也要相等。

3. 什么是拆箱和装箱?

我理解的就是基本类型和包装类型的相互转换:
装箱就是基本数据类型可以直接赋值给包装类型,也就是Object变量
拆箱就是包装类型也可以自动转化为基本数据类型进行赋值或者比较

4. final类有什么特点?

  1. 不可以被继承
  2. final修饰的方法不可被重写
  3. final修饰的变量:基本数据类型值不可修改,引用数据类型指向不可发生变化

5.谈谈final、finally和finalize的区别

final是修饰成员变量、类、方法,表示不可再改变
finally是处理异常的关键字,表示最后执行
finalize是Object类的一个方法,在垃圾收集器执行的时候会执行被回收对象的这个方法,可以覆
盖此方法提供垃圾收集时的其他资源回收,例如文件关闭 等等。

6.垃圾回收

  1. GC是什么?为什么要有GC?
    GC时垃圾收集的意思,Gabage Collection。内存处理是开发人员容易出现问题的地方,忘记或者错误
    地内存回收会导致程序或者系统的不稳定甚至崩溃,Java提供的垃圾回收机制可以自动检测对象是否超
    过作用域从而达到自动回收的目的。
  2. 垃圾回收机制
    Java垃圾回收机制:不需要显示的去释放一个对象的内存,而是由JVM自动机型管理。在Jvm中有一个
    低优先级的垃圾回收线程。在正常情况下是不会执行的,只有在虚拟机空闲时,或者堆内存不足时会触
    发执行,扫描那些没有被任何引用的对象,将它们添加到要回收的集合中,然后进行回收操作。
  3. 如何判断一个对象是否存活?GC对象的判断方法?
    1、 引用计数法:给每一个对象都设置一个引用计数器,当有一个地方引用这个对象时,则
    count+=1,引用失效时,count-=1,当count=0时,说明此对象没有被其他对象引用,也就是死
    对象。将会被GC回收。
    简单,但会出现循环引用,即: A引用B,B引用A。
    2、可达性分析:GC_roots作为对象的起始点,从这些节点开始向下搜索,走过的路径称为引用链,
    当一个对象到 GC Roots 没有任何引用链相连时,则证明此对象不可用的
    在这里插入图片描述

上图中,Object1~Object4都可以被GC Root访问到,而Object5~Object7都不可以被访问到,这也就是说。也就是说,Object5、6、7这三个对象就是不可达的,下次垃圾回收的时候,可能就会被回收掉。
其实并不是所有的对象都可以作为GC Roots的对象,只有下列的对象可以作为GC Roots的对象。

  • 虚拟机栈(栈帧中的本地变量表)中引用的对象
  • 方法区中类静态属性引用的对象
  • 方法区中常量引用的对象
  • 本地方法栈中JNI(即一般说的Native方法)引用的对象

既然是引用计数法,那肯定就有各种引用,下面来说说一些引用。

  • 引用:指在程序代码之中普遍存在的,类似 Object obj = new Object() 这类的引用,只要强 引用还存在,垃圾收集器永远不会回收被引用的对象
  • 软引用:用来描述一些还有用但并非必需的对象。对于软引用关联着的对象,在系统将要发生内存 溢出异常之前,将会把这些对象列进回收范围之中进行第二次回收。如果这次回收还没有足够的内存,才会抛出内存溢出异常。在JDK1.2之后,提供了SoftReference类来实现软引用
  • 弱引用:用来描述非必需对象,但是他的强度比软引用更弱一些,被弱引用关联的对象只能生存到下一次垃圾收集之前。当垃圾收集器工作时,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。在JDK1.2之后,提供了WeakReference类来实现弱引用
  • 虚引用:也被称为幽灵引用或者幻影引用。它是最弱的一种引用关系。一个对象是否有虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用来取得一个对象实例。为一个对象设置虚引用关联的唯一目的就是能在这个对象被收集器回收时收到一个系统通知。在JDK1.2之后,提供了PhantomReference类来实现虚引用。供对象被finalize之后,执行指定的逻辑的机制(cleaner)

7. 关键字native

一个Native Method就是一个java调用非java代码的接口。这个接口写在java中,实现方式是用其他语
言,eg: C或C++
native不可与abstract一起使用,可以重写。
可以将native方法比作Java程序同C程序的接口,其实现步骤:

  • 1、在Java中声明native()方法,然后编译;
    1. 用javah产生一个.h文件;
    1. 写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK 带的jni.h文件);
    1. 将第三步的.cpp文件编译成动态链接库文件
    1. 在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以 在Java中被访问了

6、集合

  • Set如何区分重复与否?
    使用equals,而不是==
  • 当向集合Set中增加对象时,首先集合计算要增加对象的hashCode码,根据该值来得到 一个位置用来存放当前对象。 如果在该位置没有一个对象存在的话,那么集合Set认为该对象在集合中不存在,直接 增加进去。 如果在该位置有一个对象存在的话,接着将准备增加到集合中的对象与该位置上的对象 进行equals方法比较。 如果该equals方法返回false,那么集合认为集合中不存在该

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

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

相关文章

【Java】零基础蓝桥杯算法学习——线性动态规划(一维dp)

线性dp——一维动态规划 1、考虑最后一步可以由哪些状态得到,推出转移方程 2、考虑当前状态与哪些参数有关系,定义几维数组来表示当前状态 3、计算时间复杂度,判断是否需要进行优化。 一维动态规划例题:最大上升子序列问题 Java参…

【C++第二阶段-重载-关系运算符函数调用】

你好你好! 以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 关系运算符-重载-判断相等函数调用运算符重载 关系运算符-重载-判断相等 场景:两个对象,若有年龄和性别的不同,是否可以直…

算法学习——LeetCode力扣贪心篇1

算法学习——LeetCode力扣贪心篇1 455. 分发饼干 455. 分发饼干 - 力扣(LeetCode) 描述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[…

android 控制台输出 缺失

问题 android 控制台输出内容缺失 详细问题 笔者进行android开发,期望控制台打印Log日志或是输出内容 Log.i("tag","content");或 System.out.println("content")但是实际上,上述内容并没有按照笔者期望打印 解决方…

【sgSearch】自定义组件:常用搜索栏筛选框组件(包括表格高度变化兼容)。

sgSearch源码 <template><div :class"$options.name" :expand"expandSearch" :showCollapseBtn"showCollapseBtn"><!-- v-clickoutside"(d) > (expandSearch false)" --><ul class"search-list"&…

代码随想录算法训练营Day57|647. 回文子串、516.最长回文子序列、动态规划总结

目录 647. 回文子串 前言 思路 算法实现 516.最长回文子序列 前言 思路 算法实现 动态规划总结 动规五部曲回顾 动规各小专题问题 647. 回文子串 题目链接 文章链接 前言 本题利用动态规划求解时&#xff0c;dp数组的定义与前面的就有些不同了&#xff0c;是难点之…

Python算法题集_翻转二叉树

Python算法题集_翻转二叉树 题226&#xff1a;翻转二叉树1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【DFS递归】2) 改进版一【BFS迭代&#xff0c;节点循环】3) 改进版二【BFS迭代&#xff0c;列表循环】 4. 最优算法 本文为Python算法题集…

黄金交易策略(Nerve Nnife.mql4):利用锁定单消除保留单

完整EA&#xff1a; Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 趋势突然转变有大约30%的概率会产生一张锁定单&#xff0c;反复转变之后难免就会形成几个保留单了&#xff0c;可以选择一张与保留单同向同大小&#xff08;接近也行&#xff09;的单&#xff0c;去消除这…

详解Python中的str.format方法

字符串的内置方法大致有40来个&#xff0c;但是一些常用的其实就那么20几个&#xff0c;而且里面还有类似的用法&#xff0c;区分度高比如&#xff1a;isalpha,isalnum,isdigit&#xff0c;还有一些无时不刻都会用到的split切分&#xff0c;join拼接&#xff0c;strip首尾去指定…

深度学习:Pytorch安装的torch与torchvision的cuda版本冲突问题与解决历程记录

今天不小心将conda环境中的一个pytorch环境中的torch包给搞混了&#xff0c;将其更新了一下&#xff0c;发生了一些问题&#xff1a; 当时运行了一下这个代码&#xff1a; pip install torchvision --upgrade 导致了环境中包的混乱&#xff1a; 只能说欲哭无泪&#xff0c;当…

代码随想录day21--回溯基础

理论基础 回溯法也可以叫回溯搜索法&#xff0c;它是一种搜索的方式。我们在二叉树中也多次提到了回溯。回溯是递归的副产品&#xff0c;只要使用了递归就会有回溯&#xff0c;我们我们就可以笼统的将回溯函数称为递归函数 回溯法解决的问题 1.组合问题&#xff1a;N个数里面…

IMX6ULL移植U-Boot 2022.04

目录 目录 1.编译环境以及uboot版本 2.默认编译测试 3.uboot中新增自己的开发板 3.编译测试 4.烧录测试 5.patch文件 1.编译环境以及uboot版本 宿主机Debian12u-boot版本lf_v2022.04 ; git 连接GitHub - nxp-imx/uboot-imx: i.MX U-Boot交叉编译工具gcc-arm-10.3-2021.0…

《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_2

《剑指Offer》笔记&题解&思路&技巧&优化_Part_2 &#x1f60d;&#x1f60d;&#x1f60d; 相知&#x1f64c;&#x1f64c;&#x1f64c; 相识&#x1f353;&#x1f353;&#x1f353;广度优先搜索BFS&#x1f353;&#x1f353;&#x1f353;深度优先搜索DF…

esp8266-01s WIFI模块使用(一)- AT指令

时间记录&#xff1a;2024/2/15 一、注意事项 &#xff08;1&#xff09;使用英文双引号表示字符串数据 &#xff08;2&#xff09;默认波特率115200 &#xff08;3&#xff09;AT指令以“\r\n”结尾 &#xff08;4&#xff09;3.3V电源接口先连接单片机的3.3V&#xff0c;如…

Spring 用法学习总结(二)之基于注解注入属性

Spring学习 5 基于注解方式创建对象6 基于注解注入属性 5 基于注解方式创建对象 注解是代码的特殊标记&#xff0c;可以简化xml配置&#xff0c;格式&#xff1a;注解名称(属性名称属性值&#xff09;&#xff0c;可以作用在类、方法、属性上 以下注解都可以创建bean实例 Com…

VS Code中的JDK设置

在VS Code使用中&#xff0c;如果机器只安装了一个版本的JDK版本&#xff0c;一般不需要特别关注JDK 的配置&#xff0c;但是在以下状况下&#xff0c;需要对JDK进行特别的配置&#xff1a; 机器有多个JDK版本&#xff0c;不同的项目使用不同的JDK版本项目使用的JDK版本较低&a…

【web | CTF】BUUCTF [护网杯 2018] easy_tornado

天命&#xff1a;这题是框架性的漏洞&#xff0c;Python的web服务器框架&#xff0c;应该已经比较古老了 开局先看一下三个文件 简单阅读后会发现&#xff0c;这里存在文件包含漏洞&#xff0c;可以直接读取文件&#xff0c;但是有一个哈希值校验 一开始我以为是扫描文件后得到…

vue3 之 商城项目—支付

支付模版 pay/index.vue <script setup> const payInfo {} </script> <template><div class"xtx-pay-page"><div class"container"><!-- 付款信息 --><div class"pay-info"><span class"ic…

腾讯云4核8G服务器够用吗?能支持多少人?

腾讯云4核8G服务器支持多少人在线访问&#xff1f;支持25人同时访问。实际上程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#xff0c;假设公网带宽太小&#xff0c;流量直接卡在入口&#xff0c;4核8G配置的CPU内存也会造成计算…