-
EasyUI中表单中校验关键字,如果写email就会用email校验,写Tel就会用Tel校验。EasyUI的反射
-
在不同系统之中怎么传输自定义对象,传给对方,然后再让对方还原出来。 Java序列化
把对象转为字节序列的过程称为java序列化
把字节序列转化为对象的过程称之为java反序列化
对象的序列化主要有两种用途:
1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
2) 在网络上传送对象的字节序列。
Java对象的序列化和反序列化 -
登录信息共享,session共享
session一致性问题:如果设置了反向代理,用户登录信息的session保存在第一个server上,但反向代理到了另一个server上,可能就找不到相关session信息,导致用户需要重新登录。
可以有以下解决方案:- Session复制(在不同服务器间复制session)不好,占用大量网络资源
- Session绑定(固定请求分发到固定服务器)不好,一旦宕机该服务器处理的请求都失效
- 利用cookie记录session(受cookie大小限制能记录信息有限)较好
- 使用session服务器(将应用服务器状态分离,分为无状态的应用服务器和有状态的session服务器,然后针对这两种服务器的不同特性分别做设计架构) 。基于cache DB缓存的Session共享(推荐,Spring-Session也是同样的原理,同自定义的JRedis一起配置可以实现目的):使用Redis存取Session信息,应用服务器发生故障时,当Session不在内存中时就会去CacheDB中查找(要求Redis支持持久化),找到则复制到本机,实现Session共享和高可用。
基于Redis的Session共享实现
1)原理:写一个Session过滤器拦截每一次请求,在这里检查由Cookie生成的SessionID,进行创建或获取。核心是实现使用装饰类,实现Session在Redis中的存取操作。
2)此处存取方式为 sessionID+sessionKey作为Redis的key ==== sessionValue作为Redis的value,这样保存了每次存取都从Redis中操作,效率更高。
3)注意:序列化方式推荐使用Apache下Commons组件——SerializationUtils 或 org.springframework.util.SerializationUtils
集群服务器Session同步及一种基于Memcached的session同步
集群环境下的Session共享
注意:当request进入web容器,根据request获取session时,如果web容器中存在session则返回,如果不存在,web容器则创建一个session。然后返回response时,将sessonId作为response的head一并返回给客户端或者浏览器。这个sessionId会被保存在浏览器的会话cookie中。
sessionId的生成过程和过期时间
彻底理解cookie,session,token
Cookie和Token
教你如何利用Token实现分布式Session!
-
如果做一个登录注册认证功能的话,在安全性方面会有哪些考虑? 在表单提交过程中需要注意什么? 如果需要远程数据认证的话,怎么做数据包监听?
使用Session防止表单重复提交
WEB网站设计用户登录的安全机制 -
有M个人手拉手成一个圈,编号1~M-1。随机生成一个数字N,在圈中去掉编号为N的人,剩下的人再手拉手成一个圈,这样一直持续到圈中只剩下一个人。设计一个算法,找出最后一个人?
链表+递归
- 自我介绍?
- 找一个项目介绍一下?
- SpringCloud、Docker、分布式架构是否了解过?
-
Linux命令:查看文件夹此级下面所有文件的大小的命令 赋权chmod 查看CPU内存占用 vim中撤销命令,vim中的查找命令?
du -sh 查看当前目录总大小
du -sh 目录名称 查看指定目录的总大小
free 查看总内存、使用、空闲等情况、
top 查看CPU 内存使用情况、
chmod 赋权 读=4,写=2,执行=1 chmod abc file 其中a,b,c各为一个数字,分别表示User(档案拥有者)、Group(群组)、及Other(其他)的权限。
vim中的撤销命令为u
vim中查找命令: 在命令模式下,输入/你要查找的字符
按下回车,可以看到vim把光标移动到该字符处
再按n(小写)查看下一个匹配
按N(大写)查看上一个匹配, -
常用的集合有哪些? 想得到一个线程安全的ArrayList。HashMap的扩载机制是怎样的。线程安全的HashMap? ConcurrentHashMap的实现原理?
线程安全的ArrayList有synchronizedList还有CopyOnWriteArrayList
线程安全的原理:synchronizedList: 在对原始arraylist操作时,都会增加关键字synchronized 保证线程安全(类似静态代理)import java.util.Collections; import java.util.concurrent.CopyOnWriteArrayList; List<Integer> list = new CopyOnWriteArrayList<Integer>(); List<Integer> list2 = Collections.synchronizedList(new ArrayList<Integer>());
CopyOnWriteArrayList实现原理及源码分析
CopyOnWriteArrayList线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略读操作是无锁的,性能较高。至于写操作,比如向容器中添加一个元素,则首先将当前容器复制一份,然后在新副本上执行写操作,结束之后再将原容器的引用指向新容器。 -
用的数据库是什么?分组之后取第一条数据。
rownum关键字
select *
from (select tmp_tb.*, ROWNUM row_id
from (select *
from (
select STARTTIME as starttime,
CITY_NAME as cityName,
DISTRICT_NAME as districtName,
OPERATOR_NAME as operatorName,
TECH as tech,
GRID_ID as gridId,
substr(GRID_ID, 0, 8) * 0.00001 as longitude,
substr(GRID_ID, 10, 8) * 0.00001 as latitude,
POOR_DT as poorDt,
POOR_CQT as poorCqt,
POOR_MR as poorMr,
POOR_TS as poorTs,
FLOW as flow,
TRAFFIC as traffic,
COMMON_DT as commonDt,
COMMON_CQT as commonCqt,
COMMON_TS as commonTs,
COMMON_MR as commonMr,
COMMON_TRAFFIC as commonTraffic,
COMMON_FLOW as commonFlow,
WEIGHT as weight
from ADS_TOWER_COMMON
where 1 = 1
)
where 1 = 1
and starttime = '2019年1月'
and cityName like '%枣庄市%'
and operatorName like '%联通%'
and tech like '%全部,4G%') tmp_tb
where ROWNUM <= 25)
where row_id > 0
-
设计模式了解过吗?单例模式有哪些实现方式,jdk中有哪些是用到了单例模式?
单例模式实现方式:静态内部类
双重加锁模式
枚举
JDK中的Runtime.getRuntime()方法就是单例模式 - VUE了解过吗?!
网友评论