yes

yes

暂无个人简介
知识星球
获赞

3640

浏览

3.5 万

Java后端
2024
湖北工程学院新技术学院

该用户为会员

会员专享项目教程/ 答疑等服务

哔哩哔哩 MCP demo 的设计与实现

抽奖

抽奖

抽奖

#工作# #日常分享# 武汉今天早上起来天气有点阴沉,有点小冷,早上去公司手里也没什么活干,就摸鱼修改自己的论文。后面听到组长问产品还有什么简单的需求没,然后产品说没什么简单的需求了,然后就说其他需求都有点难,主要是我总共做的三个需求,至今都还没提测上线。组长也怕我之前的需求没做好什么的。后面就说到我没有组里上一个实习生积极(已转正),然后我听着其实也有体会,因为基本上需求写的过程中有问题了/bug自己解决不了等等我才会和组长沟通,其他时间基本就自己一个人呆着埋头干,自己也挺郁闷的,可能是因为我本身就有点社恐加上组里的开发包括组长都是三十多岁的,有时候聊的都是关于家庭啊家里小孩什么的,和组里的其他开发基本没有什么交流,因此总的来说就像是一个透明人一样,有我没我都一样那种。后来中午时候我和姐姐交流了下这件事。 就我目前这种处境,肯定是有问题的。①职场不同于在上学,这个过程中要转变自己的学生思维,职场上不能说一天到晚什么也不说,这样领导都不知道你今天做了什么,无法体现自己的价值。其实我也有感觉,如果一天都没和组长沟通,我自己内心也很虚,但是和组长说上那么几句我心里也特别有底气。②工作积极主动点,和同事交流交流项目啊,问问需不需要帮助。绝不能做个透明人,否则同事可能觉得你是有心理疾病什么,也会觉得有你没你都一样,无法体现自己的价值,更别指望转正了。③组里聊天,可以适当的附和几句,象征性的聊两句,不能让人把自己排在外,尝试融入团体。 沟通过后我也觉得我得改变,目前这种处境很危险,只能说慢慢改变吧。晚上和身边的同事一起去吃晚饭(之前一直都是独来独往自己吃饭),然后路上听他们在闲聊,也会插上几句,后来就和其中一个老大简单哥聊了聊家庭里的一些琐事,买没买房啊,来公司干几年了等等,聊的也挺开心。 晚饭回来组长让一起吃饭的那个老大哥看看我写的代码有没有什么问题,然后就和老大哥一起看代码,也指出了我之前写的代码哪里哪里不妥当,比如redis只存不取、多个地方使用同一个key就可能出问题等等,这些因为我刚进来时照着别的代码抄过来的,每细想。还有做的第二个需求,算下来做了差不多两个月了。至今需求都没有个定论。做的就是一个数据库表之间的数据同步问题。因为这个需求是没有严格意义上的说明文档的,只能依靠一张图片,来尽可能实现他的功能,但是到最后的效果并不理想。 首先最大的问题就是这个需求我并没有理清楚,究竟能不能多个表往同一个表里写数据,这在我开发阶段完全忽略了这个问题,也没有想到过,假设有表A、表B同时往表C里写数据,表A向表C写数据是个定时任务,每天要执行定时任务,需要将表C中前一天同步到A表中的数据删除(删除如果数据量很大又会有问题),再进行同步,但问题是表A、B、C并不固定,并没有说有一个字段可以作为通用的标识,来作为判断表C中哪个数据是来自于表A,哪些数据来自B等等,我当时想过使用活动ID作为标识,但又想到如果表A中数据量很多,活动ID多则成千上万,来将活动ID作为数据来源进行维护又是一个问题,因此我也和产品撕逼半天。其次,同步有自动同步(定时任务quarz实现)和手动同步(多线程异步实现),手动同步是可以指定活动ID,然后立即同步,代码逻辑里需要考虑删除之前指定活动ID的数据,在原来数据的基础上插入新的数据,我之前做的是通过TRUNCATE TABLE 语法,直接删除整张表的数据,因为原始数据数量不固定,少到几十条多到成千上几十万条数据,但这样就会引出一个新问题,如果使用我的方案,就违背了产品以及业务那边的想法,但是通过加where条件删除,如果数据量几十万,删除的过程会很漫长,同时不断删除插入数据,由于自增ID,ID会不断累加,导致很多问题。 晚上和产品,组长,我旁边的老大哥聊的很开心,也发现开发中的一些问题,组长的意思是明天和业务那边进行沟通,最终再做定论。

【求职】通过星球项目斩获了 2 个 Offer,开心!

