面试总结—— Java开发实习生

时间过得也挺快的,一下就要找工作了,这个专栏的话主要还是对平常一些有趣的事的分享8,校招到了,大厂不敢想,有人要就不错了。也投了比较多的简历8,在这一家公司投了一份简历,也有一些面试相关的题目等问题也在这里进行总结一下。

第一波

初试(笔试)

第一个的话就是初试(也就是笔试),在这里的基本笔试也就一些java基础,然后还有数据库的基础(大部分还是数据库语句的编写)然后还有一个模块是JavaScript,我个人的话对JavaScript这一方面也不是很了解,也很少用,而java和数据库的题目也还算中规中矩,也基本上就网上那一些面试题,然后还有一些自己编写方法的这些代码,数据库基本上就增删改查这一些,笔试过后的话,也很面试官了了两句8,自己对JavaScript还是有很多不足的,还是需要进行补习一下的,不过这倒也还好,笔试过了,让我星期六早上直接去公司参加面试。

笔试虽然过了,但是通过一份简单的面试题还是能够看出自己很多的不足之处,就比如JavaScript,就除了简单的变量定义,分支循环,其他的好像都不知道,但是还好离去公司还是有一段时间的,还是需要去补习一下,因为也有编程基础,JavaScript就直接从中级的样子开始看起,在这我是直接在菜鸟上看的。https://www.runoob.com/js/js-async.html,对自己的提升还是有的。

复试(面试+机试)

复试的话,这一天也要早点起来8,早点去公司,毕竟这也是一份开发的工作(校招的水很大,很多企业说是说找开发,到公司之后就要你做管培或者别的)。

面试的话基本上问我的还是java的知识,然后对照着简历进行问的,自己感觉的话还好,后续就是简历上写的项目,给面试官展示一下,问了我一些项目上的问题。

最后的话就是机试。看下机试题:一共有七个,看完之后感觉这有点小离谱,哈哈哈。

  1. (JS)编写一个方法实现倒计时功能,界面显示倒计时 从60倒计时到0停止

第一题:在这里,基本解题思路:需要使用到一个延时器,用setTimeout这个进行延时,后续使用一个方法进行循环调用实现:代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>time</title>
	</head>
	<body>
		<button type="button" onclick="settime(this)">button</button>
		<h3 id="h3_demo"></h3>
	</body>
	<script type="text/javascript">
		var countdown = 60;

		function settime(val) {
			if (countdown == 0) {
				document.getElementById("h3_demo").innerHTML ="计时结束!"
			} else {
				document.getElementById("h3_demo").innerHTML = "倒计时 : "+countdown
				countdown--;
			}
			setTimeout(function() {
				settime(val)
			}, 1000)
		}
	</script>
</html>

运行代码查看效果:

在这里插入图片描述

  1. (Java)已知字符串String str =“abc123dbbac43423ccc123”; 请取出每个字符在该字符串中出现的次数

第二题:Java题,我的解题思路是:先把整个字符串进行分割获取到单个字符,加入到一个Map集合当中去,使用一个count进行计数,即可实现。思路感觉还能实现,代码写的时候就有问题了(后续完成后再对该文进行修改)


理清一下头绪发现还是比较简单的,如下:

public class HashTest {
        public static void main(String[] args){
            String str ="abc123dbbac43423ccc123";
            //2.创建Map集合,key是字符串中的字符,value是字符的个数
            HashMap<Character,Integer> map = new HashMap<>();
            //3.遍历字符串,获取每一个字符
            for(char c : str.toCharArray()){
                //4.使用获取到的字符,去Map集合判断key是否存在
                if(map.containsKey(c)){
                    //key存在
                    Integer value = map.get(c);
                    value++;
                    map.put(c,value);
                }else{
                    //key不存在
                    map.put(c,1);
                }
            }
            //5.遍历Map集合,输出结果
            for(Character key : map.keySet()){
                Integer value = map.get(key);
                System.out.println(key+"="+value);
            }
        }
}
  1. (Java)写一个函数来读取ini文件
    ini文件内容如下(把start和end下面的username和password的值取出来):
    [start]
    username=admin
    password=123
    [end]
    username=admin2
    password=456

这个题可能是要使用File进行读取,这个还真就触及到我的知识盲区了,哈哈哈。还未写出。

  1. (JS)写一个函数来格式化金额元转分变成12位不足12位前补零,不考虑超过12位的情况,比如1.2 变成000000000120 意思1块2转成分120再前面补充0补足12位把结果输出来。

第四题:使用一个input进行输入,并且在js当中获取值,之后进行判断少多少位数字,使用字符串的拼接进行加上0.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>YuanToFen</title>
	</head>
	<body>
		请输入金额:(元)<input id="input1" type="text"/>
		<button type="button" onclick="GoTo()">Go To</button>
		<h3 id="h3_demo"></h3>
	</body>
	<script>
		function GoTo(){
			var yuan = document.getElementById("input1").value;
			if(yuan.length == 0){
				alert("请输入")
			}
			var Syuan = yuan.toString();s
			var lack;
			var repair;
			var a = "0";
			var len = Syuan.length;
			if(len!=13){
				lack = 13 - len;
				for( var i =0 ; i < lack ; i++){
					repair =  repair + a ;
				}
				var res  = repair + yuan
				document.getElementById("h3_demo").innerHTML = res;
			}
		}
	</script>
