记7月11日上午国电开发岗面试

博主离职后参加面试,笔试中发现自己JAVA基础不足。分享了面试中不懂的题目,包括JavaScript基本数据类型、HTTP的get和post区别、字符串转数组、JAVA循环结构、遍历Map方法、Servlet相关、SQL查询、素数判断及简单工厂模式实现等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天是我离职后的一个月零好几天,很幸运有同学的帮助,知晓了这个面试机会,上午到公司写了份笔试题目,发现有许多题目都不会,这也侧面反应了自己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简单的工厂模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值