- 博客(14)
- 收藏
- 关注
原创 蚂蚁二面2
为什么选择用多线程去处理springboot-flask的速度问题。A:主要是为了同时启动多个线程调用model识别的接口。Q:flask那块做了什么处理去做并发?传输速度难道不是网络带宽之类决定的吗?
2024-04-11 14:27:21
141
原创 忘记哪个面试了
问了很多测试相关的讲项目的时候太大白话了,不应该等他问,应该自己主动暴露关注技术细节反问:面试官觉着基础不扎实,还是得好好背八股整个流程:前端有视频。
2024-04-11 14:25:12
469
原创 蚂蚁国际-数据质量一面 g
自我介绍20分钟FJQ业务(质疑上下文讲述不一致)提了好几次让我只讲我做的部分,问我用的Java哪个函数实现的。(估计担心不是我实际的项目)视频长度10s-1mins,集中在20-30s根据视频长度切片,一个视频平均取10-20张,一个时间戳取2帧,可自定义——有没有测试哪个时间阈值效果好,扯了2s、6s,从用户体验的角度,默认4s技术难点:并发,但面试官没问。7分钟船舶算法(讲的比较清晰,讲的快)应该从数据预处理开始讲质疑6m→3m误差大——AIS采样误差大,缺失值多,日常缺3、4个采样
2024-04-03 16:39:46
391
原创 Java后端笔记汇总整理
MAC:媒体访问控制地址,每个网络设备都有一个唯一标识id,这个id就是MAC地址如何转换:通过ARP协议,ARP协议类似DNS,就是IP和MAC地址的映射,每个网络设备会有一个ARP表,里面存了自己已知的IP-MAC的映射关系,如果想知道一个IP的MAC地址,就去广播问询,单播响应。ARP表,广播问询,单播响应引用拷贝是生成了对象的新的引用浅拷贝是生成了新的对象,但是新对象的属性与原对象属性相同深拷贝是生成了新的对象,并且新对象是属性也是基于原对象重新生成。是什么。
2024-04-03 11:32:09
1081
原创 JavaGuide-Java基础
我们需要格外注意的是 .class->机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了,而 JIT 属于。当 JIT 编译器完成,下次可以直接使用。而我们知道,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语言。
2024-03-26 10:53:53
804
原创 Javaguide-并发
任务一般分为:CPU密集型任务和IO密集型任务。单核 CPU 上,同一时刻只能有一个线程在运行,其他线程需要等待CPU的时间片分配。CPU密集型任务:多个线程导致频繁的上下文切换,增大系统开销,反而降低了效率。IO密集型:在等待IO的空闲时间中,CPU可以利用多线程提高效率。
2024-03-19 10:34:47
985
原创 AQS--本质state【CLH锁还没看
state初始值0线程A调用lock()方法,尝试通过tryAcquire()方法独占锁成功:state+1失败:线程A进入CLH队列(等待队列,直到其他线程释放该锁假设成功:释放锁前,线程A自身可以重复获得该锁(state++),state–到0才会让锁回复到未锁定状态任务分成N个子线程,state初始化值N每当一个子线程执行完,countDown()当state为0,CountDownLatch调用unpark()唤醒主线程,主线程从await()方法返回Exclusive 独占,Reentr
2024-03-19 10:09:11
440
原创 synchronized三种修饰方法
实例方法同步:锁定当前对象实例(this),适用于多个线程操作同一对象实例的场景。静态方法同步:锁定类的Class对象,适用于控制静态资源访问的场景,影响该类的所有实例。代码块同步:可以灵活选择锁对象(任意对象或Class对象),提供细粒度控制,适用于需要同步部分代码的场景。选择哪种同步方式取决于你的具体需求,例如需要同步的资源是属于实例级别还是类级别,以及是否需要对同步的范围进行细粒度控制。
2024-03-18 21:52:39
1202
原创 AtomicInteger常用场景+自带的方法
当你需要跨多个线程安全地增加或减少计数时,如统计在线用户数、完成任务的数量等。:用作线程安全的状态标记,例如标记某个任务是否已完成,或者跟踪某个资源的使用状态。:在多线程环境中生成唯一序列号或ID,保证每次生成的值都是唯一的。:用于控制多线程之间的并发执行,比如限流算法中限制在特定时间内的请求数量。:在实现一些无锁数据结构和算法时作为基础组件,因为它提供了无需锁定的线程安全操作。使用可以简化代码并提高性能,特别是在高并发场景下,相比于使用锁(如或)来说,可以减少线程阻塞的概率,提高系统的吞吐率。
2024-03-18 20:54:50
597
原创 AtomicInteger的优势(比起syn和Lock
底层、原子性Cpu提供的原子级指令(CAS)避免锁的使用,减少线程阻塞的情况,减少上下文切换没有锁的使用,所以本身也减少了上下文切换带来的损耗及包下的其他原子类是专门为了解决这类问题而设计的。它们利用底层硬件的原子指令来实现线程安全的变量操作,无需通过锁机制。
2024-03-18 20:52:43
372
原创 代码随想录-链表
默认定义好,自己手撕容易忘// 结点的值int val;// 下一个结点// 节点的构造函数(无参)// 节点的构造函数(有一个参数)// 节点的构造函数(有两个参数)
2024-02-29 16:49:59
991
1
原创 数组-二分查找
不相等:覆盖,fast走,slow也走(相当于跳过了val值,把后面的提上来)相等:fast走,slow不走。产生间隔差,需要覆盖。相当于,slow是索引。
2024-02-01 15:34:29
322
原创 Java基础
如果我们只想让该方法对其所在类的子类可见,则将该方法声明为 protected。抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。(有点像接口)如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。抽象方法的声明以分号结尾非抽象方法的声明以{}结尾(方法体内可以为空静态静态变量,所有对象共享同一个静态变量静态方法,不创建类的实例的情况下如何被调用(全局计数器)命名1.方法的名字的第一个
2023-12-22 22:50:39
740
原创 广播机制需要索引的维度一致
第一个代码片段通过在B和H维度上各增加两个新维度,使得索引能够正确地广播以匹配M_top的形状。第二个代码片段只在B和H维度上各增加一个新维度,这可能导致广播机制无法正确匹配M_top的形状,除非M_top的形状与这种索引方式兼容。
2023-12-05 13:16:52
49
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人