杭州云尖信息 Java 实习一面

杭州云尖信息 Java 实习一面

1.项目是自学的还是学校的

2.简单介绍一下你的项目

3.项目中你熟悉的模块是什么,讲一下

4.项目的业务场景

5.常见的集合

6.arraysList和LinkedList的区别

7.你一般是怎么进行异常处理的

8.try-catch-finally的执行顺序

try 块: 先执行 try 块内的代码。如果这段代码没有抛出异常,那么 catch 和 finally 块的执行取决于是否存在异常。 如果 try 块内的代码抛出异常,执行会立即转移到相应的 catch 块(如果有匹配的 catch 块)。 catch 块: 当 try 块抛出一个异常并且 catch 块可以处理该异常时,catch 块的代码将被执行。 如果没有异常发生,或者抛出的异常不匹配任何 catch 块,catch 块将被跳过。 finally 块: 不管 try 是否抛出异常,或者 catch 是否执行,finally 块的代码总是会被执行。 它用于包含必须在任何情况下都需要执行的清理代码,如关闭文件流、释放资源等。 return 语句: 如果在 try 或 catch 块中有 return 语句,finally 块仍然会先执行,然后才会返回值。 如果 finally 块也有 return 语句,那么它会覆盖 try 或 catch 中的 return,并用其自身的返回值返回。

9.final的作用

1)修饰类:

表明该类不可被继承,类中的所有成员方法都隐式的被指定为final方法,成员变量则可以定义为final,也可以不定义为final;

2)修饰方法:

用final修饰方法的原因有两个:

锁定这个方法,防止任何继承类修改它的含义; 提高效率:在方法前面添加final进行修饰可以提高效率,其原理是基于内联/内嵌(inline)机制,它会使你在调用final方法时,直接将方法的主体插入到调用处,从而省去调用函数所花费的开销。但是如果方法过于庞大或者其中有循环的话,这种提高效率的方法可能会失效。

3)修饰变量:

终于还是到这里了。

在java中,final对变量的修饰的作用,是防止变量值的改变;

如果修饰的是基本类型数据变量,则该变量的值不能发生改变; 如果修饰的是引用类型数据变量,则该变量不会内二次初始化;

10.final可以修饰什么

11.重载和重写的区别。

1.重写(Override) 从字面上看,重写就是 重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下, 对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修饰权限不能少于父类的。 重写 总结: 1.发生在父类与子类之间 2.方法名,参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同 3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private) 4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常

2.重载(Overload)

在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载。同时,重载对返回类型没有要求,可以相同也可以不同,但不能通过返回类型是否相同来判断重载

重载 总结: 1.重载Overload是一个类中多态性的一种表现 2.重载要求同名方法的参数列表不同(参数类型,参数个数甚至是参数顺序) 3.重载的时候,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准

答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。

12.讲一下Spring Ioc 和 Aop

1)IOC

1、谁控制谁:在之前的编码过程中,都是需要什么对象自已去创建什么对象,有程序员自已来控制对象,而有了OC容器 之后,就会变成由工OC容器来控制对象, 2、控制什么:在实现过程中所需要的对象及需要依赖的对象,比如说一个类叫A,A里面有B、C、D三个对象,这时spring会帮我们完成bcd三个对象的注入过程,不需要我们进行任何人为设置 3、什么是反转:在没有工OC容器之前我们都是在对象中主动去创建依赖的对象,这是正转的,而有了IOC之后,依赖的对 象直接由工OC容器创建后注入到对象中,由主动创建变成了被动接受,这是反转 4、哪些方面被反转:依赖的对象

2)AOP

AOP全称叫做AspectOrientedProgramming面向切面编程。它是为解耦而生的,解耦是程序员编码开发 过程中一直追求的境界,AOP在业务类的隔离上,绝对是做到了解耦

任何一个系统都是由不同的组件组成的,每个组件负责一块特定的切能,当然会存在很多组件是跟业务无关 的,例如日志、事务、权限等核心服务组件,这些核心服务组件经常融入到具体的业务逻辑中,如果我们为每 一个具体业务逻辑操作都添加这样的代码,很明显代码穴余太多,因此我们需要将这些公共的代码逻辑抽象出 来变成一个切面,然后注入到自标对象(具体业务)中去,AOP正是基于这样的一个思路实现的,通过动态代 理的方式,将需要注入切面的对象进行代理,在进行调用的时候,将公共的逻辑直接添加进去,而不需要修改 原有业务的逻辑代码,只需要在原来的业务逻辑基础之上做一些增强功能即可

13.讲一下RESTFUL风格是什么

