一  如何解决多台web服务器粘性会话的问题?

粘性session:web服务器会把某个用户的请求,交给tomcat集群中的一个节点,以后此节点就负责该保存该用户的session,如果此节点挂掉,那么该用户的session也会消失。
非粘性session:通过负载均衡器会根据节点的情况,把用户的请求进行分发,也就是会复制多份session分发给多个节点,这样,如果节点中其中一个session挂掉的话,其它的还能继续工作,也就是只要有一个节点没有挂掉,该用户的信息就不会消失:

1. 利用Memcache/Redis共享Session数据:搭建Memcache/Redis集群,将用户Session写入Memcache/Redis,设置key值的有效期,即Session的有效期。一般来说缓存的并发性能高于数据库,这个方法可以获得较大的负载量

2 利用数据库共享Session数据:创建一个数据库库专门存放用户Session,用户登录一次插入一条数据(如果第一次登录),并由程序去维护Session的时效性。这个做法的弊端是,数据库的负担很大而且本来就是容易产生瓶颈的地方,日活的增加导致性能问题。

二  假如某项目上线后,系统经常出现宕机或者假死,请问应该从哪几个方面去分析解决?

三  描述一下常见一些hash算法的应用场景

1. 校验安装文件的完整性,在软件部署的时候,计算软件包当前的哈希值是否与预设值相等,防止软件包被篡改或被替换
2. 存储和校验用户口令,用户口令不能用明文存储,更进一步,如果系统不知道用户口令明文,那就更好了,而哈希算法就可以做到既不知道用户明文,又可以校验用户口令
3. 作为数据库表分区的分区条件

四  假如有100W个敏感词汇表,如何从一段网络文章里快速找出是否存在敏感词。

https://www.cnblogs.com/AlanLee/p/5329555.html

五  请描述ThreadLocal的作用以及使用场合,在程序中用来传递数据合适不合适?

  ThreadLocal并不是一个Thread,而是Thread的局部变量。针对每个线程提供自己的变量版本,每个线程维护自己的版本,彼此独立,修改不会影响到对方,避免线程冲突。譬如在Web开发中,存放一次请求的Context。在程序中传递数据是不合适的,ThreadLocal携带多个线程变量版本,传递数据浪费性能

六  请描述一下系统信息安全方面的一些常见攻击手段与预防方法?

1 口令破解:可以采用字典破解和暴力破解来获得口令。

2 IP欺骗::攻击者可以通过伪装成被信任的IP地址等方式来获取目标的信任。这主要是针对防火墙的IP包过滤以及LINUX/UNIX下建立的IP地址信任关系的主机实施欺骗。

3 DNS欺骗:由于DNS服务器相互交换信息的时候并不建立身份验证,这就使得黑客可以使用错误的信息将用户引向错误主机。

5 DdoS攻击 :DdoS攻击(Distributed Denial of Server,分布式拒绝服务)是一种基于DOS的特殊形式的拒绝服务攻击,是一种分布协作的大规模攻击方式,主要瞄准比较大的站点,像商业公司、搜索引擎和政府部门的站点。他利用一批受控制的机器向一台目标机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有很大的破坏性。

6 缓冲区溢出攻击(buffer overflow)
通过往程序的缓冲区写超过其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他指令,以达到攻击的目的。缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在,根据统计:通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上。利用缓冲区溢出攻击可以导致程序运行失败、系统死机、重新启动等后果,更严重的是,可以利用他执行非授权的指令,甚至可以取得系统特权,进而进行各种非法操作。由于他历史悠久、危害巨大,被称为数十年来攻击和防卫的弱点。
社交工程(Social Engineering)

七  请列举几个Linux常见命令:

实时查看服务器日志文件内容

tail -f

修改文件用户所有者以及所在组

chown命令来改变文件所有者:chown [-R] 账号名称 文件或目录
chgrp命令来改变文件所属用户组:chgrp [-R] 用户组名称 文件或目录

