【安硕信息21-笔试回忆总结】
方向:java开发
大题两道,一道约瑟夫环问题,一道集合题 小题25道,单选
1.银行员工排队,从1开始按顺序排列,数字为3的人进行报告然后退场,举例:ABCDEFGH,先是C,C退场后,DEF对应123,所以第二个退场的是F,还剩ABDEGH,GHA对应123,所以A退场,.....,全部退场顺序为C,F,A,E,B,H,D,G ,换成数字就是12345678,退场顺序是3,6,1,5,2,8,4,7
参考:https://blog.csdn.net/qq_21150865/article/details/60467166
package list; import java.util.ArrayList; import java.util.List; import java.util.Scanner; //约瑟夫环问题 public class report3 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入总人数:"); int totalNum = scanner.nextInt(); System.out.print("请输入需要报数的序号:"); int cycleNum = scanner.nextInt(); yF(totalNum, cycleNum); scanner.close(); Integer l1 = 3; } public static void yF(int totalNum, int countNum) { // 初始化人数 List<Integer> list = new ArrayList<Integer>(); for (int i = 1; i <= totalNum; i++) { list.add(i); } // 从第K个开始计数 int k = 0; while (list.size() > 0) {//和数组的length属性不同,list集合使用size作为长度,或者说元素个数 k = k + countNum; // 第m人的索引位置 k = k % (list.size()) - 1;//获得其位置的下标 // 判断是否到队尾 if (k < 0) { //System.out.println(list.get(list.size() - 1)); list.remove(list.size() - 1); k = 0; } else { //System.out.println(list.get(k)); list.remove(k); } if(list.size()==1){ System.out.println(list.get(0)); } } //return 0; } }
2.集合
2.1编写一个Person类,
添加数据:Ming ,38
Hong,25
Bai ,43
2.2List存储,并按年龄升序排列
package list; public class Person implements Comparable<Person>{ String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } @Override public int compareTo(Person person) { /*按员工年龄正序排序*/ //return this.getEname().compareTo(emp.getEname()); /*按员工年龄逆序排序*/ return (this.getAge()) - person.getAge() ; } }
package list; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class listTest { public static void main(String[] args) { List<Person> list = new ArrayList<Person>(); list.add(new Person("Ming",38)); list.add(new Person("Hong",25)); list.add(new Person("Bai",28)); Collections.sort(list); System.out.println(list.toString()); } }
2.3修改程序使得输出 Ming (总感觉在绕圈子,我可能有地方记错了,仅供参考)
题目提供附加程序段:
Map<Person,String> map = new HashMap<>(); for (Person p: list) { map.put(p,p.getName()); System.out.println(map.get(new Person("Ming",38))); }
直接添加代码后后运行会输出null
修改了一下最后大概是这个样子,
package list; import hashmapTest.Student; import java.util.*; public class listTest { public static void main(String[] args) { List<Person> list = new ArrayList<Person>(); list.add(new Person("Ming",38)); list.add(new Person("Hong",25)); list.add(new Person("Bai",28)); Collections.sort(list);//排序 System.out.println(list.toString()); Map<Person,String> map = new HashMap<>(); for (Person p: list) { map.put(p,p.getName()); // System.out.println(map.get(new Person("Ming",38))); } Collection<Person> set=map.keySet(); for (Person p: set) { String ss = map.get(p); if(p.getName().equals("Ming")) { System.out.println("---" + p.getName() + "---"); } } // String value = map.get("Ming"); // System.out.println(value); } }
yysy最后一问我没看明白他想考啥...为了输出而输出吗。。
手机答题界面所有代码都缩在一起,可读性很差,当然也可能是我记错题了,所以最后一小问请忽视吧orz
3.小题
普遍比较基础,逻辑与的短路问题,i++和++i,byte进位问题,类和接口是否能多继承之类的
印象比较深的有:
3.1 下列哪一个方法不属于Obiect类:
A:finalize() B:equals() C:clone() D:synchronized
选D,D是个关键字不是方法
3.2j ava异常抛出问题:
非runtime异常必须捕获或抛出,比如SQLException
3.3 在 html5 中,哪个属性用于规定输入字段是必填的
required:<
input
type
=
"text"
name
=
"usr_name"
required
=
"required"
/>,这样的话 如果文本框有未填写提交时会弹窗提醒
3.4 html5废弃的标签:<frameset> <frame> <noframes>等
3.5 数组和集合的区别
3.6 Socket,serverSocket创建TCP服务器端这类问题
3.7 byte长度以及另一道字符串contains方法放一起来说吧
public class test1 { public static void main(String[] args) { String a = ""; String b= "Asme"; if((b.contains(a))){ System.out.println(2);//2 }; byte a1=127; byte b1=a1++; byte c1 = ++a1; System.out.println(b1+c1);//0 } }
注意byte长度就好,-128~127
剩下的没啥印象了,卷卷人太难了,溜了溜了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统