面经

面经

alt

##讲一下登录、注册流程 ###登陆: 首先后台使用验证码生成方法生成一个验证码存入redis中,设定失效时间,然后显示页面给用户填写用户名密码验证码,根据填写的信息进行各项判断,如果用户填写的信息不正确则用map存入一个报警信息并返回给页面,页面使用js写,用Thymeleaf编辑,警告信息为空时不显示警告信息,有则显示出来,提示用户。比如:用户名密码不正确,验证码不正确等,如果用户各项填写正确,则在后台生成一个登陆凭证并保存到数据库中,也就是cookie,然后页面跳转至主页显示登陆成功。 ###注册: 注册也需要验证码,因此首先服务端使用验证码生成方法生成一个验证码并显示到用户页面,用户填写各项信息之后点击注册按钮,服务端会根据用户填写的信息进行判断,用户填写的数据不符合规范则会返回一个错误信息给页面,比如用户名为空,验证码错误等,如果各项信息都正确,则服务端会使用邮件发送方法对用户填写的邮箱发送邮件,我的邮件发送的是html格式,因此用户体验会更加舒适,用户点击邮箱中的地址则会跳转到我后台controller里面,后台会修改数据库中的用户状态字段,并返回一个网页提示激活成功,15秒后跳转到主页,15秒后跳转到主页。

##讲一下cookie如果没有cookie怎么登录

cookie:cookie我的理解是用户的一个登陆凭证,通过随机数生成,并且和其他信息比如登陆时间等一起存入到数据库相应表中,供以后的拦截器进行用户登陆有效判断。没有cookie则可以使用session,session是将用户登陆凭证保存在服务器中,这样做会增加服务器的压力,因此我通常采用仿cookie形式。

##讲一下怎么统计浏览这个项目的人数 ###使用redis,建立一个set集合,每次访问都将用户id存入set集合中,之后查询size就行了。 ##讲一下八种数据类型 ###byte 比特 1字节, ###short 2字节 存储范围比int小, ###int 4字节 , ###long 8字节 存储范围比int大, ###float 单精度浮点数 4字节, ###double 双精度浮点数 8字节, ###char 字符型 2字节, ###boolean 布尔型 1字节。 ##byte能存储汉字吗

汉字是两字节 而byte是一字节 因此不能存汉字。

##包装类型 ###Integer,Short,Byte,Long,Double,Character,Boolean,Float。 ##包装类有什么用 ###集合中不允许存放基本数据类型,因此使用包装类,包装类中有各种属性,比如说最大值,最小值等,包装类中有对对象的各种操作,比如类型转换和进制转换等。在java中万物皆对象,但是基本数据类型不是对象,因此引入包装类可以更好操作。基本数据类型和包装类的默认值不一样,比如int的默认值是0,而Integer的默认值是null,储存方式和声明方式也不一样,基本数据类型保存在堆栈中以供高效利用,而包装类是对象因此需要对象的引用,保存在堆中。基本数据类型不需要new,而包装类需要new。 ##常量池 ###常量池用于存放各种常量信息,如 类,方法,接口中的常量,以及字符串常量和基本数据类型的常量值。 ##讲一下客户端访问服务端用什么协议 ###TCP/IP协议,HTTP协议 ##讲一下http协议状态码 ###200 OK 服务器成功处理了请求 ###301/302 Moved Permanently 重定向 ###304 Not Modified(未修改)客户的缓存资源是最新的, 要客户端使用缓存 ###404 Not Found 未找到资源 ###501 Internal Server Error服务器遇到一个错误,使其无法对请求提供服务 ##讲一下http的方法 ###Get:获取资源 ###Put:传输文件 ###Post:传输数据实体 ###Delete:按请求URL删除指定的资源。 ###Head:获取报文首部 ##put和delete用在什么地方 ###Put用于提交文件,Delete用于删除指定资源。 ##讲一下泛型 ###在java中有很多数据类型,有时候数据类型需要强制类型转换,比如int转换成String,泛型可以实现参数的任意化,泛型可以用在类,接口,方法的创建中,有了泛型就可以避免不必要的类型转换,使代码更加安全。 ##讲一下注解怎么实现的 ###通过使用@interface来声明一个注解,并用反射来实现注解。 ##讲一下反射,能否通过反射访问private字段,如果private方法呢 ###都可以,反射是通过反编译字节码class文件来调用其中的局部变量,方法,和构造方法。 ##讲一下异常的分类,什么时候用IOException、什么时候用RuntimeException ##讲一下HashMap和Hashtable的区别 ###hashMap线程不安全,在高并发下hashMap可能存在数据丢失的情况,以及jdk1.7中它在高并发条件下扩容时采用头插法转移数据,会导致死循环链表。Hashtable线程安全,他是用同步锁声明整个表,当数据修改时会锁定整个表。 ##讲一下Spring中的Aop ###aop是面向切面编程,是使用预编译方式对程序功能进行统一的处理。 ##讲一下动态代理是怎么实现的 ###动态代理有两种实现方式,一种是通过java原生api实现,也就是用反射实现,另一种是用第三方库Cglib实现。 ##讲一下IOC ###IOC是控制反转,基于反射和xml实现,对象的创建交给容器来执行,可以降低对象与对象之间的耦合度,当然在spring boot框架中,已经不需要配置xml文件了,通过注解就可以实现bean的实例化。 ##讲一下IOC主要的功能,管理bean之间的关系、创建对象,还有呢.... ###来统一管理对象之间的依赖关系以及对象的生命周期,ioc是一种思想,它告诉我们怎么让对象与对象之间的耦合度更低,如何让自己的代码更加实用。 ##讲一下Springboot的特点,Springboot中有哪些注解 ###SpringBoot 不需要创建Xml文件来配置bean,也不需要创建Xml文件来配置mybatis,只需要在properties配置文件配置个别参数就可以正常使用了,在该框架中有pom文件专门指定依赖。@Controller,@Service,@Dao,@Component,@Bean,@value,@Autowried。 ##讲一下Spring事务 ##讲一下事务是什么 ##讲一下索引,加了索引速度一定会变快吗 ##讲一下Having什么时候使用,是分组在前还是having在前 ##讲一下常用的linux命令 ##查看当前的系统时间知道吗 ##怎么判断正在跑着的tomcat出现了问题 ##假如多台服务器部署你的项目,你怎么做 ##知道消息队列吗 ##知道git的使用吗,怎么拉取远端分支,怎么合并分支 ##sychronized关键字的底层怎么实现的 ##System.arraycopy的底层实现讲一下 ##转发和重定向的区别,重定向的过程讲一下 ##知道maven怎么用吗 ##知道消息队列吗,它是干什么的 ##假如现在给你一个学生成绩管理系统,你怎么设计和实现

全部评论

相关推荐

05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务