1.java基本数据类型
答: byte、short、int、long、float、double、char、boolean
2.java数组声明方式
答: 第一种方式 int [] a1 =new int [] {1,2,3...}; //直接声明并赋值,直接声明赋值数组是不需要长度的
第二种方式 int [] a2 ={1,2,3...}; //直接声明并赋值,直接声明赋值数组是不需要长度的
第三种方式 int [] a3 =new int [3]; //必须声明数组长度
3.while和do while循环的区别
答: while 只要(条件表达式)成立, 内容就会一直循环 (先执行)
do while (条件表达式)不成立,也会执行一次 (先执行,后判断)
4.面向对象三大特性
答: 封装、 继承、 多态
5.接口和抽象类的区别
答: 相同点 : 都不能被实例化
接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。
不同点: 1.接口只有定义,不能有方法的实现 , 抽象类可以有定义和实现,方法可在抽象类中实现
2.实现接口的关键字为implements,继承抽象类的关键字为 extends。一个类可以实现多个接口,但一个类只能继承一个 抽象类。所以,使用接口可以间接地实现多重继承。
3.抽象类要被子类继承
,接口要被类实现
4.接口只能做方法声明,抽象类既可以方法声明,也可以方法实现。
5.接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量
6.java变量、常量命名规范
答: 变量: 1.变量即可以变化的量
2.每个变量都必须声明其类型
3.程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
常量: 1.初始化后不能再改变值
2.可以理解成一种特殊的变量,它的值被设定后,在程序运行中不允许被改变。
3.一般使用大写命名
命名规范: 1. 类成员变量 : 首字母小写和驼峰命名法 后一个单词首字母大写
2. 局部变量: 首字母小写和驼峰命名法
3. 常量: 全员大写+下划线
4. 类名: 首字母大写+驼峰命名法
5. 方法名: 首字母小写+驼峰命名法
7.ArrayList和Linklist区别
答: ArrayList: 1. ArrayList是基于动态数组的数据结构
2. ArrayList底层数据结构是数组,查询慢,增删改快,可以存储重复元素,线程不安全,效率高
3. 在ArrayList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动
LinkList: 1. LinkList是底层数据结构是链表
2.查询慢,增删快,线程不安全,效率高,可以存储重复元素,线程不安全,效率高
3.而在LinkedList的中间插入或删除一个元素的开销是固定的。
8.set和list区别
-
set集合中的数据没有顺序,且如果add两个一样的对象或基本类型的数据,set集合里也是只有一个,即set集合中的数据都是独一无二的;不能使用加强的for循环;list中的数据是有顺序的,可以加入多个一样的对象和基本类型的数据,可使用加强的for循环
-
Set(集):集合中的对象不按特定方式排序,并且没有重复对象。它的有些实现类能对集合中的对象按特定方式排序。
List(列表):集合中的对象按索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象
9.String和Integer类是否允许被继承
-
不允许,因为两个都是被final修饰的类,所以不可以被继承
10.String数据类型==和equals区别
-
==比较的是引用地址是否相同
-
equals比较的是值是否相等
11.return break区别
-
break是终止循环的,而return在表达式为空(void)时,不向被调 函数返回任何值,终止这个函数。 另一个含义是表示从被调函数返回到主调函数继续执 行,返回时可附带一个返回值,由return后面的参数指定
12.css中选择器有哪些
-
基础选择器
-
标签选择器
-
类选择器
-
id选择器
-
通配符选择器
-
-
复合选择器
-
后代选择器
-
子选择器
-
并集选择器
-
伪类选择器
-
13.js获取DOM元素方式有几种、分别是什么
-
根据id名获取元素:getElementById;
-
根据标签名获取元素:getElementsByTagName,返回一个数组;
-
根据类名获取元素:getElementsByClassName,返回一个数组;
-
根据name属性值获取元素:getElementsByName,返回一个数组
-
根据选择器获取元素
-
querySelector:获取一个元素,推荐使用 用法类似写css
-
querySelectorAll:返回一个元素数组
-
14.jquery中ajax语法
$.ajax({
url:链接地址,字符串表示,
data:需发送到服务器的数据,GET与POST都可以,格式为{A: ‘…’, B: ‘…’}
type:“POST” 或 “GET”,请求类型
timeout:请求超时时间,单位为毫秒,数值表示
cache:是否缓存请求结果,bool表示
contentType:内容类型,默认为"application/x-www-form-urlencoded"
dataType:服务器响应的数据类型,字符串表示;当填写为json时,回调函数中无需再对数据反序列化为json
success:请求成功后,服务器回调的函数
error:请求失败后,服务器回调的函数
complete:请求完成后调用的函数,无论请求是成功还是失败,都会调用该函数;如果设置了success与error函数,则该函数在它们之后被调用
async:是否异步处理,bool表示,默认为true;设置该值为false后,JS不会向下执行,而是原地等待服务器返回数据,并完成相应的回调函数后,再向下执行
username:访问认证请求中携带的用户名,字符串表示
password:返回认证请求中携带的密码,字符串表示
15.mysql中常用聚合函数
-
count(col): 表示求指定列的总行数
-
max(col): 表示求指定列的最大值
-
min(col): 表示求指定列的最小值
-
sum(col): 表示求指定列的和
-
avg(col): 表示求指定列的平均值
16.mysql中sql优化
-
查询时尽量避免使用 select *。
这样可以减少数据扫描以及网络开销(很多查询不需要查询所有列)
要尽量使用覆盖索引(索引中已经包含你需要的数据)、减少回表查询
-
尽量避免在where子句中使用 or 作为查询条件
or可能会使索引失效,进而执行全表扫描
-
where条件中尽量不要出现null值的比较条件中包含和null值的比较时可能会不走索引,当然这也跟SQL优化器有关,优化器有时会因为数据量的多少,对是否走索引进行评估,假如它认为不走索引效率可能会更高,可能就不走索引了
-
避免在查询中存在隐式转换
-
避免在where子句中使用 != 或 <> 操作符
-
使用like查询条件时应尽量避免前缀使用‘%‘
-
执行查询时尽量采用最左匹配原则
-
避免在查询条件中使用一些内置的SQL函数
-
假如in表达式后面的数据太多(一般不建议超过200),尽量避免使用in作为查询条件
-
当有多个查询条件、分组条件、排序条件时,尽量使用联合索引
-
表连接时优先使用内连接(inner join),使用小表驱动大表
17.mysql左连接、内连接、右链接区别
-
内连接,显示两个表中有联系的所有数据;
-
左链接,以左表为参照,显示所有数据,右表中没有则以null显示
-
右链接,以右表为参照显示数据,,左表中没有则以null显示
18.springboot和ssm相比较,优点是什么
-
springboot底层封装大量常用的jar版本信息,减少jar冲突
-
约定大于配置,减少大量的繁琐配置文件
-
内置Tomcat服务器
19.springboot常用注解
-
@SpringBootApplication:启动类上使用
-
@ImportAutoConfiguration:导入配置类,一般做测试的时候使用
-
@PropertySource:导入properties文件
-
@Lazy:使bean懒加载,取消bean预初始化
-
@Scope:指定bean的作用域,默认singleton,其它包括prototype、request、session、globalSession
-
@Controller
-
@Service
20.springMVC执行流程
1:客户端请求提交到DispatcherServlet
2:DispatcherServlet接收到请求后、将提交的信息交给处理器映射器(HandlerMapping)
3:HandlerMapping根据用户的url请求、匹配该url的Handler(Controller),并返回一个执行链
4:DispatcherServlet调用HandlerAdapter(处理器适配器)
5:HandlerAdapter经过适配调用具体的处理器(Controller)扫描
6:Controller扫描完成后返回一个ModelAndView
7:HandlerAdapter将Controller扫描结果(ModelAndView)返回给DispatcherServlet
8:DispatcherServlet将ModelAndView请求试图解析器(ViewReslover)进行解析
9:ViewReslover解析后返回具体的View
10:DispatcherServlet将view进行渲染试图(即将模型数据填充到视图中)
11:DispatcherServlet将页面响应给个用户