1. java的三大特性是什么?
封装 继承 多态 封装就是信息隐藏不可以直接访问隐藏内部细节,他给提供共有的getset方法访问。
继承就是 通俗来说就是a类继承b类 a类就是 b的子类 b就是a的派生类,子类不可以继承父类的私有方法。
多态 就是 同一个方法实现不同的形态,代码复用。
2 什么是j2ee?
J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
3 get和post的区别?
Get是从服务器上获取的,post是从客户端获取
Get的传送量小,不能大于2kb,post的传送量大默认是不受限制
Get的安全性低,post的安全性高,但是get的执行效率高
4 list,arraylist的区别?
List是一个接口,而ListArray是一个类。
ArrayList继承并实现了List。
5 list,set,collection
List 元素有先后次序的集合,元素有index位置, 元素可以重复,
Set 元素无续, 不能重复添加, 是数学意义上的集合, 继承与
Collection 接口, 实现类: HashSet(是一个只有Key的HashMap)
Collection是个集合超级接口,其中List,set都是Collection的子接口
6 hashmap和hashtable的区别?
HashMap不是线程安全的
HashTable是线程安全的一个Collection
,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
7 重载和重写有什么区别?
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,
将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了,而且如果子类的方法名和参数类型和个数都和父类相同,那么子类的返回值类型必须和父类的相同;如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载。Overloaded的方法
8 什么是分布式开发?什么是duobo?
分布式开发,是讲隔离开发配合或者透明开发配合的一个开发模式,本质是工作模式。
Dubbo是[1] 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC实现服务的输出和输入功能,可以和 [2] Spring框架无缝集成。
9 spring mvc的执行流程是?
用户请求首先发送到前端控制器DispatcherServlet,DispatcherServlet根据请求的信息来决定使用哪个页面控制器Controller(也就是我们通常编写的Controller)来处理该请求。找到控制器之后,DispatcherServlet将请求委托给控制器去处理。接下来页面控制器开始处理用户请求,页面控制器会根据请求信息进行处理,调用业务层等等,处理完成之后,会把结果封装成一个ModelAndView返回给DispatcherServlet。前端控制器DispatcherServlet接到页面控制器的返回结果后,根据返回的视图名选择相应的试图模板,并根据返回的数据进行渲染。最后前端控制器DispatcherServlet将结果返回给用户。
10 什么是多线程,动态代理,反射?
动态代理就是他不是实际的服务,他是一种代理类或委托类项目运行中实现的一种特定的服务,
反射机制是java开发语言的特征之一它允许运行中的 Java程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。
多线程是指一个应用程序同时执行多个任务,一般来说一个任务就是一个线程,而一个应用程序有一个以上的线程我们称之为多线程。进程就是一个正在执行的任务,比如说qq是一个正在执行的任务那么qq窗口就是一个线程。
11数据库的三大范式?
第一范式:确保每列的原子性.
第二范式:在第一范式的基础上更进一层,目标是确保表中的每列都和主键相关.
三范式:在第二范式的基础上更进一层,目标是确保每列都和主键列直接相关,而不是间接相关.
12 servlet的生命周期?
(1)加载和实例化 2)初始化 (3)请求处理 (4)服务终止
13 多线程的生命周期?
开始 就绪运行 死亡阻塞
http的请求流程是?
域名解析 -->发起TCP的3次握手 -->建立TCP连接后发起http请求 -->服务器响应http请求,浏览器得到html代码 -->浏览器解析html 代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户
使用java代码写一个单利模式
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static synchronized SingletongetInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
linux的常用的命令?
ls 显示文件
rm 删除 cp 路径/文件名目标路径 ==》目标路径必须存在
mkdir 创建一个文件夹
mv dir dir1 移动目录
date 当前系统时间
什么是aop ioc 他在spring中怎样应用?
ioc就是控制翻转或是依赖注入。通俗的讲就是如果在什么地方需要一个对象,你自己不用去通过new生成你需要的对象,而是通过spring的bean工厂为你长生这样一个对象。
aop就是面向切面的编程。比如说你每做一次对数据库操作,都要生成一句日志。如果,你对数据库的操作有很多类,那你每一类中都要写关于日志的方法。但是如果你用aop,那么你可以写一个方法,在这个方法中有关于数据库操作的方法,每一次调用这个方法的时候,就加上生成日志的操作
session和从cookie有什么区别以及访问量比较大的时候你怎样解决?
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
cookie 和session的联系:
session是通过cookie来工作的
session和cookie之间是通过$_COOKIE['PHPSESSID']来联系的,通过$_COOKIE['PHPSESSID']可以知道session的id,从而获取到其他的信息。
在购物网站中通常将用户加入购物车的商品联通session_id记录到数据库中,当用户再次访问是,通过sessionid就可以查找到用户上次加入购物车的商品。因为sessionid是唯一的,记录到数据库中就可以根据这个查找了
什么是值传递和引用传递?
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数
collection和collections的区别是什么?
Collection是集合类的上级接口,继承与他的接口主要有Set和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
list set collectionmap 有什么区别?
Collection 是一个较高的抽象,List, Set和 Map都是Collection的子接口
List的特征:允许重复元素,存储顺序与插入元素顺序一致
Set 特征:不允许重复元素(和数学中的集合一样),不保证元素存储顺序
Map: 存储元素是一系列 Key => Value (键=>值)比如 {"a"=>2,"b"=>5, "c"=3}
sql优化的方法?
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where及 order by 涉及的列上建立索引。
2.应尽量避免在 where子句中对字段进行 null值判断,!=或<>操作符, or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描
3.in 和 not in也要慎用,否则会导致全表扫描
链表查询a表有10条数据,b表有5条数据如果是left join 查询后是几条
10条以a表为主,不符合条件的查询出来均为空。
Spring中bean节点的生命周期是什么?
singleton, prototype, request, session, global session
什么是spring boot?
从本质上来说,springboot是一个专注于框架的框架。Spring Boot就是对各种框架的整合,让他们集成在一起更加简单,简化了我们在集成过程中的模板化配置,它做了那些没有它你自己也会去做的Spring Bean配置。你不用再写这些样板配置了,可以专注于应用程序的逻辑,这些才是应用程序独一无二的东西。