每一秒钟的时间都值得铭记

0%

面试系列03

1、HashMap的遍历方法?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Map<String,String> map = new HashMap<String,String>();
//第一种遍历方法
for (String key : map.keySet()) {
String value = map.get(key);
}
//第二种遍历方法
for(Entry<String,String> entry : map.entrySet()) {
String key = entry.getKey();
String valeu = entry.getValue();
}
//第三种遍历方法
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()) {
String key = it.next();
String value = map.get(key);
}

2、ArrayList和LinkedList的区别?

ArrayList LinkedList
底层基于数组实现 底层基于链表实现
查找效率快,增删效率慢 查找效率慢,增删效率快

3、ArrayList和LinkedList通过下标查找元素的时间复杂度是多少?

ArrayList LinkedList
O(1) O(n)

4、浅拷贝和深拷贝的区别?

浅拷贝和深拷贝的区别在于引用数据类型的拷贝。

  • 浅拷贝在拷贝引用数据类型的时候,只是将引用数据类的地址引用复制一份,不会在内存中开辟一块新的地址空间来创建新的对象。
  • 深拷贝会在内存中重新开辟一块地址空间,将原来的数据复制一份到新的内存中,创建一个新的对象。

5、数据结构中,与所使用的计算机无关的是数据的( )?

1
2
3
4
A.存储结构
B.物理结构
C.逻辑结构
D.物理和存储结构
1
答案:C

6、有一张sal表结构数据如图一所示,写出SQL语句将表数据查询为图2所示的结果。

  • 图一

图一

  • 图二

图二

1
2
3
4
5
6
SELECT years,
sum(case when quarter='1' then sales end) as '一季度',
sum(case when quarter='2' then sales end) as '二季度',
sum(case when quarter='3' then sales end) as '三季度',
sum(case when quarter='4' then sales end) as '四季度'
from sal group by years

7、MySQL数据库查询当前时间?

1
2
3
4
select CURRENT_DATE;		#查询当前日期
select CURRENT_TIME; #查询当前时间
select now(); #查询当前日期和时间
select SYSDATE(); #查询当前日期和时间

8、GET请求和POST请求的区别?

GET POST
后退按钮/刷新 无害 数据会被重新提交
书签 可收藏为书签 不可收藏为书签
缓存 能被缓存 不可缓存
编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml
历史 参数保留在浏览器历史中 参数不会保留在浏览器历史中
对数据长度的限制 2kb 无限制
对数据类型的限制 只允许ASCII 没有限制,也运行二进制数据
安全性 与POST相比,GET的安全性较差,因为所发送的数据是URL中的一部分 POST比GET更安全,因为参数不会保存在浏览器历史或web服务器的日志中
可见性 数据在URL中对所有人都是可见的 数据不会显示在URL中

9、将字符串”abcdefg”反转,变为”gfedcba”。

  • 方法一:使用StringBuffer的方法reverse(),可以实现字符串的反转。
1
2
3
String str = "abcdefg";
StringBuffer sb = new StringBuffer(str);
System.out.println(sb.reverse());
  • 方法二:使用Java的栈集合先进后出的特点,将字符串反转。
1
2
3
4
5
6
7
8
9
10
11
String str = "abcdefg";
Stack<Character> stack = new Stack<Character>();
for(int i = 0; i < str.length(); i++) {
stack.push(str.charAt(i));
}
while(true){
if(stack.isEmpty()) {
return;
}
System.out.print(stack.pop());
}
  • 方法三:使用一个char数组,从后向前遍历该数组实现字符串的反转。
1
2
3
4
5
String str = "abcdefg";
char[] ch = str.toCharArray();
for(int i = ch.length-1; i >= 0; i--) {
System.out.print(ch[i]);
}
坚持原创技术分享,您的支持将鼓励我继续创作!
-------------这是我的底线^_^-------------