毕业一年后的java面试总结

前言

     目前公司闲,没有新产品开发,都是一些维护工作,于是我提出了离职,开始了面试之路,抱着一个面试就是学习的心态去面试的,当然了,也是希望能拿到大公司的offer,大概面试了一个月左右的时间!!!

    毕业一年后的java面试总结毕业一年后的java面试总结

    一共面试了8家,拿了3个offer,自己觉得不太满意,因为没有准备太充分,每次准备又不知道准备什么,想着先面试面了之后就知道如何准备了,其实这是很伤的,可能会错失理想的公司,拿到的offer基本公司都不大,去了一家规模最大,薪资最高并且离我住的地方最近的一家公司,并且还是做"金融"的,算的上是"天时地利人和"吧,哈哈~~

  

 面试前的注意点

  1. 简历:  简历必须多动脑筋,尽量知识面多一点.
  2. 想清楚离职的原因,下一家想找什么样子的公司. 根据自己的真实情况,可以海投,收到面试邀请一定要查一查在过去.
  3. 投简历: 我投简历的时候都是海投,因为自己学历不太好,很容易被拒绝,所以投的多才能有更多的面试机会,某一些要求比较高的也可以投,因为,投简历不用花钱~~
  4. 准备工作: 其实我没怎么准备~~之前看到一些jdk的源码,说实话对这次面试还有所帮助的, 然后每面试完一家之后记录下来,晚上找找答案, 会遇到重复的问题的,如果没有遇到,当学习也是很不错的
  5. 我的理解: 问问题就是这样,由浅入深,从各种方面去问,比如: 问你集合的理解? list与set的区别? ArrayList与linkedList有啥区别? 能解释一下ArrayList的add方法吗? ,只是举例表达出问题的由浅入深,所以面广,知识点深,那么何愁offer没有,哈哈.毕业一年后的java面试总结

  

  

 面试知识点

    1. 有一个字符串里面有中文和英文,如何切割时保证中文不被切割?(代码实现)   
    2.  jdbc的加载步骤说一下(我也是蒙蔽了~~)
    3. statement与praredStatement的区别
    4. 创建线程的3种方式
    5. 线程池的原理
    6. 怎么手写一个线程池
    7. spring boot的定时器时如何实现的
    8. spring boot的两大特性
    9. 说一说订单管理需要怎么样去设计表
    10. spring mvc的工作流程
    11. hibernate与mybatis 的一些区别
    12. 聊一聊arrayList种的add方法
    13. md5加密的实现
    14. md5如何完成可逆的
    15. 介绍一下异常体系
    16. 说4种常见的运行时异常以及为什么会发生
    17. git与svn的区别
    18. git中分支提交到另一个分支出现冲突怎么解决
    19. sql题目也遇到了一些(这里就不描述了....)
    20. 说一说你工作中遇到的最大的问题?如何解决的
    21. 换工作的原因(几乎每一家都有问到)
    22. 说一下你的优势

    上面就是我面试的一些(印象比较深的)问题

    找了一下sql面试题图:

      

毕业一年后的java面试总结毕业一年后的java面试总结

  毕业一年后的java面试总结毕业一年后的java面试总结

  下面是我附上的答案,经过我测试的~~如果有错误的请留言~~

-- 1查询下面表中 id重复的(通过count计数的方式)
CREATE TABLE t_demo1(
id INT
); INSERT INTO t_demo1 VALUES(1); INSERT INTO t_demo1 VALUES(2); INSERT INTO t_demo1 VALUES(3); INSERT INTO t_demo1 VALUES(4); INSERT INTO t_demo1 VALUES(4); -- 答案
SELECT * FROM t_demo1 WHERE id IN(
SELECT id FROM t_demo1 GROUP BY id HAVING COUNT(id) > 1
) -- 2查询出表t_demo1中有但表t_demo2中没有的记录
CREATE TABLE t_demo2(
id INT
);
INSERT INTO t_demo2 VALUES(3); INSERT INTO t_demo2 VALUES(4); SELECT * FROM t_demo1 SELECT * FROM t_demo2
-- 答案
SELECT * FROM t_demo1 WHERE id NOT IN(
SELECT DISTINCT t2.id FROM t_demo1 t1 RIGHT JOIN t_demo2 t2 ON t1.id != t2.id
) -- 3 批量更新订单表中的金额
-- 订单表
CREATE TABLE A(
aid VARCHAR(10) COMMENT '主键id',
c_time DATE COMMENT '时间',
total DOUBLE COMMENT '总金额'
);
-- 订单明细表
CREATE TABLE B(
aid VARCHAR(10) COMMENT '主键id',
amount DOUBLE COMMENT '货物金额',
comments VARCHAR(20) COMMENT '购买说明'
); INSERT INTO A VALUES('D01', '2018-01-01', NULL);
INSERT INTO A VALUES('D02', '2018-01-02', NULL); INSERT INTO B VALUES('D01', 100, '手机充值');
INSERT INTO B VALUES('D01', 4, 'Q币充值');
INSERT INTO B VALUES('D02', 90, '买迪卡侬'); -- 答案
UPDATE A SET A.total = (SELECT SUM(B.`amount`) FROM B WHERE A.aid = B.aid) SELECT * FROM A SELECT * FROM B UPDATE A SET total = NULL WHERE a.aid = 'D01' -- 4用一句sql 统计01月份 12月份及全年的订单总金额
CREATE TABLE C(
id INT COMMENT '主键id' ,
c_time DATE COMMENT '时间',
amount DOUBLE COMMENT '订单金额',
comments VARCHAR(40) COMMENT '备注'
); INSERT INTO C VALUES(1, '2018-01-01 01:30:00', 300, '衣服'); INSERT INTO C VALUES(2, '2018-01-01 01:30:00', 300, '衣服'); INSERT INTO C VALUES(3, '2018-12-01 01:30:00', 300, '衣服'); INSERT INTO C VALUES(4, '2018-12-01 01:30:00', 300, '衣服'); INSERT INTO C VALUES(5, '2017-12-01 01:30:00', 300, '衣服'); SELECT DATE_FORMAT(c_time,'%Y-%m') FROM c -- 答案
SELECT DATE_FORMAT(c_time,'%Y%m') AS ct,SUM(amount) FROM c WHERE YEAR(c_time) = '2018' GROUP BY ct,amount
UNION
SELECT DATE_FORMAT(c_time,'%Y') AS ct,SUM(amount) FROM c WHERE YEAR(c_time)

  

  其他

      有一些面试官也会问我会不会前端,接触过的前端框架,毕竟是做java的并且我在小公司呆过,至少也会一些前端的,但是我确实只会用jquery,哈哈,很尴尬了,对了,有一个面试题: 一个空页面,如果让里面唯一的div垂直并居中,最近买了一本spring源码深度分析,感觉很难,花了几天的时间才把源码导入到eclipse,遇到了很多坑啊...为什么买呢?因为我觉得spring是核心啊,它的设计是真的叼,,所以买了,不知道能不能啃下来,加油吧~~

      

上一篇:编写高质量JS代码的68个有效方法(八)


下一篇:编写高质量JS代码的68个有效方法(七)