查看服务器内存使用情况

free

查找进程名称包括tomcat的进程ID

ps -ef|grep tomcat

查看服务器磁盘空间使用情况

dh -f

查看服务器IO压力情况

top

检测连接到服务器每个节点的连接速度

netstat -an

创建一个/local/usr/mysql/dbfile到/data/mysql/dbfile目录的软链接

ln -s /local/usr/mysql/dbfile/   /data/mysql/dbfile/

八  在多服务器集群部署的情况下,如何避免并发带来的问题,比如一个理财产品剩余金额为10000,如何应对抢购?

解决秒杀抢购类的关键思路是:尽量将请求拦截在系统上游,减轻数据库压力

1 最简单的方式是采用数据库事务处理,由于数据库并发量有效,无法应对极大流量的抢购

当某用户进入抢购时,假定一个用户只能抢购一份,执行事务伪代码如下:

begin transaction;

select balace from 产品表 where product_id = xx for update;

if(balace<1) return;

...创建订单

update 产品表 set balace=balace-1;

end transaction;

2 采用Redis的事务功能和Watch特性,可以承受较大并发量

http://blog.csdn.net/e421083458/article/details/49741451

http://www.cnblogs.com/longtaosoft/p/6627568.html

九 Java中自带哪些线程池,分别的应用场景是什么?

Java通过Executors提供四种线程池,分别为:
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行

http://cuisuqiang.iteye.com/blog/2019372

http://www.importnew.com/16797.html

十  mysql数据库有以下三个表及字段说明

Columns of "Person" Table,人员表
Column Name DataType Comment
 pcode  int  人员代码,主键
name varchar(100) 姓名
gender varchar(10) 性别
age int 年龄
org_code int 所在单位的单位代码,外键
email varchar(100) 电子邮件
Columns of "Organization" Table,单位表
Column Name DataType Comment
org_code int 单位代码,主键
name varchar(100) 单位名称
province varchar(100) 单位所在省份或者直辖市
Columns of "UserGroup" Table,人员角色表
Column Name DataType Comment
pcode int 人员代码
group_no varchar(10) 角色码,“20”:项目负责人,“10”:单位联络人

A 由于深圳大学的邮箱发生变更,需要紧急将深圳大学所有单位联络人的邮箱(eg:zhangshan@szdx.edu.cn),域名"szdx.edu.cn"从替换成"szu.edu.cn",请写出SQL语句

update person set email = replace(email, 'szdx,edu.cn', 'szu.edu.cn') 
where email like '%szdx.edu.cn' and org_code in (select org_code from organization where name = '深圳大学')
and pcode in (select pcode from usergroup where group_no = '10')

B 现在要查询出北京市每个单位的单位联络人平均年龄,请写出SQL语句,结果输出:单位代码,单位名称,平均年龄

select p.org_code as 单位代码,o.name as 单位代码, avg(p.age) as 平均年龄 from person p left join organization o on p.org_code = o.org_code where pcode in (select pcode from usergroup where group_no = '10')
group by o.org_code

C 统计全国每个单位的项目负责人年龄小于40岁的人数,结果输出:单位代码,单位名称,人数

select p.org_code as 单位代码,o.name as 单位代码, count(p.age) as 人数 from person p left join organization o on p.org_code = o.org_code where pcode in (select pcode from usergroup where group_no = '20')  and p.age < 40
group by o.org_code

  

