10.23 联蔚数科 java 实习

已挂。跟我说实习时间不合适,招聘详情写的4个月每个月4天,面试完问我能不能6个月每个月5天,我说可以。感觉是我在反问的时候说打算明年春招,面试官觉得我到3月份就溜了,引以为鉴。

一开始面试约下午五点,后来跟我说和别的面试冲突了,改成第二天上午十点,过会儿又打电话说面试官觉得简历很合适,又改到当天下午五点...

面试官上来先跟我说,这次面试问题不深挖,就简单的了解一下哪些东西用过哪些东西没用过,技术学起来不难,只是为了了解日后进来的话知道从哪里开始带。

1.java三大特性(封装继承多态)
2.jdk和jre是什么(忘了,只知道jre是运行环境)
3.java基本数据类型基本类型和包装类的区别(我这里回答的是在开发中用到集合相关的只能存储泛型,无法存储基本类型,面试官说主要想问的是基本类型存储在虚拟机栈,包装类存储在堆。)
4.error和exception有什么区别(不知道,说只知道error是一些错误,exception是一些可以被捕获的异常)
5.那说说你遇到过哪些exception(空指针异常,除以0,数组越界,类型不匹配)
6.java反射知道是什么吗?(回答知道,正准备说呢面试官说没事,知道是什么就行,不用管底层)
7.arraylist和linkedlist的区别(说了个底层实现不同,一个是动态数组一个是双向链表,然后就下一个问题了,说知道这个就够了。)
8.redis如何存储、查找、删除某个键?对应的命令是什么?(set、exists、get)
9.redis的高级数据类型有没有用过?(说了bitmap和hyperloglog,没具体问怎么用的)
10.介绍一下项目中用到的redis场景(说了登录时用redis存储验证码和用户的token,以及缓存店铺和商品,在点赞的时候使用set存储)
11.介绍一下秒杀业务如何解决超卖问题(cas乐观锁)
12.如何解决一人一单问题(分布式锁redission)
13.异步优化是怎么做的?(在确定当前用户有购买资格后直接返回用户结果,并把相关信息添加到mq中,另开一个线程去后台处理mq中的业务,写入数据库和redis,没追问)
14.线程池了解吗?创建线程池的参数大概有哪些(核心线程数,最大线程数,救急线程生存时间,时间单位,线程队列,拒绝策略。七个核心参数,少说了一个线程工厂)
15.线程池的种类(只回答了固定线程池,没有临时线程和单例线程池,只有一个线程,保证按顺序执行)
16.了解mysql的索引叭?(说了聚集索引和非聚集索引,面试官说知道这些就可以了)
17.sql慢查询如何优化(explain关键字,然后分析是否命中索引,sql连接的方式,以及一些建议)
18.复杂的sql优化做过吗?涉及到多表联合查询的(回答写过,考研的时候学过多表查询等等的优化,但实际开发中用得不多。面试官说写过就行,都会生疏的)
19.springIOC讲一下
20.AOP是什么?讲讲业务哪里用到了(讲了下基本概念,场景说了添加公共字段)
21.还有别的场景适用AOP吗(回答很多场景,说了一个日志)
22.知道哪些设计模式(只知道工厂模式、策略模式和单例模式(黑马面试题里学的555))
23.spring中的设计模式了解过吗(无,只知道spring的单例模式)
24.springboot的五大还是六大组件讲讲(回答不知道是什么,后面问了几个springcloud的东西,我说没用过cloud)
25.说一下在开发时service层和dao层的逻辑(回答先写好对应的mapper接口和xml文件,或者基于注解开发,然后在service的实现类中注入写好的mapper,在具体的业务中调用对应的方法。)
26.最后简单考察了一下linux的一些基本指令,他问我有没有学过linux,我说没系统地学过,但也用过

问了假如现在有一个log日志文件,如何定位其中的某一个错误(不知道)
说说用过的linux指令,用什么命令进入目录,如何创建一个文件夹,rm是什么

最后反问。
问能进组的话主要做点什么?回答:一些java应用开发,不太记得了
我说我是25应届生,没实习经历秋招很难,进组的话能否学到一些真东西好应对接下来的春招,回答包的,对新人有一套系统的培训

总体下来感觉面试官问的不难,也没有深挖,人很好,一直在引导式提问,最后还跟我说谢谢您的时间来面试。
就是我没地方面试只能在楼道里,他后来和我说听我说话有时候断断续续的,只能猜...希望大家引以为戒,一定找个网络好的地方面试。
全部评论
佬项目是黑马点评吗?怎么感觉问的就是黑马点评那一套
点赞 回复 分享
发布于 2024-10-25 14:08 山西

相关推荐