RESTful风格是一种软件架构风格,全称为Representational State Transfer(表现层状态转移)。它由Roy Fielding在2000年的博士论文中提出,作为一种设计原则和约束条件集,指导如何设计可扩展、简洁、具有良好性能特性的Web服务。RESTful风格的核心思想是将网络上的每个资源都赋予一个唯一的URL,并通过HTTP协议的标准化方法(GET, POST, PUT, DELETE等)来操作这些资源,从而实现“资源”的操作和表现形式分离。下面是RESTful风格的几个关键特点:

  • 资源导向: 每个网络资源(如文章、用户、订单)都应有一个唯一的标识符(通常是URL),资源的操作不应该依赖于具体的动作名称,而是通过HTTP方法和资源路径来表达意图。
  • 无状态: 服务器端不存储客户端的上下文信息,每次请求都包含处理该请求所需的所有信息。这样可以简化服务器的设计,使其更容易伸缩。
  • 可缓存: 使用HTTP协议的缓存机制,可以提高响应速度,减少服务器负载。GET请求应当是幂等的,意味着多次请求具有相同的效果,因此可以安全地被缓存。
  • 统一接口: 使用标准的HTTP方法(GET, POST, PUT, DELETE等)来实现资源的查询、创建、更新和删除,使得客户端和服务器之间的交互更加通用和简单。
  • 分层系统: 系统架构可以划分为不同的层次,每个层次只关注自己的责任,这样可以降低各部分间的耦合,便于独立扩展和维护。
  • 按需代码(Code-On-Demand,可选): 服务器可以发送一些代码(如JavaScript),在客户端执行,以实现更丰富的功能,但这不是必须的。

遵循RESTful风格设计的API,通常更易于理解和使用,能够更好地支持不同类型的客户端,同时利于服务的扩展和维护。在实际应用中,Spring MVC等框架提供了对RESTful风格的支持,方便开发者快速构建RESTful API。

14.SQL情景题,两张表,一张student表id和name字段,一张score表id和score字段,查询成绩最好的那个学生的姓名

SELECT s.name FROM student s,score c WHERE s.id = c.id AND c.sc = (SELECT MAX(sc) FROM score);

15.sql的union和union all知道吗

16.项目中哪些地方使用了redis呢

#软件开发笔面经#
全部评论

相关推荐

04-23 18:20
门头沟学院 Java
bg:9本5硕科班,本科两段外企国企水实习+国奖,还有一些蓝桥杯美赛之类的,无科研经历。投了一百来家公司,各轮面试加起来面了三十几场,基本上是中大厂(投了百分七八十都给面),一面挂了很多,进深轮次的也有七八家,但基本上都挂掉了。仅剩一家在泡池子。技术栈为Java,也尝试了一些前端和测开的岗位。核心问题是八股和项目(实习),手撕基本没问题。1. 自从开始投递过后整个人感觉有点疲劳作战了,基本上每天都在笔面试,状态一般;现在已经失去信心了,在面试中唯唯诺诺。2. 我的八股背不转,目前没有找到一个很好的方式背八股,是真的记不住。本科阶段计网、操作系统也没认真学,感觉是本身对计算机原理部分不感兴趣甚至有点排斥,喜欢写代码但不喜欢深究原理,也不喜欢搞科研。所以经常在八股方面挂掉。3. 项目太烂了,没有用心准备一个项目,不如外卖、点评。自己做了一个业务比较负责的项目,但是没有什么技术难点。4. 性格问题,面试紧张,而且耿直,不会包装和说漂亮话。现在老师那边还有一定的项目横向工作,再加上可能一天有3场面试,一周平均10场面试,整个人乱七八糟的。可能出现上场面试问的问题,下场还不会答的情况。其实我本身也不一定要去互联网中大厂,本身更理想的去处是央国企,跟风准备和投递了很多,但是频频受挫,陷入了焦虑的状态。我现在应该怎么办呢?是应该继续投递和准备;还是减少面试,多总结复盘,背八股,挖掘项目;还是转投日常;还是直接准备央国企秋招?
拒绝无效加班的三文鱼很讨厌吃香菜:突然有两个大厂offer啦,哈哈哈,天降好运,泡池子泡出来了
点赞 评论 收藏
分享
04-26 10:50
已编辑
太原理工大学 Java
查看16道真题和解析
点赞 评论 收藏
分享
04-24 21:48
已编辑
门头沟学院 Java
🤔部门:交易平台----一面时间 :60min1.实习,说我做的感觉没什么有难度的,而且有的的业务考虑不周全。2.MySQL现在有联合索引(b,c),(a,c)select a=,b=,c=查询会走什么索引,我说看情况,这两个联合索引都有可能会走,问联合索引里的每个字段都走是怎么走的,说了半天感觉答案不满意。3.mvcc解释一下,这个也有点忘了,一边说一边想,说了半天说到面试官想听的点。4.算法,找出具有最大和的连续子数组5.反问,我觉得我必挂了不知道问什么,就问我有哪些地方需要增强的,面试官说不喜欢这个问题,让我换一个,重新问了部门业务做什么,面试官介绍完之后说所以喜欢招聪明一点的,我以为在那针对我😅----二面时间:60min1.自我介绍2.实习介绍3.实习技术难点在哪4.限流有哪些常见算法5.kafka十个分区,二十个消费者,出现消息堆积如何提示消费者消费速率6.kafka为什么吞吐量高7.Redis pipeline和mget相比优缺点在哪8.Redis集群架构有哪些9.算法最小栈,三道SQL,SQL有点难,只在提示下做出来第一道题总结:八股问的比较少,都是结合实习内容去问一些实际场景下的八股,并且对有相应的引导。----HR面:15min1.实习做的内容是什么2.实习部门人员架构3.实习最大的提升在哪----oc已拒,面试难度不算难,流程推进比较快,基本都是当天约下一轮面试
查看16道真题和解析
点赞 评论 收藏
分享
评论
4
3
分享

创作者周榜

更多
牛客网
牛客企业服务