【面经】三七互娱Java游戏研发实习(一面)

本文分享了三七互娱Java游戏研发实习面试的一系列问题,涉及王者荣耀服务器实现、接口与类的区别、接口实例化、静态方法与非静态方法的调用、子类重写静态方法、HashMap与LinkedHashMap的工作原理、线程状态、sleep()与wait()的区别以及Java线程池的实现。还探讨了算法,如数组打乱和归并排序。

一、王者荣耀服务器实现

 

二、接口和类的区别?

1、类只能继承一个类,但可以实现多个接口。

2、对于继承性,类继承了父类的方法,子类可以选择是否覆盖父类的方法。

3、接口的方法只有声明,没有实现;而类中的方法必须有方法体。

 

三、接口可以实例化吗?为什么?那lambda表达式不就是传入一个接口的实例吗?

接口不可以实例化,因为接口可以看成是特殊的抽象类,比抽象类的程度更高,其所有方法都是public abstract类型的,因此不能实例化。

Lambda表达式的原理是:

1、编译器根据Lambda表达式生成一个私有的静态函数,这个私有函数就是执行Lambda表达式里的内容

2、生成一个内部类并调用上述所生成的私有静态函数

3、将Lambda表达式替换为该内部类的一个实例传入方法体中

 

所以本质上来讲Lambda表达式并非传入一个接口的实例,而是传入一个内部类的实例。

这里引用一下别人的代码:

public class LambdaTest {
    public static void printString(String s, Print<String> print) {
        print.print(s);
    }
    public static void main(String[] args) {
        printString("test", (x) -> System.out.println(x));
    }
}

@FunctionalInterface
interface Print<T> {
    public void print(T x);
}

反编译代码: 


                
### 项目经验的准备与展示 在准备Java实习试时,项目经验的展示是关键环节之一。对于在校生而言,即便没有正式的实习经历,也可以通过课程设计、个人项目或参与开源项目来积累相关的开发经验。如果日常工作主要是简单的增删改查操作,而目标岗位要求具备分布式组件等高阶技能,则可以通过构建模拟实际业务场景的小型系统来体现自己的技术能力[^1]。 例如,可以尝试使用Spring Boot结合MyBatis Plus快速搭建一个后端服务,并引入Redis作为缓存层以提高性能;同时利用RabbitMQ实现异步消息处理机制,从而展示对分布式系统中常见组件的理解和应用能力。此外,还可以将这些项目部署到云服务器上,如阿里云ECS实例,这样不仅能够证明自己掌握了基本的服务端部署知识,还体现了持续集成/持续交付(CI/CD)流程的实际操作经验。 ### 技术基础与算法能力 除了项目经验外,扎实的技术基础同样重要。试过程中通常会涉及Java语言特性、集合框架、多线程编程、JVM原理等方的基础问题。因此,在准备阶段应该复习相关知识点并确保能够清晰地表达出来。另外,很多公司还会考察候选人的算法解决问题的能力,这包括但不限于排序算法、查找算法以及数据结构的应用等[^2]。 为了提升这方的能力,建议平时多做一些LeetCode或者牛客网上的题目练习,并且尝试理解每种解法背后的逻辑思维过程。当被要求现场编写代码时,保持冷静思考,先明确题意再着手编码,注意代码风格的一致性和可读性,最后别忘了进行边界条件测试用例的设计。 ### 试技巧与心态调整 良好的沟通能力和积极的态度也是成功获得offer的重要因素之一。在整个试过程中要始终保持礼貌谦逊的姿态,遇到不会的问题不要慌张失措,而是诚实地说明当前对此不太熟悉但愿意学习的态度。对于一些较为复杂的技术难题,不妨先从简单情况入手逐步分析解决思路,展现出解决问题的过程而非仅仅关注结果。 关于薪资谈判环节,除非HR主动提及,否则尽量避免过早讨论具体数字。一旦收到录用通知后,可以根据自身实际情况综合考量是否接受该职位。当然,即使获得了满意的offer也不要停止探索的脚步,继续寻找更适合自己发展的机会总是明智的选择[^3]。 ```java // 示例:一个简单的Spring Boot应用程序结构 @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } @RestController @RequestMapping("/api") class DemoController { @GetMapping("/hello") public String hello() { return "Hello World!"; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值