java基础一
1.1 java基础
1.1.1 java基本数据类型
byte,int,short,char,double,float,long,boolean
1.1.2 jdk和jre的区别
jdk:java开发工具包,提供了java的开发环境和运行环境
jre:java运行环境,为java的运行提供了环境
jdk包含了jre,如果要编译java程序,只需要安装jre;如果要编写java程序,就需要安装jdk
1.1.3 string不是基本数据类型,不可以被继承,因为它被final修饰,被final修饰的类不可被继承
1.1.4 final,finally,finalize
final:修饰符,修饰的类不能被继承;修饰方法不能被重写;修饰变量是常量,只能赋值一次
finally:是try{}catch{}finally{}的最后一部分,不论任何情况都会执行,finally部分可以忽略,如果存在,一定会执行
finalize:是object类的一个方法,在垃圾收集器执行时会调用被回收对象的此方法
1.1.5 try-catch-finally中,catch中有return,finally还会执行?
一定会执行,在catch中return会等finally执行完后执行
1.1.6 string,stringbuffer,stringbuilder的区别
string:长度不可变字符串
stringbuffer,stringbuilder长度可变的字符串,stringbuilder线程不安全,效率高,stringbuffer线程安全,效率低
1.1.7 ==和equals()区别
==:基本数据类型比较的是值,对象的话是地址值
equals():object的方法,默认和==一样,比较的是地址值,重写后比较的是值
1.1.8 两个对象的hash值一致,则equals一定为true
不对,hash()是计算属性的hashcode值,也可能属性不一样,值相同,发生hash碰撞
1.1.9 switch
默认支持四种数据类型:byte,short,int,char
jdk1.5后支持枚举,jdk1.7后支持string
1.1.10 接口可以继承接口,抽象类可以实现接口,继承具体类,抽象类中可以有静态的main方法
1.1.11 like模糊查询什么情况下走索引
后通配,走索引;前通配,走全表
like %keyword 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。
like keyword% 索引有效。
like %keyword% 索引失效,也无法使用反向索引。
where条件用in或or 不会走索引
2. session和cookie的区别
session存在服务器端,cookie存在客户端,session的安全性比cookie高,所以重要信息都存在session中,次要信息存在cookie中;cookie分为两类,会话cookie和持久化cookie,会话cookie和浏览器额声明周期是一致的,持久化cookie是存放在客户端持久化硬盘中的设置cookie的保存时间,当浏览器关闭,session不会丢失
session什么情况下会丢失?
- 服务器关闭,session过期,调用invalidate方法
- 要session的某条数据消失:session.removeAttribute()
session什么情况下会重建?
- 通过调用getsession()创建
- 访问HTML是不会创建session,但是访问index.jsp会创建(jsp是特殊的Servlet,Servlet中有getsession()方法)
3. GET和POST的区别
- GET从服务器获取数据,POST向服务器传送数据
- GET的数据量小,不能大于2kB,POST传输量大,默认不受限制
- POST比GET安全性高
- 文件传输时,只能用POST
4. 排序算法
4.1冒泡排序
4.2二分排序
4.3快速排序
快速排序就是给基准数据找正确索引位置的过程