首页 > 代码库 > java的一些基础知识
java的一些基础知识
一.Java基础
1.抽象类和interface有什么区别?
答:抽象类:单继承,可以有非抽象方法,也可以没有抽象方法,有普通方法,有构造方法
接口:多继承,只有抽象方法、没有构造函数,成员变量必须是static final类型的
2.request与session的区别?
Session在整个会话期间有效,而request一次请求的全过程中有效
3.String 与StringBuffer的区别?
String 一旦创建就不可以改变而StringBuffer创建之后还可以改变
4.尽量多的列举常用的Map家族与List家族的容器类,多线程操作HashMap是否线程安全?
答:Map:HashMap、HashTable、currenthashMap、property
List: LinkedList、arrayList,、Vector,、stack
HashMap的工作原理:
调用:HashMap通过put()方法的键中的hashcode()确定hashcode值,找到相应的bucket,把键值对存放在linkedList上,
通过get()方法,获得值:调用键中的hashcode()方法找到相应的bucket,然后调用equels()方法获得值。
注意:1.hashMap解决hash冲突用的是链表法,
2.hashMap是线程不安全的,并且建和值都可以为null值,通过HashMap的get()方法获得值为null不能判断是键不存在或者之不存在
3.hashMap默认的装填因子为0.75当达到是自动扩容,当然可能会发生多线程之间的竞争的问题
4.HashMap中的键一般选择不可变得类型,Integer或者String就可以作为比较好的键,因为它们是finall类型的并且重写了hashcode()和equels()方法
5.for循环中break与continue的区别
Break:接受循环
Continue:结束当前循环,接着执行下次循环
6.程序运行是会发生一些异常,请解释下面几个异常的发生原因
NullPointerException;尝试对空对象操作时,发生
SQLException;对数据库操作失败时,发生
NumberFormatException;转换成为数字或者浮点型时有非法的字符将发生此异常
ArrayIndexOutOfBounds;试图访问超过数组区域中的数据时,发生错误
ClassCastException;强制类型转换的时候产生的异常
OutOfMemoryError;内存溢出时
7.try{
String s=null;
s.substring(0);
return 1;
}
Catch(Exception e){return 2}finally{
System.out.println(“test”);
}
请问上面的代码片断会不会打印test?为什么?最后的返回结果是1还是2?为什么?会,因为finally无论发生不发生异常都会执行
8.int i=1; int j=i++;System.out.print(i+”,”+j);结果是:原因:
2,1(++i和i++的区别)
9.public void aaa(){
StringBuffer x=new StringBuffer(“a”);
StringBuffer y=new StringBuffer(“b”);
Bbb.(x,y);
System.out.println(x+”,”+y);
}
public void Bbb(StringBuffer x,StringBuffer y){
x.append(y);
y=x;
}
输出调用aaa方法的打印结果:原因;ab,b
答案在:(博客)代码中
10.public class Test(){
public static Test test=new Test();
public static int a;
public static int b=0;
public Test(){
a++;
b++;
}
}
public void printAB(){
System.out.println(a+”,”+b);
}
public static void main(String[] args){
new Test().printAB();
}
请问执行main函数后的打印结果:原因:1,1
答案在:(博客)代码中
二.JS题目
1.解释下面五行js分别代表什么意思?
var xxx=document.getElementById(“xxx”).value;
var arry=document.getElementByName(“xxxArry”);
document.forms(“xxxForm”).submit();
window.open(“xxx.jsp”);
if(yyy.indexOf(‘extend’)!=-1);
2.简单描述一下AJAX的原理及你了解的ajax框架,并描述一下你曾经使用过ajax实现过什么功能?
Ajax的原理是通过xmlhttprequest对象向后台处理请求,用js处理后台处理请求返回
Xmlhttprequest是ajax的核心,其中有三个属性:
onreadystatechange是每次状态改变时触发的函数,
onreadystate是xmlhttprequest工作的状态描述,0:未初始化(对象创建为初始化),1:初始化(初始化但是没有调用send方法(尚未调用open方法)),2:发送数据(调用send()但是当前状态和http未知,)3:数据发送中(已发送部分数据,响应以及http头不全面)4:数据处理完成(数据传输完成,可以通过responseText或者responseXml接受数据)
State:后台返回数据状态:200:数据已经就绪,404:没有数据
两个方法:open()和send()方法:三个参数:1,传送的方法:(get或者post)2.url地址和传输的数据,3.是否异步传输:true:异步传输,false:同步传输
使用ajax的优点:异步传输,局部刷新
使用ajax的缺点:不能回退,产生安全问题
Ajax常用的框架:ajax.dll ajaxpro.all margicajax.dll
三.数据库\linux题目
1.描述下面几个sql关键字/函数的作用;
Order by; 查询出的数据进行排序有asc和desc两种
distinct;先出重复行
group by;进行分组
union;集合查询--并
count(*);函数--统计数量
decode()--相当于if then if then else只有oralce数据库中有
语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。判断value值,如果if1,进行then1操作,依次类型,比如加工资的问题总要用到
2.班主任表A[id:班主任工号,name:班主任姓名]
学生表B[id:学生学号,name:学生姓名,teacherId : 班主任工号]
请写出sql查询出班主任姓名中包含“玲”的班主任列表,列表显示字段如下:id:班主任工号,name: 班主任姓名,num此班主任所管辖的学生数量
3.请写出几个常用的Linux命令并描述其功能
Ls:查询命令
Cd:跳转到不同的目录
Vim:创建或查看文本
Catch:查询文本的内容
Adduser:创建用户
Chgmod:修改权限
Chgown:修改文件的拥有者
Netstat:查看线程
Ifconfig:查看ip
Service :查看服务
java的一些基础知识