职场 项目 工作 #面试# #求职# 今天是我最开心一天,因为今天一同斩获两个offer,感谢鱼皮哥,真正让我学习到了很多以前从未学到的知识!也通过鱼皮哥的智能BI项目和API开发平台真正打动了面试官。(面试官后续给我打电话发offer的同时给说他们公司也在研究ChatGPT,让我后面自己好好准备研究研究chatGPT,他们公司也在搞这方面的业务,我自己是有点慌的,因为感觉就只是套了鱼聪明的模型) 面试一: 10号也是昨天线上面试了一个小公司,问的也比较基础,面试过程还是有一些紧张,不过还好过了。 面试问题: 1. 为什么要做智能BI项目和API开放平台项目? (BI:利用当前比较火的AI服务,更快更便捷的帮助企业完成数据源分析,举个例子,如果我们想要分析近一年网站的用户增长趋势,传统的数据分析平台需要手动导入数据、选择要分析的字段和图表、根据图表得出分析结论,需要专业的数据分析师完成。但本次设计的项目则不同,只需输入分析目标、上传原始数据,系统将利用AI自动生成可视化图表和学习的分析结论,让即使是外行人也能轻松使用,是我自己一直想做的一个平台。API:尽可能多的帮助和服务用户和开发者,让他们更方便的获取想要的信息和功能,接口开放平台可以帮助开发者快速接入一些常用的服务,比如历史上的今天发生的事情,每日一句英文,随机头像等,这些是小程序或者应用开发中常见的功能,这些接口可以让用用户获取更全面的功能和服务,提高用户体验,所以这是一个很有意义的项目,可以为开发者带来更多的便利和价值。) 2. 前端是否是自己写的?(这两个项目前端我基本跟着鱼皮哥写的,同时也跟着官方文档扩展了下,所以就跟面试官说自己写的) 3. 如果让你在做后端开发的前提下,做前端的一些事情你愿意吗?(那肯定愿意嘛,毕竟后端程序员基本都是往全栈发展的,所以公司需要我写前端那我也可以接受,但重心还是放在后端,同时前端我们男生和女生比也确实没什么优势) 4. 演示项目 ?(这里我把项目上线了,确保项目的真实性,同时面试官也提前通过地址访问过项目) 5. Maven 依赖传递产生版本冲突怎么解决?(通过指定版本或者排除冲突的依赖,关键字是<exclusions>) 6. HashMap底层原理?(1.7 数组 链表,1.8 数组 (链表 | 红黑树) jdk1.7 1) 初始化一个数组(默认长度16) 2) 当put 值时,计算key的hash值,二次hash然后对数组长度取模,对应到数组下标 3) 如果没有产生hash冲突(下标位置没有元素),则直接创建Node存入数组 4) 如果产生hash冲突,先进行equal比较,相同则取代该元素,不同,则插入链表 jdk8开始链表高度到8、数组长度超过64,链表转变为红黑树,元素以内部类Node节点存在 1) 计算key的hash值,二次hash然后对数组长度取模,对应到数组下标, 2) 如果没有产生hash冲突(下标位置没有元素),则直接创建Node存入数组, 3) 如果产生hash冲突,先进行equal比较,相同则取代该元素,不同,则判断链表高度插入链表,链 表高度达到8,并且数组长度到64则转变为红黑树,长度低于6则将红黑树转回链表 4) 如果存储的数据 key为null,存在下标0的位置 ) 7. ==和equal有什么区别?( ==是一个比较运算符 ①==:既可以判断基本类型,又可以判断引用类型 ② ==:如果判断基本类型,判断的是值是否相等 ③ ==:如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象 equals是Object类中的方法 ④equals:只能判断引用类型 ⑤默认判断地址是否相等,子类中往往重写了该方法,用于判断内容是否相等,比如Integer,String) 8. Integer和int有什么区别?应用场景分别是什么?(int 是 Java 的基本数据类型之一,用于表示整数值。它占用固定的内存空间,通常是 4 个字节。Integer 是一个类,属于 Java 中的包装类(Wrapper Class)。它将 int 包装为一个对象,从而提供了一些额外的功能。Integer 类位于 java.lang 包中,因此在使用时不需要显式导入。int 是基本数据类型,它在内存中的存储效率较高,适用于大量需要整数运算的情况;当需要在面向对象的环境中处理整数值时,可以使用 Integer 包装类。它使得 int 可以像对象一样进行操作。在集合框架(如 ArrayList、HashMap 等)中,由于集合要求存储对象而不是原始数据类型,所以可以使用 Integer 作为元素。在需要进行数据类型转换时,Integer 可以通过方法提供更多灵活性,可以将 Integer 转换为字符串(使用 toString() 方法)。Integer 对象允许表示 null 值,而 int 不行。这在某些情况下可能会很有用,比如表示缺失数据。) 面试二: 11号也就是今天下午,面试了一家大一点的公司,问的也比较全面。 1. 上来还是问为什么做这两个项目? 2. Maven 常用命令?(我就简单介绍了下clean、install、package这几个命令) 3. Tomcat 常用命令?(这块确实没怎么了解过,就和面试官介绍了之前在JavaWeb阶段学习了下,现在使用SpringBoot内置的Tomcat,然后基本没用过命令) 4. git的常用命令?(介绍了创建仓库、提交代码、克隆、拉代码的流程和命令) 5. Linux常用命令?(我就讲了我记得的几个命令,ls、cat、cd,因为确实没怎么使用过,都是用的时候百度) 6. HashMap 底层原理? 7. MySQL调优?(我就和面试官说查询的时候返回指定字段,不要全部返还,其他没了解过) 8. API项目使用缓存了吗?(其实我没有用缓存,然后我就欺骗了面试官,因为之前确实想过怎么实现,就大致讲了自己的看法:①先缓存不需要传参数,请求返回的结果数据一段时间内都是同一个结果的数据,那么可以使用redis直接缓存这些数据,设置过期时间时根据接口的更新时间来设置(比如每一天接口返回一个不同的数据),比如可以使用定时任务 缓存预热的方法在每天凌晨定时缓存,过期时间设置为24H;②通过数据监测或分析统计那些热点接口,使用业务名:类名:请求url:请求参数的组合作为缓存键,确保每个不同的请求都有唯一的缓存键,如果结果是单个值,则可以使用Redis的字符串类型存储;如果结果是一个复杂的数据结构,则可以使用哈希类型。(这类设置时过期时间可以稍微短一点,因为参数不一致性,每个人每次访问的参数都可能不同,可复用性不高,降低Redis压力),③缓存策略优化,使用LRU或LFU淘汰算法策略,LRF算法是使用双向链表和哈希表来维护缓存访问的顺序,将最新访问的接口提到前面,留在尾部的就是不经常访问的数据,进行淘汰。LFU淘汰策略是使用堆或者队列作为数据结构来存储每个接口的访问频率和时间戳,每次访问一个接口时,就将他的访问频率 1,淘汰数据时,根据访问频率将较低的淘汰,如果访问率相同就按照时间戳将最先被访问的数据淘汰;④为处理恶意请求,即缓存穿透和雪崩,可以使用缓存空值以及布隆过滤器,或设置随机的缓存失效时间避免缓存同时失效。) 9. API项目里SDK开发流程?(就创建项目引入依赖,然后编写配置类,用@Configuration、 @ConfigurationProperties("api.client")、@ComponentScan注解标记配置类 ,然后在resources目录下的MATE-INF下的spring.factories里加入配置类的包路径,然后在其他项目中引入依赖,在yml里加载依赖的参数。) 10. spring.factories是怎么加载SDK的?(这里我回答的是SpringBootApplication注解下EnableAutoConfiguration注解下Import注解,会在项目启动的时候去spring.factories文件中加载配置) 11. 智能BI项目,如何实现智能分析的?(考虑到成本问题,接入类似于ChatGPT的第三方的服务,引入AK,SK,然后通过预设好的模型,指定AI智能回答什么内容,比如分析图表这里AI只能生成图表代码以及分析结论,不能生产多余的东西,否则程序会报错) 总结: 我总共面试了四家公司,都还是比较看重基础的,所以我感觉Java基础非常非常重要,同时就是,做完项目一定一定要上线,因为只有上线了面试官可能觉得比较真实,这两场面试面试官都提前打开看了项目的,对于项目里的一些问题自己可以提前设想一下怎么处理,面试被问到也可以当作自己已经实现了,然后对面试官一顿输出。还有面试时候可以放松点,刚开始面试的两场我也特别紧张,不过后来这两个越面越自信,和面试官侃侃而谈。对于面试存在问题回来要搞清楚,反问环节可以问问面试官自己哪里做的不够好,有什么需要提高改善的地方。以便后续改正。第二个面试的大公司,对这两个项目都比较感兴趣,问的细节也比较多,然后给我透露他们公司也在搞chatCPT方面的业务,让我入职之前再学习学习chatGPT相关的知识。可见鱼皮哥带我们做的项目还是很潮的。最后也希望各位鱼友也可以斩获找到心仪的offer!成功上岸,冲冲冲!!!