随手科技(随手记)2017招聘Java工程师笔试题的更多相关文章

  1. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇]     隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...

  2. 友金所招聘Java工程师面试题

    友金所是一家位于深圳南山科技园的P2P网贷公司,用友集团控股.该公司采用渐进式的问答面试,没有笔试题.比如面试者说熟悉多线程,面试官就问哪些方式解决并发:面试者说采用Synchronized或者Ree ...

  3. 2019 智联招聘java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.智联等公司offer,岗位是Java后端开发,因为发展原因最终选择去了智联,入职一年时间了,之前面试了很多家公 ...

  4. 阿里巴巴集团2016校园招聘-Python工程师笔试题(附加题+部分答案)

    前言 第一次网上笔试,被虐的很惨.一是不太习惯,最主要的是还是自己对Python的掌握,还不够熟练.下面是这次阿里笔试相关信息 笔试时间是,2015年8月23日,10:00——12:00 对于笔试题, ...

  5. 2019年跨越速递Java工程师笔试题

    1.下面哪个选项可以用于JSP页面之间传递对象(A C) A application B page C session D error  E response 评语:这道题考察的是对JSP内置对象的了 ...

  6. 北京南天软件java工程师面试题

    此试题为北京南天软件java工程师面试题(部分) 一.单项选择 (1)下列关于构造方法的叙述中,错误的是(C) A.java语言规定构造方法名与类名必须相同 B.java语言规定构造方法没有返回值,但 ...

  7. 复盘鼎甲科技2020web开发工程师-笔试题(校招)

    复盘鼎甲科技2020web开发工程师-笔试题(校招) 本试卷以W3C规范为准,JavaScript使用ES5标准,除特别说明外,不考虑各个浏览器之间差异. 一.多项选择题 以下标签是行内元素(inli ...

  8. 转:一份基础的嵌入式Linux工程师笔试题

    一. 填空题: 1. 一些Linux命令,显示文件,拷贝,删除 Ls cp rm 2. do……while和while……do有什么区别? 3. Linux系统下.ko文件是什么文件?.so文件是什么 ...

  9. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

随机推荐

  1. javascript中字符串的方法

    字符串的方法 charAt();返回字符串指定索引的字符: concat();连接两个或多个字符串: indexOf();返回字符串中检索指定字符第一次出现的位置: lastIndexOf();返回字 ...

  2. Deformable Convolutional Network

    Deformable conv赋予了CNN位置变换的能力,与普通卷积的对比如下.可以看到,在每个特征点上,会产生一个偏移,变成 不规则的卷积(感觉本质上,就是让CNN自己去学习感受野). 思想来源于S ...

  3. git命令之git remote的用法

    git remote git  remote -v git init git add xxx git commit -m 'xxx' git remote add origin ssh://softw ...

  4. 网络流24题 ——运输问题 luogu 4015

    题目描述:这里 题面已经提示我们这是费用流了 那么由源点向所有仓库连边,容量为仓库原有货物量,费用为0 然后由所有零售商店向汇点连边,容量为一个零售商店的需求量,费用为0 最后由仓库向零售商店连边,容 ...

  5. HBase2.0.5 WordCount

    待计算的wordCount文件放在HDFS上. wc.txt: hive hadoop hello hello world hbase hive 目标:进行WordCount计算,把结果输出到HBas ...

  6. 解决Bootstrap 标签页(Tab)插件切换echarts不显示问题

    1.参考连接:https://blog.csdn.net/qq_24313955/article/details/78363981 问题描述:在echarts跟bootstrap选项卡整合的时候,默认 ...

  7. [转] Vue + Webpack 组件式开发(练习环境)

    前言 研究了下别人的 vue 多页面框架, 都是直接复制 package.json 文件,然后在本地 npm install 一下即可, 或者使用官网 vue-cli 工具生成一个项目, 觉得这样虽然 ...

  8. PHP 验证身份证

    function isCreditNo($vStr) { $vCity = array( '11','12','13','14','15','21','22', '23','31','32','33' ...

  9. iphone手机浏览器文本框不触发输入中文的keyup事件

    问题描述:iphone手机浏览器文本框不触发输入中文的keyup事件,在输入中文之后需要点击回退按键,才会开始搜索.问题分析:iphone手机的输入法(不管是第三方还是自带)能检测到英文或者数字的ke ...

  10. shell - shift

    Shell编程中Shift的用法 位置参数可以用shift命令左移.比如 shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shi ...