总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
A、正确
B、错误
解析
我们使用 javac
来编译代码,使用 javadoc
来识别注释,两者之间是互不影响的。
参考答案
B
A、char[2][3] ch = new char[][]
B、char[2][] ch = new char[][3]
C、char[][] ch = new char[2][3]
D、char[][] ch = new [2]char[3]
解析
Java 中,当我们定义一个数组时,赋值符号左侧是不能出现数字的,所以排除 A、B。而要定义一个二位数组,定义的格式如下:
type[][] typeName = new type[typeLength1][typeLength2];
一般 typeLength1
和 typeLength2
都是要给出的,而且必须是正整数。当然,我们也可以只给出 typeLength1
,而不用给出 typeLength2
。
type[][] typeName = new type[typeLength1][];
参考答案
C
static boolean foo(char c)
{
System.out.print©;
return true;
}
public static void main(String[] args) {
int i =0;
for(foo(‘A’);foo(‘B’)&&(i<2);foo(‘C’))
{
i++;
foo(‘D’);
}
}
A、ABDCBDCB
B、ABCDABCD
C、编译时出错
D、运行时抛出异常
解析
主要还是考察 for
循环的三条语句的执行顺序。
for(循环开始条件; 判断条件; 循环后条件){
// 循环体
}
首先执行循环开始条件,然后执行是否满足判断条件,满足则执行循环体,然后再执行循环后条件,然后再次判断是否满足判断条件,直到不满足;不满足则直接跳出 for
循环。
参考答案
A
A、request.getRequestURL()
B、request.getAttribute()
C、request.getParameter()
D、request.getWriter()
解析
request.getAttribute()
方法返回 request
范围内存在的对象;
而 request.getParameter()
方法是获取 http
提交过来的数据;
getAttribute
是返回对象;
getParameter
返回字符串。
参考答案
B
A、正确
B、错误
解析
对于子类的构造函数,要调用父类构造函数时,需要使用 super
。
子类重写父类方法后,如果要调用父类中被重写的方法,此时也需要使用 super
。
而子类要调用父类中未被重写的方法时,直接使用 super
关键字调用即可。
参考答案
B
public class A2{
public static void main(String[] args){
int[] a={2,4,6,8,3,6,9,12};
doSomething(a,0,a.length-1);
for(int i=0;i<=a.length-1;i++)
System.out.print(a[i]+" ");
}
private static void doSomething(int[] a,int start,int end){
if(start<end){
int p=core(a,start,end);
doSomething(a,start,p-1);
doSomething(a,p+1,end);
}
}
private static int core(int[] a,int start,int end)
{
int x=a[end];
int i=start;
for(int j=start;j<=end-1;j++){
if(a[j]>=x){
swap(a,i,j);
i++;//交换了几次
}
}//把最大的放到最后
swap(a,i,end);//把最大的放到i的位置
return i;
}
private static void swap(int[] a,int i,int j)
{
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
总结
至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:
- 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
- 项目经历:只写明星项目,描述遵循 STAR 法则;
- 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;
以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频
间:简历模板+Java面试题+热门技术系列教程视频
[外链图片转存中…(img-trxTvPaw-1715629225857)]
[外链图片转存中…(img-r2ORZbhV-1715629225857)]
[外链图片转存中…(img-9YRnD5CO-1715629225857)]