裸面,完全没准备,一些非常基础的八股也没答上来,自然被拒。emmm还是慢慢背吧。这里记录几个还有印象的问题1.Java的数据类型有哪些?应答:基本数据类型和引用数据类型。基本数据类型包括byte short int long float double char Boolean八种。引用数据类型包括类(class)、接口(interface)、数组(array)。2.讲一讲数据库的删除操作吧应答:delete、truncate、drop三种。delete属于dml操作语言,只删除数据不删除表的结构,会走事务,执行时会触发trigger。truncate属于ddl语言,删除表中所有数据,隐性提交,不能rollback。drop属于ddl语言,删除表和数据库都可以。3.讲讲你在项目里用的jwt令牌技术是如何生效的?应答:用户登录-认证通过-生成jwt token返回前端-前端发起请求时携带token-拦截器请求验证token-放行/不放行4.讲讲Java里的集合这个问的太宽泛了,我也答非所问,索性全部贴出来背了。应答:Java集合主要由Collection和Map派生出来的。前者派生List、Set、Queue。List代表有序可重复集合,可直接根据元素的索引来访问;Set代表无序不可重复集合,只能根据元素本身来访问;Queue是队列集合。Map代表的是存储key-value对的集合,可根据元素的key来访问value。List接口常用的实现类有:ArrayList、LinkedList、Vector。集合中的元素允许重复。集合中的元素是有顺序的,各元素插入的顺序就是各元素的顺序。集合中的元素可以通过索引来访问或者设置。ArrayList是一个动态数组,也是我们最常用的集合,是List类的典型实现。ArrayList擅长于随机访问,同时ArrayList是非同步的。与ArrayList相似,但是Vector是同步的,它的操作与ArrayList几乎一样。LinkedList是采用双向循环链表实现,LinkedList是List接口的另一个实现,除了可以根据索引访问集合元素外,LinkedList还实现了Deque接口,可以当作双端队列来使用,也就是说,既可以当作“栈”使用,又可以当作队列使用。1)ArrayList优点: 底层数据结构是数组,查询快,增删慢。缺点: 线程不安全,效率高2)Vector优点: 底层数据结构是数组,查询快,增删慢。缺点: 线程安全,效率低3)LinkedList优点: 底层数据结构是链表,查询慢,增删快。缺点: 线程不安全,效率高Set扩展Collection接口,无序集合,不允许存放重复的元素。Set接口常用的实现类有:HashSet、LinkedHashSet、TreeSet1)HashSet底层其实是包装了一个HashMap实现的底层数据结构是数组+链表 + 红黑树具有比较好的读取和查找性能, 可以有null 值通过equals和HashCode来判断两个元素是否相等非线程安全2)LinkedHashSet继承HashSet,本质是LinkedHashMap实现底层数据结构由哈希表(是一个元素为链表的数组)和双向链表组成。有序的,根据HashCode的值来决定元素的存储位置,同时使用一个链表来维护元素的插入顺序非线程安全,可以有null 值3)TreeSet是一种排序的Set集合,实现了SortedSet接口,底层是用TreeMap实现的,本质上是一个红黑树原理排序分两种:自然排序(存储元素实现Comparable接口)和定制排序(创建TreeSet时,传递一个自己实现的Comparator对象)正常情况下不能有null值,可以重写Comparable接口 局可以有null值了。队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。PriorityQueue保存队列元素的顺序并不是按照加入的顺序,而是按照队列元素的大小进行排序的。PriorityQueue不允许插入null元素。Deque接口是Queue接口的子接口,它代表一个双端队列,当程序中需要使用“栈”这种数据结构时,推荐使用ArrayDeque。Map(这块内容真多byd)1.HashMapMap接口基于哈希表的实现,是使用频率最高的用于键值对处理的数据类型。它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,特点是访问速度快,遍历顺序不确定,线程不安全,最多允许一个key为null,允许多个value为null。可以用 Collections的synchronizedMap方法使HashMap具有线程安全的能力,或者使用ConcurrentHashMap类。2.HashtableHashtable和HashMap从存储结构和实现来讲有很多相似之处,不同的是它承自Dictionary类,而且是线程安全的,另外Hashtable不允许key和value为null,并发性不如ConcurrentHashMap。3.LinkedHashMapLinkedHashMap继承了HashMap,是Map接口的哈希表和链接列表实现,它维护着一个双重链接列表,此链接列表定义了迭代顺序,该迭代顺序可以是插入顺序或者是访问顺序。4.TreeMapTreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序(自然顺序),也可以指定排序的比较器,当用Iterator遍历TreeMap时,得到的记录是排过序的。5.你项目中说是使用了Redis技术,讲讲Redis技术是怎么做到加速效果的此时已抠出三室一厅。应答:Redis 是高性能的,基于键值对的,写入缓存的 内存存储系统。它支持多种数据结构如字符串、哈希表、列表、集合、有序集合等,并提供了丰富的操作命令。项目中引入 Redis 的地方是:查询店铺营业状态 ,像这种店铺营业状态,本项目无非就两个状态:营业中/打样。而且它属于高频查询。只要用户浏览到这个店铺,前端就要自动发送请求到后端查询店铺状态。Redis 是基于键值对这种形式存储的,而且 Redis 也把将数据放到缓存中,而不是磁盘,有效缓解了这种高频查询给磁盘带来的压力。 6.讲讲spring中ioc容器应答:Spring IoC负责创建对象、管理对象(通过依赖注入(DI)、装配对象、配置对象,并且管理这些对象的整个生命周期。Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制,对于spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系。到这里已经神志不清,面试官也问不下去了,遂结束。
查看6道真题和解析
点赞 评论 收藏
分享
评论
3
27
分享

创作者周榜

更多
牛客网
牛客企业服务