面试那些事儿

--京东面试考题:

1.说说值对象与引用对象的区别?
2.谈谈你对反射机制的理解及其用途?
3.ArrayList、Vector、LinkedList的区别及其优缺点?HashMap、HashTable的区别及其优缺点?
3.列出线程的实现方式?如何实现同步?
4.sql题,是一个图表,具体忘了
5.列出至少五种设计模式?用代码或UML类图描述其中两种设计模式的原理?
6.谈谈你最近正在研究的技术,谈谈你最近项目中用到的技术难点及其解决思路。
7.请以30岁程序员为话题写一篇短文,可以包括你对薪资的期望,你的经历,你的人际关系,你的职业规划等

 

--华为面试:

怎么做到验证一个字段中出现非逻辑性的内容。 比如说,性别在表中0代表男,1代表女,除程序处理外,还能怎么限制输入3的情况?

建议答案如下:

1.web端避免用input,改用select或者radio,且只给出0,1的值。如果一定是input的话,用正则校验;但应该知道,任何只在前端限制或验证的方案都是不安全的,UI可以被攻击的,后台同样要做validation,而直接在数据库端限制是最安全的;

2.数据库采用enum类型,或者加个外键约束:
ALTER TABLE tt ADD CHECK (xx = 0 OR xx = 1);
ALTER TABLE tt ADD CHECK (xx in(0,1));
...CONSTRAINT tt CHECK (xx = 0 OR xx = 1)...
...CONSTRAINT tt CHECK (xx in(0,1))...
alter table table_name add constraint CK_Table_Name check sex in ('0','1'); //加约束

CREATE TABLE `test` (
  `sex` enum('1','0') default 0
)

3.或者可以这样理解,这一题其实就是考察对表的设计,把这个字段设成BIT类型的就行,这样数据库中就只能存0和1的值了(SQL2000下)。因为之前遇到过类似这样的问题,一个下拉框里面有几个值,VALUE是从0到5的,我把表字段设成了BIT,然后从前台操作,无论选2-5的值,数据库中都是保存的0的值,后来找错啊,找了好长时间,才发现这个问题,记忆深刻啊

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值