时间过得也挺快的,一下就要找工作了,这个专栏的话主要还是对平常一些有趣的事的分享8,校招到了,大厂不敢想,有人要就不错了。也投了比较多的简历8,在这一家公司投了一份简历,也有一些面试相关的题目等问题也在这里进行总结一下。
第一波
初试(笔试)
第一个的话就是初试(也就是笔试),在这里的基本笔试也就一些java基础,然后还有数据库的基础(大部分还是数据库语句的编写)然后还有一个模块是JavaScript,我个人的话对JavaScript这一方面也不是很了解,也很少用,而java和数据库的题目也还算中规中矩,也基本上就网上那一些面试题,然后还有一些自己编写方法的这些代码,数据库基本上就增删改查这一些,笔试过后的话,也很面试官了了两句8,自己对JavaScript还是有很多不足的,还是需要进行补习一下的,不过这倒也还好,笔试过了,让我星期六早上直接去公司参加面试。
笔试虽然过了,但是通过一份简单的面试题还是能够看出自己很多的不足之处,就比如JavaScript,就除了简单的变量定义,分支循环,其他的好像都不知道,但是还好离去公司还是有一段时间的,还是需要去补习一下,因为也有编程基础,JavaScript就直接从中级的样子开始看起,在这我是直接在菜鸟上看的。https://www.runoob.com/js/js-async.html,对自己的提升还是有的。
复试(面试+机试)
复试的话,这一天也要早点起来8,早点去公司,毕竟这也是一份开发的工作(校招的水很大,很多企业说是说找开发,到公司之后就要你做管培或者别的)。
面试的话基本上问我的还是java的知识,然后对照着简历进行问的,自己感觉的话还好,后续就是简历上写的项目,给面试官展示一下,问了我一些项目上的问题。
最后的话就是机试。看下机试题:一共有七个,看完之后感觉这有点小离谱,哈哈哈。
- (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>
运行代码查看效果:
- (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);
}
}
}
- (Java)写一个函数来读取ini文件
ini文件内容如下(把start和end下面的username和password的值取出来):
[start]
username=admin
password=123
[end]
username=admin2
password=456
这个题可能是要使用File进行读取,这个还真就触及到我的知识盲区了,哈哈哈。还未写出。
- (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。
- (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>";
这个题也蒙了。
- 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);
}
}
- 用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);
}
}
总结:
题目写完之后,对自己而言还是有很多不足,上述的题目,还是有很多的问题,如果你对这些题目有一些自己的解决思路,也可以在文章下方进行评论,感谢你的不吝赐教。