凯捷面试(1):JavaSE、MySQL数据库、前端

目录

JavaSE:

实例化对象:

创建数组的三种方式:

封装、继承、多态

 队列和栈的区别:

链表:

单例模式:

单例模式的作用:

常见的的异常类:

死锁:

生产者与消费者模式:

反射:

请求转发与重定向:

 TCP和UDP的区别: 

数据库:

MySQL增删改查关键字:

删除表的关键字:

模糊查询关键字:LIKE

条件查询关键字:WHERE

关联查询关键字:LEFT JOIN

子查询结果的三种情况

数据库三范式:

innodb引擎:

MyIASM引擎:

数据库隔离:

前端:

表单标签:

get和post的区别:

 盒子模型

JS创建对象的四种方式

JS的本地存储:

JS的数据类型:

 script:

 Vue:


实例化对象:

  1. new关键字
  2. clone()方法
  3. 通过反射机制
  4. 序列化反序列化
  5. 工厂方法

创建数组的三种方式:

第一种方式(创建对象的时给定长度)

    int arr [ ]  = new int [5] ;   

 属于动态创建,声明并创建内存空间,等待赋值。

 第二种方式 (创建对象时直接赋值)

       int  a[ ] = new int [ ] { 1,2,3,4,5 };  

 也是动态创建,声明并创建内存空间,并赋值。

第三种方式(直接添加数据)

        int [ ] x = {6,7,8,9,10};   

 属于静态创建,声明并直接赋值,创建内存空间。

封装、继承、多态

  • 封装:把功能封装在一个方法里,对属性的操作都是通过方法来实现的,不能直接操作对象的属性
  • 继承:创建一个类时,可以通过继承,快速的获得该类中已经定义的内容,避免了重复定义
  • 多态:
  1. 继承关系
  2. 方法重写
  3. 父类引用指向子类实例

 队列和栈的区别:

队列和栈是两种不同的数据结构。它们有以下区别:

(1)操作的名称不同。

队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。

(2)操作的限定不同。

队列是在队尾入队,队头出队,即两边都可操作。而栈的进栈和出栈都是在栈顶进行的,无法对栈底直接进行操作。

链表:

  • 单向链表:链表和数组一样,都可以用于存储一系列的元素。链表的每个结点(最后一个结点除外)由一个存储元素本身的结点的数据和一个指向下一个元素的引用(指针)组成。
  • 双向链表:既可以从头遍历到尾,又可以从尾遍历到头。也就是说链表连接的过程是双向的,它的实现原理是:一个节点既有向前连接的引用(prev),也有一个向后连接的引用(next)。

优缺点:

  1. 任意位置的插入和删除数据的效率较高
  2. 查找效率低,每次查找都需要从头结点开始查找 

单例模式:

指在内存中只会创建且反创建一次对象的设计模式

  • 懒汉式:在真正需要使用对象时才会去创建,线程不安全
  • 饿汉式:在类加载时已经创建好该单例对象,线程安全

单例模式的作用:

保证整个程序在一次运行的过程中,被单例模式声明的类的对象要有且只有一个

常见的的异常类:

  1. 空指针异常
  2. 数据类型转换异常
  3. 数组下标异常
  4. 文件未找到异常
  5. 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 (删除表中的数据——删除表中的行)

模糊查询关键字:LIKE

条件查询关键字:WHERE

关联查询关键字:LEFT JOIN

子查询结果的三种情况

  1. 子查询的结果是单行单列
  2. 子查询的结果是多行单列
  3. 子查询的结果是多行多列

数据库三范式:

  1. 数据库中字段需要具有原子性,不能再分
  2. 所有非主键字段必须直接依赖主键,且不存在传递依赖
  3. 必须满足第二范式

innodb引擎:

  • 提供了数据库acid事务,并且提供了行级锁和外键约束
  • 处理大数据容量的数据系统

MyIASM引擎:

不提供事务,不提供行级锁和外键约束,表锁

数据库隔离:

读未提及,读已提及,可重复读,可串行化

表单标签:

  1. action="url":请求地址,指定form表单向何处发送数据。
  2. name="login":作用是给表单起名,为了便于我们操作。
  3. enctype ="string":规定在发送表单数据之前,如何对表单数据进行编码。通常在使用文件上传时,我们会enctype="multipart/form-data",以二进制传输。
  4. 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:

将数据渲染到页面上

你可能感兴趣的:(面试,面试,java,mysql,前端)