房极客笔试题记录

  纯粹用来记录答案不保证正确         

1.代码实现
有一个方法check,作用是这样的:对于入参a, b, 如果有且仅有一个大于5, 就返回true, 否则返回 false;请实现。
public static boolean check(int a, int b) {
If(a>5&&b<=5||a<=5&&b>5){
return ture;
}else{
return false;
}
}

2.分别实现冒泡排序和快速排序
public void bubbleSort (int[] arr) {
for( int i = 0 ;i<arr.length;i++){
for( int j = 0 ; j<arr.length-1-i;j++){
If(arr[j+1]<arr[j]){ //从小到大排,从大到小 arr[j+1]>arr[j]
Int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
}

public void quickSort (int[] arr) {
//设置一个基准点
//将小于等于基准点的数全部放到基准点的左边,
//将大于等于基准点的数全部放到基准点的右边。
//从做开始找一个大于基准点的值,从右开始找一个小于基准点的值两个值交换,多次重复
Sort(arr, 0, arr.length-1);
for (int i = 0; i < arr.length; i++)
System.out.println(arr[i]);
}
}
public void sort(int [] arr,a ,b){
Int i =a ;
Int j =b ;
Int temp ,t;
Temp = arr[i] //基准点
If(i>j){
return;
}
While(i<j){
//从左往右找大于temp的
while(temp<arr[i]&&i<j){
i++
}
//从右往左找小于temp的
while(temp>arr[j]&&i<j){
J++
}
//交换
If(i<j){
t = arr[i];
arr[i] = arr [j];
arr[j] = t;
}
}
//把i=j 位置的值与temp交换
arr[j] = arr[i];
arr[i] = temp;
//递归调用左半数组
sort(arr, a, j-1);
//递归调用右半数组
sort(arr, j+1, b);
}
3.Stream API 和 lambda
有以下的代码,问 1)代码能否编译通过?2)如果能编译通过,那么运行之后会输出什么?为什么?
在这里插入图片描述
编译不通过 ,java1.8的特性,不太懂,做完题后 测试了一下,提示missing return statement
在这里插入图片描述

4.HashMap
在这里插入图片描述
已知 Ab 、BC 两个字符串的hashCode 一样,问:代码执行完成之后,这个 HashMap的数据结构是什么样子的?请画出来
1.7 Hashmap 数据结构是由数组+链表构成 ,1.8后由数组+链表+红黑树构成
当hashcode相同计算出的hash值相同 ,也就是在数组中所处的位置相同,那么就发生了hash冲突,通过链表的形式处理。图片如下:

在这里插入图片描述
5.HashMap
现在有一个HashMap<String, String> map 对象,请遍历并按照格式输出key和value, 格式为 {key}-fanggeek-{value} 。格式详细说明:假设有个键值对为 abc - qwer, 那么需要输出为 abc-fanggeek-qwer

public void hash(){
HashMap<String,String> map = new HashMap<>();
for (HashMap.Entry<String,String> m : map.entrySet() ){
System.out.println(m.getKey()+”-”+”fanggeek”+”-”+m.getValue());
}
}

6.数据库
TABLE t_department ( //部门表
departmentId INT(11), //部门id
departmentName VARCHAR(25),


)
TABLE t_employee ( //员工表
employeeId INT(11), //员工id
departmentId INT(11), //部门id
employeeName VARCHAR(25),
salary INT(11), // 薪资


)
请写出: 除"财务部"之外其他部门的平均工资, 并按照部门的平均薪资排序
对应的SQL.
Select t_department.departmentName ,avg( t_employee.salary) from t_employee,t_department where
t_department.departmentId = t_employee.departmentId and t_department.departmentName !=“财务部” GROUP BY t_department.departmentId ORDER BY avg( t_employee.salary) DESC

7.Http
http请求有哪些方法?put和post有什么区别?
Post get delete put head
Put :如果两个请求相同,后一个请求会将前一个请求覆盖掉。所以put适合用来该资源。
Post:如果两个请求相同,后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源)

8.线程池
Executors 创建线程池的种类有几种?分别是什么作用?
newCachedThreadPool 可缓存的线程池,线程空闲会释放线程,线程不够用会新建线程
newFixedThreadPool 固定大小的线程池,没需要执行一个人物都会创建一个线程,直到线程池满,其他徐要执行的任务会进入到等待队列中,指导有任务完成,将线程放回线程池,等待的任务才能够获得线程。
newSingleThreadExecutor 单线程线程池 ,线程池只有一个线程,线程串行执行任务。线程挂掉,会生成新的线程放入线程池中,替换原来的线程。
newScheduleThreadPool 支持定时的以及周期性的任务执行。

9.linux基础命令
查找文件用什么命令?查找文件内容用什么命令?
find 查找文件
grep 查找文件内容

10.String
Java中的String是否是线程安全的?为什么?
是线程安全的,String是final修饰的,是不可变的,所以是线程安全的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值