二面看重你的学习能力和热情,请认真准备以下内容并带上自己的电脑准时参加面试
要求:
- Java 语言
- 开发工具不强制要求,推荐 IntelliJ IDEA ( Community 版可免费使用,Utimate 版可使用天津大学教育邮箱进行教育认证后免费使用)
学习参考文档:
https://www.jianshu.com/p/3af8153c9bdf
1.必做题!!!
知识点提示 ( 均为 Java 语言 ):
- 方法
- String 类
- 数组
- List 的简单用法
- Class 类基础(类名、成员函数)
项目1:
在 Java 项目下新建一个名为 MyStringUtils 类,包含以下成员方法:
public String getUpperCaseStr(String str);
返回传入 str 的所有字母全部变为大写的 Stringpublic String getUpperCaseStr(int end, String str);
返回从 str 前 end 位字母变为大写的 Stringpublic String getUpperCaseStr(int begin, int end, String str);
返回从 str 第 begin 位字母到第 end 位字母变为大写的 Stringpublic List<String> getUpperCaseStr(List<String> strs);
将传入 List 中所有 String 的所有字母全部变为大写,并返回由大写字母 String 组成的 Listpublic String[] getUpperCaseStr(String[] strs);
将传入所有 String 所有字母全部变为大写,并返回由大写字母 String 组成的数组public String[] getUpperCaseStr(int end, String[] strs);
将传入 strs 里的每一个 String 的前 end 个字母变为大写,并返回由经过处理后的 String 组成的数组
在同项目下新建一个名为 Test 的类,在该类里有 Java 程序的入口方法 main,并在该方法内使用必做题里完成的所有方法(实例化 MyStringUtils)。
加分项
- 详细的注释
- 规范的代码风格(idea 快捷键格式化代码)
2.选做题
涉及到 Java 面向对象,难度高,大家尽力而为,完成一部分是一部分
没有标准答案,大家按自己的想法大胆写
必须知识点提示 ( 均为 Java 语言 ):
- 输入输出
- 成员变量
- 成员函数
- 构造函数
- 修饰访问限制符:private public protect [default]
加分知识点提示:
- extends (继承)
- interface
- Enum
项目2:
背景:
某计算机组装公司主要销售各类组装计算机,计算机一般由CPU、内
存、主板、硬盘等组件构成。具体组件信息如下:
组件 | 组件品牌(类名) | 组件属性(成员变量) |
---|---|---|
CPU | Intel, AMD | name, coreNum, price |
内存 | Samsung, Kingston | name, volume, price |
硬盘 | Seagate, WestDigitals | name, volume, price |
主板 | Asus, Gigabyte | name, speed, price |
设计组件类,每个组件类都有成员方法 print(),该方法可以打印(在控制台输出)“组件名+work"。
提示
比如组件 Intel,则有如下类
public class Intel
比如类 Intel 可以实例化如下对象
name | coreNum | price |
---|---|---|
cpu1 | 2 | 1000 |
cpu2 | 1 | 600 |
cpu3 | 4 | 1800 |
设计一个计算机类命名为 Computer,由上述四类组件组装而成,成员变量包括计算
机的名称、CPU、内存、硬盘、主板以及总价格等。计算机类有成员方法 print(),该方法可以打印出计算机名称、价格、组件信息等计算机信息。
设计一个计算机销售主类命名 ComputerStore ,有 Java 程序的入口方法 main,在 main 方法内实例化3个由不同组件组装在一起的计算机对象,并使用计算机对象的方法展示计算机信息(即计算机名称、价格、组件信息)。
提示
可以实例化如下计算机对象
计算机名称 | CPU | 内存 | 硬盘 | 主板 |
---|---|---|---|---|
computer1 | Intel | Samsung | Seagate | Gigabyte |
computer2 | Intel | Kingston | WestDigitals | Asus |
computer3 | CPU | Samsung | WestDigitals | Gigabyte |
每个类的成员变量和成员方法都不局限于上述所提到的,可自己补充。
提示
可补充方法:更改计算机的 CPU 组件、更改计算机的内存组件、更改计算机的硬盘组件、更改计算机的主板组件、更改计算机的名字。
思考:计算机的价格可以修改吗?
加分项
- 使用 static、 final 等关键字。
- 使用 Java 集合类。
- 使用抽象类、接口、枚举类等。
- 使用 Interface
- 代码中体现出封装、继承、多态的思想。
- 在需求的基础上,根据实际情况完善项目。