java基础
wxl_winston
做想做的事,过想过的生活,既可以朝九晚五,也可以浪迹天涯
展开
-
系统登录页面短信验证码方式登录实现
近期公司有个需求,要求使用短信验证码登录,取代原来的图片验证码方式,在此记录一下我的实现方法,希望对你有所帮助公司需求:目前只有账号和验证码方式验证登录,按照公司网络安全统一部署,要求所有公网系统都需要动态双因子认证 改造方案:此ULR增加登录短信验证,取代验证码验证对于此需求,思路就是点了"发送验证码"按钮后,前台开始倒计时,后台随机生成一个6位数的验证码 记录一下当前的时间戳(用来校验验证码是否失效,根据业务情况的不同设置不同的失效时间,我这里是5分钟内有效),将发送的验证码和时间戳返回前原创 2020-07-13 16:04:42 · 6705 阅读 · 0 评论 -
3DES实现前台JavaScript加密,后台Java解密
项目漏扫要求涉及到密码传输的页面对密码进行加密,下面是需求详情:1.需求:客户、客户经理、管理员登录页面的密码需要加密传输2.风险分析:程序在与服务器通信的过程中如果未做加密处理,数据可能被第三方截获,导致泄露隐私信息,服务器沦陷等风险3.加密方式:3DES,AES,RSA,MD5其中之一即可其中3DES和AES是对称加密算法,RSA是非对称加密算法,MD5是Hash加密算法,我选...原创 2019-12-14 14:22:19 · 372 阅读 · 0 评论 -
equals和==的区别小结
equals和==的区别小结==:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,如:int a=10 ...原创 2018-09-07 19:47:15 · 147 阅读 · 0 评论 -
关于多线程的最常见的面试题总结
如果不会这几道多线程基础题,请自觉面壁! 1.简述线程,程序、进程的基本概念。以及他们之间关系是什么?线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。程序是含有指令和...原创 2018-09-11 16:51:02 · 791 阅读 · 0 评论 -
各种集合框架的总结ArrayList、LinkedList、Vector、HashMap、HashTable、HashSet、LinkedHaSet、TreeSet、ConcurrentHashMap
这几道Java集合框架面试题在面试中几乎必问 1.Arraylist 与 LinkedList 异同1. 线程安全: ArrayList 和 LinkedList 都是线程不安全的;2. 数据结构: Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向循环链表;3. 插入和删除是否受元素位置的影响: ① ArrayList 采用数组存储,所以插入和...原创 2018-09-11 21:55:09 · 1073 阅读 · 0 评论 -
单例模式的五种写法:懒汉、饿汉、双重检验锁、静态内部类、枚举
单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。懒汉式,线程不安全当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我们的。pu...转载 2018-09-15 09:36:46 · 301 阅读 · 0 评论