1/391)Ajax与Json的优缺点2)Ajax同步和异步的区别3)AnonymousInnerClass(匿名内部类)是否可以继承其他类4)Collection和Collections的区别5)cookie和session的区别6)EJB和JavaBean的区别7)Error和Exception的区别8)Final,finally,finanlize的区别9)get、set方式注入有哪几种装配方式10)HashMap和HashTable的区别11)HashMap和LinkedHashMap和TreeMap的区别12)Heap(栈)和Stack(堆)的区别13)hibernate和MyBatis的区别14)JavaScript的内置对象有哪些15)javascript的特点16)Jsp中时间格式化17)JSP中的声明脚本,普通脚本、表达式脚本分别用什么标签表示18)Jsp有哪些内置对象?作用分别是什么19)JVM加载class文件的原理机制20)List和arrayList,Map和HashMap的区别21)Mathround等于22)MINUS函数23)orderby、groupby、having的用法区别24)Overload和Override区别25)select中floor、round26)Servlet和jsp有哪些异同点27)Session的生命周期28)Session都有哪些方法29)Set里的元素是不能重复的,那么用什么方法来区分重复与否呢30)Sleep()和wait()的区别31)Spring工作原理32)Spring有哪几种注入方式33)String,StringBuffer,StringBuilder的区别34)struts1和struts2有什么区别35)struts中获取Session和弹出消息框36)this和super的区别37)Throw与Throws的区别38)wait,join,sleep,yield,notify,notifyall区别39)Xml的常用解析技术?区别是什么40)为什么要用Spring41)主键与唯一索引的区别42)什么情况下调用doGet()和doPost()43)什么是多线程,如何实现多线程44)什么是触发器和存储过程2/3945)使用js打印系统当前时间,并格式化46)值类型和引用类型的区别47)冒泡排序48)写出你熟悉的四种设计模式,并用UML图描述其中一种模式49)动态添加和删除节点50)四种会话跟踪技术51)在main中启动3个线程52)声明脚本中定义的变量和普通脚本定义的变量有什么区别?使用时要注意什么53)实现一个字符串倒序54)常用设计模式及应用场景55)常见的运行时异常,并给出处理的思路56)把Amsed,Jsas,China,Frasasd按照英文字母排序57)抽象类(abstract)和接口(interface)的区别58)数据库删除语句Drop、Delete、Truncate比较59)数据库基本操作60)表链接61)查数据表中第30到40条记录,有字段ID,但是ID并不连续,如何写SQL语句62)用SELECT进行模糊查询时,可以使用什么通配符63)简述Servlet的生命周期64)线性表两种存储结构各自的优缺点有哪些65)线程的几种状态66)线程的实现方式67)获取系统当前时间68)解释一下控制反转和依赖注入69)计算字段累加和的是(sum),统计项目数的是(count(*))70)说一说MVC模式71)说说什么是Servlet72)请用一条SQL语句返回num的最小值,但不许使用统计功能73)调用Run和调用Start的区别74)运行时异常和一般异常的区别75)进程与线程的区别76)&&和&,||和|的区别3/39数据库数据库建表语句:createtable表名(字段1字段类型,字段2字段类型)定义默认值:createtable表名(字段1字段类型default(默认值))定义主键:在所有字段定义完成后!primarykey(字段名)复合主键:primarykey(字段1,字段2)(用以解决一张表中没有唯一主键字段的问题)定义外键:定义在源表中,在所有字段定义完成后!foreignkey需要定义为外键的字段名称references目标表名(被关联的字段名称)添加字段:altertable添加的目标表名add字段名字段类型删除字段:altertable要删除的目标表名drop要删除的字段名删除数据表:droptable要删除的表名向表中插入数据:insertinto目标表名(字段1,字段2)values(数据1,数据2)注:字段和数据是一一对应的,个数也要相同修改表中数据:update表名set字段1=“数据1”,字段2=“数据2”删除表中的数据:delete表名sql语句中delete和droptable的区别:delete只会删除表中的数据,而对表的结构没有影响,droptable则会连表的结构一起删除查询:select要查询的字段名from表名数据汇总:selectmax(字段名)from表名max:最大值min:最小值avg:平均值sum:合计值count(*):统计数据条数数据排序:select*from表名orderby(字段名)ascasc:从小到大排序desc:从大到小排序模糊查询:select*from表名where字段名like_a_表示查询第一个和第三个是任意字符第二个是a的数据“_”单个出现的字符“%”匹配任意次数出现的字符(零个或多个)检测为空/不为空字段:select*from表名where字段名isnull/isnotnull多值检测:select*from表名where字段1=“数据1”or字段2=“数据2”或者select*表名where字段1in(数据1,数据2,数据3)范围值检测:select*from表名where字段1数据1and字段1数据2(表示检索数据1和数据2之间的值)数据分组:select*from表名wheregroupby字段名Having与where功能类似,只是having后边可以使用聚合函数新建索引:createindex索引名on表名(字段1,字段2)删除索引:dropindex索引名on表名4/39非空约束:createtable表名(字段1字段类型notnull,字段2字段类型notnull,)唯一约束:createtable表名(字段1字段类型unique)复合唯一约束:constraint约束名unique(字段1,字段2)注:表示字段1在表中可以重复,字段2在表中也可以重复,但是两者不能同时重复在已存在的表中添加唯一约束:altertable表名addconstraint约束名unique(字段1,字段2)删除唯一约束:altertable表名dropconstraint约束名在MySql中删除:altertable表名dropindex约束名Check约束:createtable表名字段1字段类型check(条件)注:如果希望在约束条件中加入其他列则必须在createtable语句末尾使用constrain关键字语法为:constraint约束名check(条件)删除使用drop关键字表链接内链接:select*from表名innerjoin被链接的表on连接条件(例:id=a.id)where查询条件外链接:左向外连接的结果集包括LEFTOUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。右向外连接是左向外连接的反向连接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。select*from表名innerjoin表1leftjoin表2on表1.id=表2.id(左外连接)select*from表名innerjoin表1rightjoin表2on表1.id=表2.id(右外连接)获取系统当前时间:selectnow()/selectsysdate()/current_timestamp格式:1012-12-1212:12:21selectcurdate()/current_date格式:1012-12-12selectcurtime()/current_time格式:12:12:21子查询:当一个查询是另一个查询的条件时,称之为子查询,子查询最常用于SELECT-SQL命令的WHERE子句中子查询在insertinto语句中的使用:insertinto表1selectfrom表2在主键增长策略:mysql:incrementoracle:sequencesqlserver:identityMySql分页语句:SELECT*FROM表名LIMIT((pageindex-1)*pagesize),pagesizeSQlServer分页语句:Selecttop(size)*from表名whereidnotin(selecttop((index-1)*size)idfrom表名)Oracle分页语句:select*from(selectt.*,rownumfrom(select*fromtable)t)whererownum(pageindex-1)*pagesizeandrownum=pageindex*pagesize5/39Java基础String,StringBuffer与StringBuilder的区别??String是不可变的对象,每次对string进行改变的时候其实是生成了一个新的string对象,然后将指针指向新的string对象StringBuffer每次操作都是在对stringBuffer对象本身进行操作,而不是生成新的对象,StringBuffer对象中的Append方法始终将这些字符添加到缓冲区的末端,而inset方法则在制定的点添加字段,可将字符串缓冲区安全的运用于多个线程StringBuilder是StringBuffer类的一个简易替换,用在字符串缓冲区被单个字符线程使用时,比StringBuffer速度快,两者方法基本相同Final,finally,finanlize()的区别??Final用于声明属性,方法和类!分别表示属性值不可修改,方法不可覆盖,类不可继承Finally是异常处理语句结构的一部分,表示总是执行Finalize在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集资源时的其他资源回收,例如关闭文件等Overload和Override的区别?Override(重写)是父类与子类之间多态性的一种体现,如果在子类中定义的某个方法与其父类有相同的名称和参数,称之为重写Overload(重载)是一个类中多态性的体现,一个类中方法名相同,参数的类型或参数的个数不同,称之为重载(与返回值无关)抽象类(abstract)和接口(interface)的区别??Abstract可以修饰抽象方法,而一个类中只要有一个抽象方法,这个类就一定是一个抽象类,抽象类中可以有非抽象方法Interface用来定义接口,接口中只能定义抽象方法进程与线程的区别??进程是一个独立的运行环境,可以看做是一个程序或应用,而线程是在进程中执行的一个任务,可以称为轻量级的进程,可以共享进程中的资源List和arrayList,Map和HashMap的区别??List是接口,List特性就是有序,会确保以一定的顺序保存元素.ArrayList是它的实现类,是一个用数组实现的List.Map是接口,Map特性就是根据一个对象查找对象.HashMap是它的实现类,HashMap用hash表实现的Map,就是利用对象的hashcode(hashcode()是Object的方法)进行快速散列查找HashMap和HashTable的区别??6/391.HashMap不是线程安全的HashTable是线程安全的一个Co