有点心碎的赖床专家很活跃 level
获赞
90
粉丝
38
关注
1
看过 TA
1124
郑州烟草研究院
2024
Java
IP属地:浙江
暂未填写个人简介
私信
关注
2023-10-25 15:14
郑州烟草研究院 Java
快手 电商 据说去年本23+2房补 本科
带专爷:说pcg坑,可能应届生的第一份工作在哪里也挺重要的
0 点赞 评论 收藏
分享
2023-08-28 16:21
郑州烟草研究院 Java
一面1.oop思想面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,用类来表示。某个事物的一个具体个体称为实例或对象。面向对象编程的核心概念包括类、对象、 封装、继承和多态2.list和set3.HashMap和HashTable4.二叉树左子树节点和 递归属于dfs bfs 层序遍历哪一种 dfs!二面1.mysql乐观锁乐观锁通常使用版本号来实现。每个数据行都有一个版本号,当事务读取数据时,会记录下读取时的版本号,在提交事务时,会检查该版本号是否发生了变化,如果变化了则表示发生了冲突,事务需要进行回滚。乐观锁是一种相对轻量级的并发控制机制,适用于并发冲突较少的场景,可以提高系统的并发性能。2.mysql事务隔离级别3.场景题:抢红包分布式系统 如何实现一人一单基于数据库的分布式锁、分布式缓存redis的原子操作4.场景题:如何限制tps令牌桶算法限流、负载均衡、消息队列、缓存、数据库优化(如索引)5.令牌桶算法leetcode15 三数之和三面主管面实习拷打1.mysql悲观锁和乐观锁悲观锁: 悲观锁假设在整个事务过程中会有并发冲突发生,因此在访问数据之前就会对数据进行加锁,以防止其他事务对数据的修改。主要通过使用SELECT ... FOR UPDATE语句来实现。乐观锁: 乐观锁则假设在整个事务过程中并发冲突的概率较低,因此不会事先对数据进行加锁,而是在提交事务时检查是否有其他事务对数据进行了修改。主要通过使用版本号或时间戳来实现。乐观锁的优势在于不需要显式地加锁,减少了锁的开销,但需要在更新数据时进行额外的版本号或时间戳的检查。悲观锁适用于并发冲突概率较高的场景,适合处理长时间的事务操作;而乐观锁适用于并发冲突概率较低的场景,适合处理短时间的事务操作。2mysql索引合理性查询频率、数据量、数据更新频率、索引选择性反问 滴滴哪些部门有前景、盈利了解一个公司可以看财报 滴滴国际化主要盈利为金融 出行 外卖配送 在南非国家如巴西建设基础金融支付服务 类似于支付宝微信支付这种业务
投递滴滴等公司10个岗位
0 点赞 评论 收藏
分享
2023-06-21 15:34
郑州烟草研究院 Java
时长:30min八股:1.登陆拦截器实现原理?拦截器的思想主要是基于Java的反射机制,属于面向切面编程(AOP)的一种运用,就是在Service或者一个方法前调用一个方法preHandle(),或者在方法后调用一个方法postHandle(),甚至在抛出异常的时候做业务逻辑的操作afterCompletion()具体实现:https://blog.csdn.net/weixin_47555380/article/details/1079173482.如果要在http header中增加字段,应该放在哪一步?Http头一般存放校验规则,一般规定Http头中必须携带 User-Id 与 Token 来验证用户身份,在拦截器中间这两个信息会绑定到ThreadLocal,所以增加字段应该放在拦截器之前。(这个问题很迷惑...可能是实际开发的业务逻辑,瞎编仅供参考,面试官居然没有反对)3.线程池工作原理?介绍七个参数 工作流程4.初始创建线程池里有线程吗?没有理解面试官的奇特脑回路...只能往四种线程池扯了扯,并介绍了对应的核心线程、阻塞队列容量大小设置5.线程池的线程异常会发生什么?线程池任务提交有两种方法execute()和submit()。首先二者最大的区别就是execute没有返回值,submit有返回值(future类型),前者会抛异常,后者内部捕获异常。在不需要返回结果的情况下,最好用execute ,这样如果疏漏了异常捕获,也不至于丢掉异常信息6.项目如何实现线程通信?volatile 关键字(基于共享内存)Object类的 wait/notify 方法condition 的 await/signal 方法join 的方式7.Synchronized和ReentrantLock区别?相同点都是非公平锁·获取和释放方式机制·底层实现层面·性能方面:sychronized锁膨胀机制,资源竞争不是很激烈的情况下,性能优于后者无手撕代码,听说只要过了前面的笔试,后续不需要手撕(有一说一,LAZADA的笔试题是真简单,和团子pdd完全不是一个维度)再一个就是,阿里面试官几乎问的大多是奇怪的场景题,脑回路也很奇特,背的那一套八股不能生搬硬套,需要临场发挥。
投递Lazada等公司10个岗位
0 点赞 评论 收藏
分享
2023-06-15 16:32
郑州烟草研究院 Java
自我介绍1.为什么想来互联网2.遇到最大的困难3.最大的优点和缺点八股:1.项目用到的多线程?从微服务角度介绍业务,再使用线程池,实际开发的过程中,难免需要调用多个接口来汇总数据,如果所有接口(或部分接口)的没有依赖关系,就可以使用线程池+future来提升性能。2.SQL题:存在a表不在b表的数据①使用 not inselect distinct A.ID from A where A.ID not in (select ID from B)②使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录select A.ID from A left join B on A.ID=B.ID where B.ID is null③select * from B where (select count(1) as num from A where A.ID = B.ID) = 03.手写单例模式:饿汉、懒汉、DCL( Double-checked locking)DCL注意点:1.volatile禁止指令重排因为instance = new DCL() 其实有三步,即①为instance 分配内存空间②初始化 instance③将 instance指向分配的内存地址如果多线程条件下,可能会变为①→③→②,会导致一个线程获得但没有初始化的问题2.两次if(instance==null)判断防止创建多个对象反问:1.入职后学习的技术栈大概介绍了一些微服务架构思想,对于实习生来说基础更重要2.对年轻人的建议工作最开始三年,尽量注重技术提升,之后可能会有家庭、婚姻、孩子的干扰,在还有精力的时候尽量充电3.怎么看待35岁危机在年轻的时候尽量提升自己的价值,选择互联网一方面是高薪,另一方面要承担相应的风险和弊端4.怎么看待最近的裁员风波和“润学”裁员主要与公司的组织架构有关,最近经济不景气,把一些高薪人员裁去,再吸纳应届生新鲜血液;再说“润学”,其实互联网早就饱和,劳动市场遵循供需比,国外之所以竞争相对不激烈,是因为人少,既然生在中国,选择了这个行业,就要有危机意识总结二面八股很少,更注重软实力和代码能力快手面试官真的很好,缓解了我的焦虑迷茫
投递快手等公司10个岗位
0 点赞 评论 收藏
分享
2023-06-13 17:22
郑州烟草研究院 Java
自我介绍+项目流程讲解(20min) 无反问和深挖八股:(20min)     1.线程的状态?拓展:为什么处于blocked的线程不占用cpu(操作系统角度回答)?     我当时回答:线程的 blocked状态往往无法进入同步方法/代码块,因为无法获取到与同步方法/代码块相关联的锁,因而不占用cpu。面试官认可了,但我事后没有找到相关的面试题,回答仅供参考。     2.对volatile的理解     3.对ThreadLocal的理解     4.interrupt方法对线程的影响     5.runnable和callable方法区别     6.线程池的理解?拓展:为什么先判断阻塞队列是否已满,再判断线程数是否小于最大线程数(没答上来)     面试官说,阻塞队列(救急数)一般容量都没有限制,而最大线程数=核心数+救急数; 如果先设置最大线程数,很浪费资源,违反需要尽量使用较小的线程池原则,一般设置线程池大小为CPU核心数+1。 因为CPU密集型任务使得CPU使用率很高,若开过多的线程,只会增加上下文切换的次数,带来额外的开销。笔试:(20min)需要自定义链表结构 自己创建输入和输出1.轮转数组Leetcode189 要求空间O(1) 没a出来换了下一道2.旋转链表Leetcode61 先成环再断开 迅速a完补充:1.无反问环节 全程时间线非常紧凑 无任何闲聊 感觉很面试官专业2.面试的部门是[效果营销研发中心] 面试链接标题显示了[社招] 但应聘的岗位又是[java暑期实习] 有点迷惑 而且这个岗位我没有在官网找到(官网海投的部门全挂了)3.八股很基础,面试官中途询问是否了解某些技术,但是由于完全没有听过所以直接跳过,猜测是实际开发会用到的框架/技术,所以即使没听过,也不需要有任何心理压力
投递快手等公司10个岗位
0 点赞 评论 收藏
分享
2023-06-08 20:01
郑州烟草研究院 Java
一面 : 1h自我介绍: 5min项目涉及到的八股: 40min1. CAS的缺点?     ·ABA问题      解决方案: 同数据乐观锁的方式给它加一个版本号或者时间戳,如AtomicStampedReference     ·自旋消耗资源     解决方案:破坏掉for死循环,当超过一定时间或者一定次数时,return退出。JDK8新增的LongAddr,和ConcurrentHashMap类似的方法。当多个线程竞争时,将粒度变小,将一个变量拆分为多个变量,达到多个线程访问多个资源的效果,最后再调用sum把它合起来     ·多变量共享一致性问题      解决方案:CAS操作是针对一个变量的,如果对多个变量操作,可以加锁或封装成对象类解决2.Spring依赖注入的方法?具体实现?     Set方法注入 构造器注入 静态工厂的方法注入 实例工厂的方法注入;实现可通过注解/xml配置文件3.如何实现分布式锁?     ·在获取锁时存入线程标示     ·在释放锁时先获取锁中的线程标示,判断是否与当前线程标示一致(解决普通setnx分布式锁并发条件下,a线程阻塞获取锁超时,b线程进来也能获取锁的问题)     ·如果一致则释放锁     八股 :1.LinkedList底层原理?     基于双向链表的数据结构,头尾节点增删时间复杂度是O(1),其他都需要遍历链表,时间复杂度是O(n),给定节点增删时间复杂度也是O(1),让cur.pre = cur.next即可反问 :(10min)1. 实习生实际项目开发场景?答: 技术栈没有出入,多了一些微服务架构和分布式相关知识,更多在于业务实现,要考虑的问题与单体系统不同2. 面试时如何筛选实习生?答: 水平到了基准线就会继续进入下一轮算法: 合并两个有序链表 需要自定义链表结构 自定义输入输出(没搞出来 不会用acm模式)但是核心代码a出来了面试完十分钟之后立刻发来二面链接,菜鸟震惊二面:1h纯项目拷打 无八股 更加注重项目细节 讲述自己如何从0开始搭建项目的过程 总结一下,两个面试官都只问项目,接着落实到具体实现以及用到的技术栈+项目难点,几乎没有烦人的八股/源码拷打(可能穿插在项目里了吧),跟我之前面的厂完全不一样的感受,现在等后续通知中
投递滴滴等公司10个岗位
0 点赞 评论 收藏
分享
2023-05-31 01:00
已编辑
郑州烟草研究院 Java
先总结一下,面试官特别随和,但是我太菜。拷打完我的秒杀项目后,突然问我C++的八股,后续拷打操作系统和计网。笔试题很简单,一道链表倒数第k个元素,另一道和最大子序列。面试官说没有C++基础反正也过不了面试,笔试题看看就行。项目:1.redis缓存空对象用于解决缓存击穿,是否有做过压测?为什么选择缓存空对象,而不使用布隆过滤器?     编了一个2000QPS的并发量,但是面试官说压测要一直提升直至检测出性能瓶颈,虽然实际开发的某些业务功能不需要那么高,但是需要必要的检测。     缓存空对象实现简单,维护方便,代价是占用额外的内存空间;而布隆过滤器实现复杂,可能误判。2.redis使用setnx实现分布式锁,如何控制锁的有效期?     用redission框架的看门狗机制,每隔一段时间检测是否持有锁,业务结束后释放即可。3.redis缓存击穿使用互斥锁解决方案的利弊?     互斥锁保证了数据的强一致性,不消耗额外内存,实现简单,缺点就是损耗性能(线程需要等待)的同时面临死锁的风险,而逻辑过期与之相反。4.为什么使用lua脚本?听过pipeline吗?     lua脚步保证操作的原子性,但不适用于多线程并发。pipeline在实际生产更并发场景更实用,但无法保证一致性。八股:1.C++虚函数和多态原理及作用2.C++多重继承的构造函数和析构函数操作系统:1.linux查看硬盘信息      df -h选项可以以人类可读的格式输出硬盘使用状况2.linux查看网口      tcpdump 类似的有windows中的wireshark3.linux查看网络状态      netstat 可以得到网卡接口上的路由表、网卡接口信息等。在网络编程中用来显示TCP连接以及状态信息4.内存管理机制?     连续内存管理和非连续内存管理。后者细分为页式、段式和段页式管理机制。5.进程和线程区别?进程之间通信方式?     管道 消息队列 共享内存 信号量 信号 socket计网:1.TCP三次握手?详细状态?为什么不是两次?     客户端:CLOSED、SYN_SENT、ESTABLISHED     服务端:LISTENING、SYN-RCVD、ESTABLISHED2.TCP和UDP区别?
水龙王_那维莱特:java岗也会问c++吗😰
投递腾讯等公司10个岗位
0 点赞 评论 收藏
分享
2023-05-23 16:54
郑州烟草研究院 Java
投递饿了么等公司10个岗位
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务