总结
虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。
上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料
有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。
(1)具有多个参数的Lambda表达式:
如果您需要传递多个参数,可以将参数放在括号中,如下所示:
示例:在lambda表达式中指定多个参数C#
(s, youngAge) => s.Age >= youngage;
在lambda表达式中指定参数类型C#
(Student s,int youngAge) => s.Age >= youngage;
(2)没有任何参数的Lambd表达式:
在lambda表达式中不需要至少一个参数。lambda表达式可以在没有任何参数的情况下被指定。
带零参数的Lambda表达式。
() => Console.WriteLine(“Parameter less lambda expression”)
(3)正文表达中的多个语句:
如果要在正文中使用多个语句,则可以使用大括号包装表达式:
(s, youngAge) =>
{
Console.WriteLine(“Lambda expression with multiple statements in the body”);
Return s.Age >= youngAge;
}
(4)Lambda表达式主体中的局部变量:
您可以在表达式主体中声明一个变量,以在表达式主体中的任何位置使用它,如下所示:
s =>
{
int youngAge = 18;
Console.WriteLine(“Lambda expression with multiple statements in the body”);
return s.Age >= youngAge;
}
(5)功能代表:
当你想从lambda表达式返回某些东西的时候,使用Func <>委托。Func <>委托中的最后一个参数类型是返回类型,rest是输入参数。
考虑下面的lambda表达式来找出一个学生是否是一个十几岁的孩子。
分配给C#中的Func委托的Lambda表达式
Func<Student, bool> isStudentTeenAger = s => s.age > 12 && s.age < 20;
Student std = new Student() { age = 21 };
bool isTeen = isStudentTeenAger(std);// returns false
在上面的例子中,Func委托期望第一个输入参数是Student类型,返回类型是boolean。lambda表达式 s => s.age > 12 && s.age < 20满足Func <Student,bool>委托要求,如下所示:
上面显示的Func <>委托会变成如下所示的函数。
bool isStudentTeenAger(Student s)
{
return s.Age > 12 && s.Age < 20;
}
(6)行动代表:
与Func委托不同,一个Action委托只能有输入参数。当您不需要从lambda表达式返回任何值时,使用Action委托类型。
分配给C#中的Action委托的Lamda表达式
Action PrintStudentDetail = s => Console.WriteLine("Name: {0}, Age: {1} ", s.StudentName, s.Age);
Student std = new Student(){ StudentName = “Bill”, Age=21};
PrintStudentDetail(std);//output: Name: Bill, Age: 21
(7)LINQ查询中的Lambda表达式:
通常,lambda表达式与LINQ查询一起使用。枚举静态类包括其中扩展方法IEnumerable接受Func<TSource,bool>。所以IEnumerable需要通过Where()扩展方法来传递Func<Student,bool>,如下所示:
所以,现在,您可以将分配给Func委托的lambda表达式传递给方法语法中的Where()扩展方法,如下所示:
LINQ方法语法中的Func委托
IList studentList = new List(){…};
Func<Student, bool> isStudentTeenAger = s => s.age > 12 && s.age < 20;
var teenStudents = studentList.Where(isStudentTeenAger).ToList();
例如:LINQ查询语法中的Func委托
IList studentList = new List(){…};
Func<Student, bool> isStudentTeenAger = s => s.age > 12 && s.age < 20;
var teenStudents = from s in studentList
where isStudentTeenAger(s)
select s;
Linq VS Lambda
实际项目中的应用
最后
分布式技术专题+面试解析+相关的手写和学习的笔记pdf
还有更多Java笔记分享如下:
Java笔记分享如下:
[外链图片转存中…(img-okr352Ud-1715588381685)]