</html>

在这里还是有问题,可能是变量定义的前移,导致repair对象有一个undefined。

  1. (Java)用dom4j解析下面的xml串,取得下面BillNo的值(多个BillNo要全部取出来)
String returnxml="<Response><ROWCOUNT>5</ROWCOUNT><Rows><Row><BillNo>T0140412</BillNo>
	<MedicareType>0</MedicareType><BillingDepartmentId>154</BillingDepartmentId>
	<BillingDepartment>门诊中医科</BillingDepartment><BillingDoctor>管理员</BillingDoctor>
	<PayTime>2019-03-05 16:17:28</PayTime><PayStatus>3</PayStatus><BillCost>0.06</BillCost>
	<Executed>0</Executed><PayNumber>myy01wechat20190305161713932</PayNumber>
	<PayExtend>1|20190305161727||myy01wechat20190305161713932|rxrmyy01|||||T0140412</PayExtend>
	<BillInvNo/></Row><Row><BillNo>T0140412</BillNo><MedicareType>0</MedicareType>
	<BillingDepartmentId>154</BillingDepartmentId><BillingDepartment>门诊中医科
	</BillingDepartment><BillingDoctor>管理员</BillingDoctor>
	<PayTime>2019-03-05 16:19:13</PayTime><PayStatus>2</PayStatus>
	<BillCost>-0.06</BillCost><Executed>-1</Executed><PayNumber>1234234234</PayNumber>
	<PayExtend>退款交易说明</PayExtend><BillInvNo/></Row></Rows></Response>";

这个题也蒙了。

  1. Java定义一个集合List,里面存储字符串,添加N个字符串进去,里面可能有两条或以上重复记录,请去重复输出到控制台?
例如:
	   List<String> list = new ArrayList<String>();
		list.add("aaa");
		list.add("aaa");
		list.add("aaa");
		list.add("ccc");
		list.add("ddd");
		list.add("ddd");
结果输出:aaa和ddd和ccc

第六题:在这就使用比较即可:

package ListTest;

import java.util.ArrayList;
import java.util.List;

public class ListDemo {

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("aaa");
		list.add("aaa");
		list.add("aaa");
		list.add("ccc");
		list.add("ddd");
		list.add("ddd");
		list.add("aaa");
		for (int i = 0; i < list.size() - 1; i++) {
			for (int j = list.size() - 1; j > i; j--) {
				if (list.get(j).equals(list.get(i))) {
					list.remove(j);
				}
			}
		}
		System.out.println(list);
	}
}
  1. 用jsp+Servlet实现简单登录,要求如下:
    1、界面有用户名和密码输入框 ;登录、清除按钮 登录按钮提交登录请求,清除按钮清空文本框内容
    2、提交的登录之前判断用户和密码不能为空,以对话框的形式提示出来
    3、在servlet里面判断提交的用户和密码分别为admin和admin时,登录成功,其他登录失败

第七题:在这里就是一个简单的servlet登录界面。先看jsp代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<!--jsp表单,跳转到servlet,我这里就直接用servlet的全地址了。-->
	<form method="get" action="http://localhost:8080/11.7/Login">
		<label>Username</label> <input type="text" name="username"
			id="username"> <label>Password</label> <input type="password"
			name="password" id="password"> <input type="submit"
			value="Login in">
	</form>
	<!--定义一个清除按钮,并且绑定一个方法-->
	<button type="button" onclick="cleardata()">清除</button>
</body>
<script>
<!--清除方法的实现,直接获取到input的值,给其设置为空字符串即可-->
	function cleardata() {
		var user = document.getElementById("username").value;
		var pass = document.getElementById("password").value;
		//alert(user + pass + " clear")
		document.getElementById("username").value = ""
		document.getElementById("password").value=""
	}
</script>
</html>

之后的servlet代码基本上就是对username和password做判断进行跳转即可,也不做过多解释了:

package Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Login")
public class Login extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public Login() {
		super();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html");

		String use = request.getParameter("username");
		String password = request.getParameter("password");

		PrintWriter out = response.getWriter();
		if(use.equals("")) {
			out.println("<script type='text/javascript'>alert('账号为null');</script>");
		}else if(password.equals("")) {
			out.println("<script type='text/javascript'>alert('密码为null');</script>");
		}else {
			if (use.equals("admin") && password.equals("admin")) {
				out.println("<script type='text/javascript'>alert('登陆成功,即将跳转!');</script>");
				out.println("<script>window.location='http://www.baidu.com'</script>");
				System.out.println("登录成功");
			}else {
				out.println("<script type='text/javascript'>alert('账号密码不正确请重新输入');</script>");
				out.println("<script>window.location='http://localhost:8080/11.7/login.jsp'</script>");
			}
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
	}
}
总结:

题目写完之后,对自己而言还是有很多不足,上述的题目,还是有很多的问题,如果你对这些题目有一些自己的解决思路,也可以在文章下方进行评论,感谢你的不吝赐教。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Modify_QmQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值