#合租 房子 有没有鱼友在武汉这边合租的呀,今天刚被通知面试通过了,想租个房子

面经#求职# 职场 #面试# 昨天收到面试邀请,武汉的一家中小型公司(300-500人),但是我看了一下公司信息07年成立的,注册资金1亿多,然后觉得挺不错的就去了,今天是十点到面试公司,然后进去之后我就把电脑打开,运行了下项目,准备面试之后给面试官看一下。 让我万万没想到的是刚坐到那里,Hr就给我拿了份笔试题,我就很突然,然后有点慌,因为Hr也没提前和我沟通过这件事,但是冷静了会就静下心来慢慢做了起来。量也不少,足足四页,整的跟期末考试一样。下面是我目前记得几道笔试题。 笔试题: avue数据双向绑定 ?(v-model这毫无疑问) b哪个可以用作组合标签 ?(<p> <a> <span> 还有个不记得什么选项了,我不是很理解这个题目就稀里糊涂选了<span>) cjs 两个变量相加(a=22,b=number ,m=a b,m=?) dcss 文字居中 (text-align: center;) eMath.round(-1.5)=? (答案:-1 我写的-2) f2*8 如何最快计算出来(回来和朋友一沟通恍然大悟,这不就是位运算吗,当时真是脑子里啥也记不得了,没想到) gjava八种数据类型,各自的位和字节 hhashmap工作原理(我没搞清楚工作原理和底层原理,答成了在jdk1.7 、1.8 具体怎么实现的,然后有什么区别 ) icookie 是什么? cookie 和session 的区别? j怎么理解http 协议,还有http底层原理如何实现?(压根没复习到,乱写的) k使用任何编程语言实现字符串反转? l假如有一个长度为100w的数组,里面有两个元素重复,请设计一套算法找出重复元素。(最后一道压轴题,我开始自己是想着用一个Hashmap来解决,遍历数组然后,统计出现次数,后面想到长度100w,那这样肯定效率太低了,就想到使用多线程,多线程这款鱼皮哥也反复讲过,所以印象很深刻,所以就想者先把长度为100w的数组按照每个长度为1000进行分割成若干个数组,最后多线程遍历这些数组,使用多线程操作同一个map,那肯定就要考虑线程安全问题,所以就想着使用CurrentHashMap,最后map里出现次数是2的就是重复数据,最终大致就这样解决这个题,各位鱼友有什么别的办法也可以在评论里进行评论,大家一起进步) 以上就是我目前记得的一些笔试题,有一部分忘记了,回来发现,答得真是一塌糊涂,还花了足足一个多小时,基础题快错完了,最后的面试里面也是发现这家公司非常注重基础,基础基础很重要!!!!! 面试部分: aSpringmvc工作原理 ?(笔试还好,面试就瞬间有点慌,因为之前也就背了背Spring的工作原理,然后我就简单说了一下Spring的装配过程什么的) bJava多态怎么理解?(之前有专门背过专业的回答,然后一慌就忘了,然后就按照自己的理解讲了讲) c看你项目里涉及安全的比较多,问问你网站被攻击的方式有什么?(这个我也没准备,然后就临场想到了最常见的ddos,流量攻击,当然也有其他的,比如SQL注入,请求伪造,敏感数据泄露等等) dNacos 底层原理知道吗?(仅学习怎么使用,原理没怎么了解) e线程池了解过吗?讲讲。(听到这总算是有点信心了,因为这块鱼皮哥不止一次讲过了,所以我也烂熟于心,给面试官讲了下) f你是怎么学习的?(这里我就按部就班的说我是看官方文档,然后里面一般都会有一些Demo,我给他复制到本地运行,然后看本地的运行结果,然后不理解的部分就去网上看视频,比如B站,然后有一些问题的话看网上博客,开源框架的话看github的Issues,看看里面有什么解决办法,还有就是问同专业的学长进行解决) g进行一下你的个人总结(这块我就讲了讲在学校的学习过程,以及处理问题,人际交往关系,想到什么说什么,回答的还是比较乱) 以上就是关于面试的一些问题,因为我笔试花太多时间了,导致最后都到饭点了,面试关可能有点急,也没具体问项目。 反问环节: a我们公司的Java开发岗的职责是什么(这个公司主要是物联网的,所以面试官的回答是关于物联网的一些网站项目) b加班多吗(软件公司基本都加班,不过我们是偶尔加班) c晋升流程?(半年一次考核,一年两次考核,优秀的话可以考虑晋升) d薪资构成?(绩效考核,然后对根据考核结果,划分优 良 等等,具体没怎么讲) e你觉得我刚面试的哪个环节回答的不会,有什么问题?(这里面试官和我讲了讲应届生他们公司比较看重的是基础知识,一些底层实现原理这些,对于框架的要求不是很高,还有就是回答可以突出重点,让面试官比较清晰的认知到你的优点) 个人总结: 今天的面试也算顺利,然后这也是我第一次面试,难免有点慌张,可以看的出来,这个公司还是很注重基础的,所以回来一定要恶补一下基础。最后面试官要走的时候我和面试官沟通了下,让他看一下我做的项目,然后讲了一下里面哪些地方怎么实现的等等,这次面试我感觉我基础实在是太差了,然后很有可能通不过,因为面试官比较看重基础!!!

【星球项目】伙伴匹配系统拓展

Day4: 1.记忆30个单词 2.运行项目Demo 3.跟着视频学习完成两个功能

下载 APP