今天是我离职后的一个月零好几天,很幸运有同学的帮助,知晓了这个面试机会,上午到公司写了份笔试题目,发现有许多题目都不会,这也侧面反应了自己JAVA基础不是很好。
下面是自己不是很懂的题目,写下来,不仅是对自己的总结,也算是一种分享,如果有人看到我的博客有所收获,也是一件让人开心的事。
1.JavaScript的几种基本数据类型。
JS中有六大数据类型,其中包括五种基本的数据类型(Number、String、Boolean、undefned、null)和一种复杂的数据类型(Object)。
2.HTTP的get和post的区别。
get请求将参数放入url中传递,post是通过request body进行传递;不过get和post本质上都是TCP连接,但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中有些不同,其实,get和post还有一个重要的区别,就是:get产生一个数据包,post产生两个数据包。
(w3schools)标准答案:
(1)get在浏览器回退是无害的,post会再次提交请求。
(2)get请求会被浏览器主动cache,但是post不行,除非手动设置。
(3)get产生的url地址可以bookmark,但是post不行。
(4)get请求只能进行url编码,post支持多种编码。
(5)get请求参数会被完整保留在浏览器历史记录里,但post不会。
(6)get请求在url中传送的参数有长度限制,而post没有。
(7)get请求的参数数据类型必须是ASCII字符,而post没限制。
(8)get请求没有post安全,因为参数暴露在url中。
(9)get请求将参数放入url中传递,post是通过request body进行传递。
若有不明之处,可参考原文链接:https://mp.weixin.qq.com/s?__biz=MzI3NzIzMzg3Mw==&mid=100000054&idx=1&sn=71f6c214f3833d9ca20b9f7dcd9d33e4#rd
关于(1),有人解释:因为Get请求浏览器有缓存,回退时读取的是缓存中的数据. 但是Post没有浏览器缓存会再次发送请求,消耗服务器性能.
3.如何把一个逗号分割的字符串转换为一个数组。
public static void main(String[] args) {
System.out.println("---通过split方法转换为数组---");
String str="avd,faaw,lfa,we";
String[] result=str.split(",");
for (String string : result) {
System.out.println(string);
}
System.out.println("---通过StringTokenizer方法转换为数组---");
StringTokenizer tokener=new StringTokenizer(str, ",");
String[] result1=new String[tokener.countTokens()];
int i=0;
while (tokener.hasMoreElements()) {
result1[i++]=tokener.nextToken();
}
for (int j = 0; j < result1.length; j++) {
System.out.println(result1[j]);
}
}
注:JAVA中,既可以用split()方法分隔字符串,也可以用StringTokenizer进行分隔字符串。但是StringTokenizer分隔的字符串是逐个分隔,而split()方法是整体分隔。若有疑问,可参考链接:https://www.runoob.com/java/java-stringtokenizer-example.html
4.java的几种循环结构。
(1)for循环:for(变量初始化;循环成立条件;循环变量更新){ }
(2)while循环:while(循环条件){ }
(3)do..while循环:do{ }while(循环条件),至少要执行一次
注:java5中引入了一种主要用于数组的增强for循环:for(变量类型 变量名:表达式(一般为要访问的数组名或者返回值为数组的方法)){ }
详细可参考:https://blog.youkuaiyun.com/Life_s/article/details/78885942
5.JAVA循环遍历Map的几种方法。
6.Servlet是什么以及它的生命周期。
7.有一张department表,它有departId(部门id)、departName(部门名称)、departUpId(上级部门id)、departDate(部门成立时间)。
(1)写一段语句,查询表中重复的部门以及数量。
(2)写一段sql,查询成立日期至今大于两年,1-2年,小于1年的部门(oracle)。
(3)查询上级部门名称为销售部的第5-10条记录。
8.判断101-200之间有多少个素数并且将其打印出来。
9.利用代码实现JAVA简单的工厂模式。