出去浪,回来反思反思

最近在考虑换个环境,做了些面试题,并不难,但由于生疏,答得让自己很为难,闲话不表,将题目记下。

1、在下面表中查出所有重复的记录?

idnamepay
1张三1200
2李四1655
3王五2000
4李四1655

猜猜看,我的回答是什么?搞笑啊

SELECT * FROM table WHERE COUNT(name) > 1

运行结果是这个样子滴

Error Code: 1111. Invalid use of group function 0.000 sec

不得不承认,自己好菜啊 (✿◡‿◡),正确的查询语句,查询出某个字段重复的记录,如下:

SELECT 
    *
FROM
    test.pay_table
WHERE
    name IN (SELECT 
            name  -- 查询出记录数大于1的记录
        FROM
            test.pay_table
        GROUP BY name
        HAVING COUNT(name) > 1);

查询结果:

idnamepay
2李四1655
4李四1655

2、having/order by/group by的执行顺序?

基于上面的例子,相信group by 和 having已经明白了,先有分组,然后通过having子句控制条件。
最后当然就是,order by了,因为该语句是对结果进行排序,而另外两个都是查询结果的条件。要先于该语句执行。

SELECT 
            COUNT(name),name,pay
        FROM
            test.pay_table            
        GROUP BY name
        HAVING pay > 1500
        ORDER BY CONVERT(name USING gbk); -- MySQL要想对中文排序,需要将UTF8转为GBK

查询结果

COUNT(name)namepay
2李四1655
1王五2000

PS:这个问题我也答错了,生无可恋啊

3、AOP使用了什么设计模式?采用了什么机制?

答:装饰模式(×)

PS:我的脑子需要装饰一下,正确答案是:代理模式。

那么代理模式和装饰模式有什么区别呢?

如果定义不清楚,请看Gof的设计模式,或者《大话设计模式》通俗易懂。
一句话区分:代理模式是为了限制类的访问,而装饰模式是为了增强类的功能。

4、jvm内存模型

5、Servlet重定向与转发的区别

6、介绍一些线程模块的理解

java.util.concurrent包

7、Java如何实现多线程

8、Java如何实现序列化

9、Java如何解析XML,DOM和SAX区别

10、inputstream的子类

二、编程题

1. 将给定集合中的数据index和value反转

a[0] = 3 → a[3] = 0
输出一个这样的新集合

2. 给定一个初始值、行数、列数,生成增量矩阵,求其与转置矩阵的乘积

示例:初始值2,行数为2,列数为3,生成如下矩阵:
2 3 4
5 6 7
转置矩阵:
2 5
3 6
4 7
求乘积为:
29 56
56 110

提示:转置矩阵不用创建这样的矩阵数组,从增量矩阵中取值即可。

三、面试实践

某招聘网的面试过程,转载如下:
面试经历:
1.用电脑写两道算法题,不是很难,然后继续做18道推理题。
2.一面面了差不多一个小时吧,很多技术上和基础问题吧。
3.二面面了20分钟吧,问的问题不多。还好。
4.人力谈薪资等等吧

面试官提出的问题
问题1:
jvm原理
生产者消费者问题解决
json大括号中括号
java为什么序列化,如何自己实现序列化externalizable
java为什么用接口
java concurrent 线程池,数据库连接为什么使用等
java创建线程
servlet有什么方式传输对象
inputstream的子类
三范式
spring 单列模式是否线程安全。
线程顺序执行, join方法
string ioc,aop
java通过某种算法逻辑,更新数据库中的每条数据,优化方法,使用多线程,每天数据加锁,或者每个线程分条
sleep和wait区别
oracle my 字段允许最长多少字符,查询条件中,可最多查询多少字符
如何找到实现某个接口的所有实现类
linux 命令使用:如何动态查询一个输出文件, 如何倒序查看文件
反射查看类中的所用成员变量及方法名。
数组 length属性,字符串length方法
算法题:
指定数组位置排序,前升序,后降序
几个数的最大公约数
原文链接:http://www.kanzhun.com/gso1087027.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值