- 博客(145)
- 收藏
- 关注
原创 美团笔试2024秋1
在编译原理中,寄存器分配是代码优化阶段的一项重要任务。寄存器分配的目标是为了有效地将程序中的活跃变量映射到有限数量的处理器寄存器上。在这个过程中,图染色法是一种常用的技术,它通过构建一个冲突图(其中节点代表活跃变量,边代表不能同时分配到同一寄存器的变量对),然后尝试用尽可能少的颜色(即寄存器)来对图进行染色。对于题目中的选项,我们来逐一分析:A. 减少寄存器使用冲突- 图染色法的目的之一确实是减少寄存器使用冲突,通过合理分配寄存器来避免冲突。B. 提高程序效率。
2024-09-14 16:52:25 1067
原创 并发编程:synchronized和ReentrantLock的区别与底层原理
1.都是用来协调多线程对共享对象、变量的访问2. 都是可重入锁,同一线程可以多次获得同一个锁3. 都保证了可见性和互斥性(syhronize本身就具有可见性,ReentrantLock底层写了volatile来保证可见性)
2024-09-13 21:03:52 1043
原创 美团 :深度优先遍历
假设公寓的分布为矩阵形式,中间会有小花园隔开。“片区”的定义为连续相邻的公寓区,即片区的上下左右都有小花园(对角线的不算相邻)。您是员工公寓的负责人,为了方便人员管理,现在需要将公寓划片区管理,每个片区安排一名管理员。公寓矩阵中 1 表示公寓,0 表示小花园,请您统计出整个公寓区有多少个“片区”。
2024-09-13 14:12:12 243
原创 光纤传输技术(1)
1. 间歇性、突发性:这是指数据在网络中的传输并不是连续和平稳的,而是可能呈现出时而大量数据瞬间涌入,时而数据流量很小的状态。8. 安全性:随着网络安全威胁的增加,计算机通信系统需要采取措施保护数据的隐私和安全,防止未授权访问和数据泄露。9. 数字化:相比于传统的模拟通信,计算机通信主要使用数字信号,这带来了更高的抗干扰能力和更易于加密的安全性。3.高速性:随着数据量的增长和技术的进步,计算机通信需要支持高速的数据传输速率,以便快速传输大量的信息。第一代光网络(光电混合网络):光传输,电交换,电选路。
2024-09-10 17:05:05 422
原创 笔试:(润芯微)
API文档:生成API文档是软件开发过程中的一个重要环节,它帮助开发者更好地理解和使用已有的代码库。在Java中,最常用的API文档生成工具是Javadoc。下面详细介绍如何使用Javadoc生成API文档,并提供一些基本的指南和示例。Javadoc简介Javadoc是一个命令行工具,可以从源代码中的注释中提取信息,并生成HTML格式的文档。这些文档不仅包括类、方法、字段等的说明,还包括继承关系图、包层次结构等丰富的信息。Javadoc注释格式。
2024-09-10 16:43:38 703
原创 抽象类、抽象方法、接口
在Java中,接口中的方法默认是抽象的,并且从Java 8开始,接口还可以包含默认方法(default)和静态方法(static)。因此,在接口中定义方法时,并不需要显式地使用abstract关键字。事实上,如果使用abstract关键字,编译器会报错。不一定,想定义就定义。
2024-09-10 15:41:27 448
原创 Cadence或非门 集成电路设计实验
打开如下窗口吗,写入 新Library 名字,选择所属文件夹,右侧的Technology File 选择Attach to an exsiting……(第三个),点apply 点OK,点击from design ,在原理图上选择A B Vout 的pin口 点击 Apply ,点击 OK。单击p,插入pin,设置属性如下回车,拖动pin图标至相应位置。跳出如下窗口:选择smic18mmrf 点击Apply,点OK。选择Launch 选择第一个 ADE L ,打开窗口。选择输出:Output SetUP。
2024-09-03 16:59:56 515
原创 DISTINCT 关键字
在 SQL 中,DISTINCT 关键字用于从查询结果中去除重复的记录,只保留唯一的行。它通常用于 SELECT 语句中,确保查询结果中的每一行都是唯一的。基本用法sql示例假设你有一个名为 employees 的表,其中包含以下数据:DISTINCT 可能会影响查询性能,特别是在处理大数据集时,因为它需要额外的操作来识别和去除重复项。
2024-08-26 14:43:24 203
原创 面经:说说https加密
传输层 tcp传输控制协议 允许跨语言进行通信 操作系统基于C语言或者 http基于C语言 服务器看见通信报文 jvm有java环境 java语言重新创建。
2024-08-26 14:39:03 755
原创 面经:callableStatement,BachedStatement,PreparedStatement哪个不是标准的statement类
实际上,标准 JDBC API 中并没有一个叫做 BatchStatement 的类。相反,JDBC 提供了对批处理操作的支持,但通常是通过 Statement 或 PreparedStatement 的 addBatch 方法来实现批处理。总结:CallableStatement 和 PreparedStatement 是标准的 JDBC 类,而 BatchStatement 不是标准的 JDBC 类。这是一个标准的 JDBC 接口,继承自 Statement,用于执行预编译的 SQL 查询。
2024-08-26 14:18:44 144
原创 java中的关键字
native 关键字在 Java 中用于声明本地方法,这些方法的实现是通过其他编程语言(如 C 或 C++)编写的。使用 native 关键字时,Java 方法的实现会交由本地代码提供,这通常通过 Java Native Interface (JNI) 来实现。在这个例子中,myNativeMethod 的具体实现不会在 Java 代码中出现,而是在名为 MyNativeLibrary 的本地库中定义。goto:保留字但未被使用,计划用于跳转,但在 Java 中不可用。
2024-08-26 14:15:53 132
原创 FileInputStream、FileReader、FileWriter 、File
其中,FileInputStream、FileReader 和 FileWriter 是用于数据流的处理,而 File 主要用于表示和操作文件路径。File:表示文件或目录的路径,提供操作文件和目录的功能,但不直接用于读取或写入数据。FileInputStream:用于读取文件中的字节数据,适用于处理二进制数据。FileReader:用于读取文件中的字符数据,适合处理文本数据。FileWriter:用于将字符数据写入文件。
2024-08-26 14:14:00 96
原创 笔试题:垃圾收集器
Concurrent Mark-Sweep (CMS) Garbage Collector(并发标记清除垃圾收集器)G1 收集器是在 JDK 7 中引入的,并且在 JDK 1.6 中不存在。Parallel Garbage Collector(并行垃圾收集器)Serial Garbage Collector(串行垃圾收集器)G1 Garbage Collector(垃圾优先收集器)
2024-08-26 14:09:37 93
原创 新点面试(2)
2.假设现在有表system tablel,表中有三个字段:id(数值型)、name(字符型)、age(数值型)写出SQL语句完成如下功能:在表中查处年龄大于20,且名字以“王”开头的几率,并且按照年龄的倒叙排列出来(年龄大的在前面)。要产生一个 50 到 100 之间的整数,你可以使用 Math.random() 方法生成一个 0 到 1 之间的随机实数,并将其转换到所需的范围。在网络和数据库配置中,“connection三个子端口”可能指的是连接的三个端口,通常用于不同类型的服务。
2024-08-23 11:31:45 316
原创 新点笔试(1)
如果类中没有定义构造器,编译器会自动为该类生成一个默认的无参构造器,也称为默认构造器。然而,一旦在类中定义了自己的构造器,默认的无参构造器就会被覆盖,如果需要使用默认的无参构造器,需要显式地定义它1。通过构造器,可以控制对象的初始化过程,包括设置对象的属性值,确保对象在使用前处于一个已知和预期的状态。尽管 Stack 类可以用于实现栈的数据结构,但在现代 Java 开发中,通常推荐使用 Deque 接口的实现类(如 ArrayDeque)作为栈的替代,因为 Deque 提供了更高效的双端队列操作。
2024-08-23 10:25:09 900
原创 Java 特性
JVM 会自动回收不再使用的对象所占用的内存,减轻了开发者的负担,减少了内存泄漏的风险。类是对象的模板,对象是类的实例。标准库支持:Java 提供了广泛的网络编程支持,包括 java.net 包中的类和接口,这些工具使得开发网络应用程序变得更加简便。线程调度和同步:Java 的线程调度和同步机制使得开发者可以在并发环境中控制线程的执行顺序和资源访问,避免了许多常见的并发问题。平台无关性:Java 的网络编程 API 是平台无关的,意味着 Java 程序可以在不同的操作系统上以相同的方式进行网络通信。
2024-08-21 14:56:32 414
原创 ioc 和 aop 底层逻辑
Bean 定义和配置:在 IoC 容器启动时,Spring 会读取配置文件(XML 配置文件、Java 配置类或注解)中的 Bean 定义。Advice:切面中的具体操作,比如前置通知(在方法执行前)、后置通知(在方法执行后)、异常通知(在方法抛出异常时)等。IoC(控制反转) 主要涉及 Bean 的创建、依赖注入和生命周期管理,是 Spring 框架的核心特性之一。AOP(面向切面编程) 通过代理机制在运行时将切面逻辑织入到目标对象中,从而实现横切关注点的分离。注入依赖(通过构造函数、属性、方法)
2024-08-21 14:52:34 249
原创 数据库增删改查操作
在 MySQL 和 Oracle 中,增删改查(CRUD)操作是数据库管理的基本操作。尽管它们在基本语法上有很多相似之处,但也存在一些差异。以下是 MySQL 和 Oracle 中常见的增删改查命令示例。
2024-08-21 13:38:38 176
原创 java中的不可继承类
这种设计策略有助于保持类的线程安全、确保不变性,以及防止意外的继承带来的复杂性。这个类被声明为 final,以防止继承,因为它只是一个工具类,不需要被扩展。它被声明为 final,以防止被继承和重写,因为数学操作通常需要稳定的一致性。它也被声明为 final,以确保系统级的功能不被修改。它也被声明为 final,以确保数组操作的方法不会被改变。它被声明为 final,以确保时间单位的操作的一致性和可靠性。这些类的 final 设计确保了它们的稳定性和一致性,避免了在继承过程中可能带来的副作用。
2024-08-21 10:01:16 315
原创 final, finally, finalize的区别
final 是一个关键字,用于定义不可变的常量、不可改变的方法和不可继承的类。具体用法如下:final 变量:当一个变量被声明为 final 时,这个变量的值一旦赋值后不能再被修改。它通常用于定义常量。final 类:当一个类被声明为 final 时,这个类不能被继承。这样可以防止类被扩展或修改。
2024-08-21 09:49:08 252
原创 String和StringBuffer
这个描述也是错误的。String 是不可变的,每次修改字符串都会创建新的 String 对象。而 StringBuffer 是可变的,允许在不创建新对象的情况下修改内容。因此,在需要频繁修改字符串时,StringBuffer 的效率通常比 String 高。StringBuffer 和 String 是不同的类型,不能直接用 String 初始化 StringBuffer 对象。在 Java 中,String 是一个对象。在 Java 中,字符串的处理有不同的类和方法,每个都有其特定的用法和效率特点。
2024-08-20 19:57:07 127
原创 super关键字 java
2.调用父类中被重写的方法:当子类重写了父类的方法时,可以使用super来调用父类的版本的方法,常用于在子类中扩展父类的行为。1.访问父类被隐藏的非私有成员变量:当子类定义了一个与父类中同名的变量时,super可以用来访问父类中的那个变量。调用父类的构造函数:在子类构造函数中,可以使用super()调用父类的构造函数,以确保父类部分正确初始化。定义一个子类来继承父类,super.num指向的是父类中定义的num。定义一个子类来继承这个父类,重写show()方法 ,super调用。
2024-08-20 19:35:38 175
原创 工厂模式 java
工厂模式是一种创建对象的设计模式,它将对象的创建过程封装在一个工厂类中,而不是在客户端代码中直接创建对象。这样可以将对象的创建与使用解耦,使得代码更加灵活和易于维护。定义一个B类实现Product接口,并重写其中的use方法。定义一个A类实现Product接口,并重写其中的use方法。定义一个工厂类,在其中定义一个方法实现获得不同的货物。1. 工厂模式(Factory Pattern)定义一个Product接口。
2024-08-20 19:04:45 285
原创 迭代器 java
通过调用 iterator() 方法获取 Iterator 对象,用于遍历 ArrayList。if ("Banana".equals(element)):检查当前元素是否是 "Banana"。while (iterator.hasNext()):循环检查是否还有更多元素可以遍历。:删除当前元素(即 "Banana")。
2024-08-20 18:56:47 209
原创 java:collection接口
在 Java 中,Collection 接口是 Java Collections Framework 的根接口之一。它是所有集合类的父接口,为各种集合类提供了基本的方法和操作。Collection 接口位于 java.util 包中,并且它定义了集合类应该支持的基本操作。
2024-08-20 18:35:03 379
原创 static关键字
如下 :x 和y属于类中的静态变量,是合法的,z是定义在方法中的变量 ,不能用static关键字修饰。static用于定义静态方法和和类中的静态变量,不能用于定义在方法中的变量。在类中static关键字修饰的方法。
2024-08-20 18:29:07 143
原创 java中数组有没有length()这个方法? String有没有length()这个方法
例如,如果你有一个整型数组int[] arr,可以使用arr.length来获取数组的长度。注意,length是一个字段,而不是方法,因此不需要括号。String类有一个length()方法,用于获取字符串的长度。这个方法是实例方法,因此需要在String对象上调用。例如,如果你有一个字符串String str,可以使用str.length()来获取字符串的长度。对于String对象,使用length()方法来获取长度(需要括号)。对于数组,使用length字段来获取长度(没有括号)。
2024-08-20 09:05:05 383
原创 算法练习4:并查集/连通图 1:知识点梳理
按秩合并:在 union 方法中,通过比较两个根节点的秩,将较小的树合并到较大的树下,从而保持树的平衡,进一步提升操作效率。路径压缩:在 find 方法中,通过递归更新每个节点的父节点到根节点,从而减少树的高度,使后续的查询更快。并查集(Union-Find)是一种数据结构,用于处理不交集的合并和查询问题。下面是一个 Java 实现的并查集数据结构,包含路径压缩和按秩合并的优化:java。这种实现的时间复杂度接近于常数(α(n)),其中 α 是阿克曼函数的逆,非常高效。
2024-08-19 19:01:22 204
原创 Vue.js (1)
Vue.js 是一个流行的 JavaScript 框架,用于构建用户界面和单页应用程序。它的核心理念是通过声明式的数据绑定和组件化的开发方式,使得前端开发变得更加高效和灵活。
2024-08-19 15:47:19 247
原创 希尔排序 java
希尔排序(Shell Sort)是一种插入排序的改进版,它通过将整个待排序的数组分成若干个子数组来进行排序,从而提高了排序的效率。希尔排序的主要思想是对插入排序进行优化,通过“间隔”来减少元素的移动距离,进而提高排序效率。
2024-08-19 15:13:56 484
原创 算法练习1:插入排序(java)
要么就是在中间,那么a[j]这个时候比a[i]小 a[j+2]=a[j+1]比a[i]大,那么a[i]去覆盖a[j+1]的值即可。前面的都有序,如果a[i]大那么就顺势往后派 不进入while循环。小的话,要么找到J已经等于0,那么就排在1的位置。
2024-08-19 14:22:27 65
原创 vue 拦截器
if (config.method === "post" || config.method === "put"): 这个条件检查请求的方法是否是 POST 或 PUT。Axios.interceptors.request.use()来拦截所有的请求,对请求做相应护理后再放行搭配后端,这也是全局的,每个请求中无需自己处理。目的: 这个拦截器在 POST 和 PUT 请求时,将请求数据转换为 URL 编码的字符串格式,这是如果服务器期望这种格式的数据时非常有用的。第二个函数 处理请求配置过程中的任何错误。
2024-08-19 11:35:22 279
原创 面试题:== 和 === 这两个操作符区别
= (宽松相等运算符): 比较两个值时,首先会进行类型转换,然后再进行比较。这意味着 == 会在比较之前将操作数转换为相同的类型。=== (严格相等运算符): 比较两个值时,既不进行类型转换,也不做隐式转换。如果两个值的类型不同,=== 将直接返回 false。在编程中,== 和 === 这两个操作符用于比较两个值,但它们的行为略有不同,具体取决于使用的编程语言。在 JavaScript 中。
2024-08-19 11:19:55 93
原创 java队列
在 Java 中,队列(Queue)是一种常用的数据结构,属于 java.util 包。Queue 接口继承自 Collection 接口,定义了一些基本操作,如入队、出队、查看队列头部等。Java 提供了多种实现 Queue 接口的类,这些类可以满足不同的使用需求。
2024-08-19 10:24:32 792
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人