开场:自我介绍+项目介绍
提问环节:含个人基本信息,项目和八股,手撕代码
1.个人基本信息:本科和研究生期间有得过什么奖嘛?专业排名?为什么没有去实习?
2.项目相关:这个项目花了多长时间,遇到的主要难点是什么?如何应对缓存击穿问题?项目中有实际用到?还是对该知识点有了解?
3.笔试复盘:做对的题思路复述,没做对的题目 想出解决办法了嘛?具体谈谈
4.八股:(问得比较多)
1)JVM的垃圾回收机制,调用System.gc()后会发生什么?会立即对垃圾进行回收嘛?
2)栈的特点
3)说说有哪些排序算法?详细说一下选择排序的思路及其时空复杂度
4)Linux 中的755权限?
(linux系统中的755权限是指所有者拥有可读、可写、可执行权限,所属组与其他用户仅拥有可读与可执行权限。linux系统的权限一般是用1-3位数字代表文件所有者的权限,4-6位数字代表同组用户的权限,7-9位数字代表其他用户的权限。)
5) Linux 中终止进程的命令
6) 关系型数据库和非关系型数据库的区别
7) 谈谈Spring AOP
8) Map, List, Set都继承自Collection接口嘛?说说他们的区别
9)HashTable与HashMap 的区别? HashMap线程安全的类?
10)获取对象的类的方式有哪些?对象实例.getClass(),Class.forName(全限定类名),内置基本数据类型.TYPE, 类名.class。
11) 线程创建的方式有哪些?
12)run和start()的区别?
13)死锁形成的条件
14)面向对象的原则有哪些?讲讲开闭原则
15)Java11的新特性了解嘛
16)运行时异常有哪些?(数组越界,类型转换,空指针,输入不匹配,非法的参数,无访问权限….)
17)你觉得你目前还有哪些不足?
5.手撕代码
题目:给定一行字符串,字符串间用逗号隔开,eg:xiaoming,xiaozhang,xiaoli,zhangsan,xiaoming
要求:出现次数不等时,按出现次数降序排列;出现次数相等时,按字符串升序排列,
返回结果:xiaoming 2,xiaoli 1,xiaozhang 1,zhangsan 1
python版:
package com.kiki.huawei1026; import java.util.*; public class Solution1 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); HashMap<String,Integer> map=new HashMap<>(); String str=sc.nextLine(); String[] lists=str.split(","); for(int i=0;i<lists.length;i++){ String cur=lists[i]; if(!map.containsKey(cur)){ map.put(cur,1); }else{ map.replace(cur,map.get(cur)+1); } } List<Map.Entry<String,Integer>> list2=new ArrayList<>(map.entrySet()); Collections.sort(list2, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { //前小于后返回-1,等于返回0,大于返回1(比较结果为1进行交换) int a=o2.getValue()-o1.getValue(); if(a>0) return a; a=o1.getKey().compareTo(o2.getKey()); if(a>0) return a; else return -1; } }); int n=list2.size(); for (int i=0;i<list2.size();i++) { Map.Entry<String,Integer> entry=list2.get(i); System.out.print(entry.getKey()+" "+entry.getValue()); if(i!=list2.size()-1){ System.out.print(","); } } //System.out.println(list2); } }
原文链接:https://www.nowcoder.com/discuss/417807625935486976