1.你最常上的两个技术站和最常使用的两个app分別进什么?主要解决你什么需求?
答:CSDN和微信和idea还有浏览器 CSDN用于发布博客,积累解决问题经验
2.请简述http协议中get请求和post请求的区别.
答:GET请求一般用去请求获取数据,POST一般作为发送数据到后台时使用
get传参的话一般直接跟在路径后边
post把值写入Body中,后台如果用Springboot的话,就用RequestBody注解接值
get请求时路径可以被浏览器添加于书签,而且浏览历史记录里边能看到get的请求地址
3.请简述session和cookie的区別.
答:一个存于用户本地,一个存在服务器,一般都是存在用户本地,要不就是存redis,
session在实际项目中用的次数不多
因为有token+redis/cache的存在
session这种浏览器再去访问服务器时,都会带着session的id号去
但是用户关闭浏览器就失效,用户量越高约不建议使用session,除非可以做集群
4.简述Servlet与JSP的关系,
答:最大的区别我认为是
JSP是写少量的java代码,servlet是写很多java代码,比如Plantln("")这样的语句
更像是jsp写java代码,servlet写html代码
之前在网上看到过,JSP文件在容器中会转换成Servlet执行
JSP是对Servlet的一种高级封装,本质还是Servlet
5.JSP内置对象有哪些,各自起到的作用
答:最基础的
Request,请求体,通过HTTP协议传送到服务器的数据(包括头信息、请求方式请求参数等)
Response,响应体,JSP容器处理过的对象传回到客户端
session
exception 在JSP页面中出现没有捕获到的异常,就会生成 exception 对象
page 类似java中的this
pagecontext取得任何范围的参数,通过它可以获取 JSP页面的、session、application 等对象
application(以下这两种只知道如何读)
out
6.简述你所理解的JAVA封装、继承、多态。
答:
封装,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别
继承,子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
多态,同一个行为具有多个不同表现形式或形态的能力,
彩色打印机 dyj = new 打印机(); 前提是彩色打印机必须继承打印机,并且实现他的打印方法
dyj.打印(); // 彩色
黑白打印机 dyj = new 打印机(); 前提是黑白打印机必须继承打印机,并且实现他的打印方法
dyj.打印(); // 黑白
7.写出2个常用的设计模式(伪代码),并简述应用场景。
答:最常用的工厂模式,需要啥类去工厂拿
8.HashMap和HashTable区别。
都是键值对形式存在的
网上说HashMap是不安全的,HashTable是线程安全的
9.HashSet和TreeSet的区别。
两个都是不能重复
HashSet不能保证排列顺序,但是他的排序也是有规律的,他里边的元素可以是null只能有一个null
TreeSet顾名思义,他就是颗二叉树,他是可以保证排序性的,而且可以自定义排序
10.ArrayList和linkedList的区别。
通过名字就能看出是一个链表一个数组
链表要增加元素,那是最快的,数组的话还得扩容,建一个新数组,把原来的放进去
查询修改的话肯定是数组快,因为他有索引,跟数据库索引一个性质
11.==与equals的区别。
==直接判断地址值 String s1 = "String" , s2 = "String" s1 == s2 返回的肯定是true因为s1和s2指向的同一个引用嘛,但是如果s2 = new String(); 这样就不想等了,new了个新的内存地址
equals方法,先==判断,然后判断是否是String的子属性,然后判断两个字符串的长度,
然后循环判断字符
12.简述泛型、反射、注解应用场景及各自解决了哪些问题。
泛型最常用,写接口就得有数据结构,有数据结构就有List和Map,泛型就是起约束作用
反射在工作中也比较常用,动态获取类,若依框架记录日志时就是用的反射获取的Service的方法
注解就更多了,SpringBoot那么多注解
14进程与线程的区别,JAVA中有哪些方式可以创建线程。
进程就是由多个线程组成的
1. 继承Thread类重写run方法 调的话直接new 子类().start(),他自动调run方法去了
很少用,因为线程类已经继承了Thread类,所以不能再继承其他父类
2. 实现Runnable接口重写run方法,调的话直接new Thread(new 子类,"线程名称").start()
3. Callable,我最常用,继承他,重写call()方法,他有返回值的
15.现有一学生表结构(student-id,class-id,name),请写出统计每班有多少学生的SQL语句。
select count(student-id) from 学生表 group by class-id
16.假如你正在开发一个系统的登录程序,请简述你是如何实现记住用户名和密码这个操作的,并如何实现?
cookie是客户端的一种保存机制。取值方式是通过键取值,可以通过Expires属性为其指定过期时间
springsecurity也是用的cookie
集群+session持久化
Token是无状态,集群的时候,算法一致,无论访问哪台服务器,都是一样的
17.在视图层不支持存储cookie,服务端不支持session的场景下如何保持用户登陆状态。
答:客户端收到服务器返回的JWT,可以储存在cookie里面,也可以储存在localStorage



