目录
JavaSE:
实例化对象:
创建数组的三种方式:
封装、继承、多态
队列和栈的区别:
链表:
单例模式:
单例模式的作用:
常见的的异常类:
死锁:
生产者与消费者模式:
反射:
请求转发与重定向:
TCP和UDP的区别:
MySQL数据库:
MySQL增删改查关键字:
删除表的关键字:
条件查询关键字:WHERE
关联查询关键字:LEFT JOIN
子查询结果的三种情况
数据库三范式:
innodb引擎:
MyIASM引擎:
数据库隔离:
前端:
表单标签:
get和post的区别:
盒子模型
JS创建对象的四种方式
JS的本地存储:
JS的数据类型:
script:
Vue:
实例化对象:
- new关键字
- clone()方法
- 通过反射机制
- 序列化反序列化
- 工厂方法
创建数组的三种方式:
第一种方式(创建对象的时给定长度)
int arr [ ] = new int [5] ;
属于动态创建,声明并创建内存空间,等待赋值。
第二种方式 (创建对象时直接赋值)
int a[ ] = new int [ ] { 1,2,3,4,5 };
也是动态创建,声明并创建内存空间,并赋值。
第三种方式(直接添加数据)
int [ ] x = {6,7,8,9,10};
属于静态创建,声明并直接赋值,创建内存空间。
封装、继承、多态
- 封装:把功能封装在一个方法里,对属性的操作都是通过方法来实现的,不能直接操作对象的属性
- 继承:创建一个类时,可以通过继承,快速的获得该类中已经定义的内容,避免了重复定义
- 多态:
- 继承关系
- 方法重写
- 父类引用指向子类实例
队列和栈的区别:
队列和栈是两种不同的数据结构。它们有以下区别:
(1)操作的名称不同。
队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。
(2)操作的限定不同。
队列是在队尾入队,队头出队,即两边都可操作。而栈的进栈和出栈都是在栈顶进行的,无法对栈底直接进行操作。
链表:
- 单向链表:链表和数组一样,都可以用于存储一系列的元素。链表的每个结点(最后一个结点除外)由一个存储元素本身的结点的数据和一个指向下一个元素的引用(指针)组成。
- 双向链表:既可以从头遍历到尾,又可以从尾遍历到头。也就是说链表连接的过程是双向的,它的实现原理是:一个节点既有向前连接的引用(prev),也有一个向后连接的引用(next)。
优缺点:
- 任意位置的插入和删除数据的效率较高
- 查找效率低,每次查找都需要从头结点开始查找
单例模式:
指在内存中只会创建且反创建一次对象的设计模式
- 懒汉式:在真正需要使用对象时才会去创建,线程不安全
- 饿汉式:在类加载时已经创建好该单例对象,线程安全
单例模式的作用:
保证整个程序在一次运行的过程中,被单例模式声明的类的对象要有且只有一个
常见的的异常类:
- 空指针异常
- 数据类型转换异常
- 数组下标异常
- 文件未找到异常
- IO异常
死锁:
两个线程由于互相持有对方需要的锁,而发生的阻塞现象
生产者与消费者模式:
其实生产者与消费者模式就是一个多线程并发协作的模式,在这个模式中呢,一部分线程被用于去生产数据,另一部分线程去处理数据,于是便有了形象的生产者与消费者了。 而为了更好的优化生产者与消费者的关系,便设立一个缓冲区,也就相当于一个数据仓库,当生产者生产数据时锁住仓库,不让消费者访问,当消费者消费时锁住仓库,不让生产者访问仓库。 举一个例子,有一个生产者生产包子,他将生产好的包子放到筐中,放完包子由消费者从筐中拿出包子使用。
反射:
动态获取类的信息以及动态调用对象的方法
请求转发与重定向:
- 请求转发:服务器跳转,只产生一次请求,转发url在地址栏中可见,可以共享请求对象
- 重定向:浏览器跳转,产生两次请求,转发url在地址栏不可见,不可以共享request请求对象
TCP和UDP的区别:
TCP是面向连接的; | UDP是无连接的。 |
TCP是可靠的; | UDP是不可靠的. |
TCP只支持点对点通信; | UDP支持一对一、一对多、多对一、多对多的通信模式。 |
TCP是面向字节流的; | UDP是面向报文的。 |
TCP有拥塞控制机制; | UDP没有拥塞控制,适合媒体通信。 |
TCP首部开销(20个字节); | UDP的首部开销(8个字节)要大. |
MySQL增删改查关键字:
- 增:INSERT
- 删:DELETE
- 改:UPDATE
- 查:SELECT
删除表的关键字:
- drop (删除表)
- truncate (清空表中的数据)
- delete (删除表中的数据——删除表中的行)
条件查询关键字:WHERE
关联查询关键字:LEFT JOIN
子查询结果的三种情况
- 子查询的结果是单行单列
- 子查询的结果是多行单列
- 子查询的结果是多行多列
数据库三范式:
- 数据库中字段需要具有原子性,不能再分
- 所有非主键字段必须直接依赖主键,且不存在传递依赖
- 必须满足第二范式
innodb引擎:
- 提供了数据库acid事务,并且提供了行级锁和外键约束
- 处理大数据容量的数据系统
MyIASM引擎:
不提供事务,不提供行级锁和外键约束,表锁
数据库隔离:
读未提及,读已提及,可重复读,可串行化
表单标签:
- action="url":请求地址,指定form表单向何处发送数据。
- name="login":作用是给表单起名,为了便于我们操作。
- enctype ="string":规定在发送表单数据之前,如何对表单数据进行编码。通常在使用文件上传时,我们会enctype="multipart/form-data",以二进制传输。
- method ="get/post":提交数据的方式,取值:get(默认)、post
get和post的区别:
- get:以查询字符串形式提交,在地址栏中能够看到,长度有限制,不安全
- post:以表单数据组形式提交,在地址栏中看不到,长度无限制,安全
盒子模型
CSS 盒模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边距,边框,填充,和实际内容。 盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
- Margin(外边距) - 清除边框区域。Margin 没有背景颜色,它是完全透明
- Border(边框) - 边框周围的填充和内容。边框是受到盒子的背景颜色影响
- Padding(内边距) - 清除内容周围的区域。会受到框中填充的背景颜色影响
- Content(内容) - 盒子的内容,显示文本和图像
JS创建对象的四种方式
- 1.通过字面量的方式去创建对象
- 2.使用new字符创建对象
- 3.自定构造函数创建对象
- 4.工厂模式创建对象
JS的本地存储:
- cookie:把信息存储到客户端的浏览器中(但是项目服务器端也是可以获取cookie的)
- localStorage:永久存储到客户端本地
- sessionStorage:信息的会话存储,会话窗口存在信息也存在,会话窗口关闭信息就消失
JS的数据类型:
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。
script:
标签用于客户端脚本
Vue:
将数据渲染到页面上