首页 > 代码库 > java的一些基础知识

java的一些基础知识

一.Java基础

1.抽象类和interface有什么区别?

答:抽象类:单继承,可以有非抽象方法,也可以没有抽象方法,有普通方法,有构造方法

接口:多继承,只有抽象方法、没有构造函数,成员变量必须是static final类型的

2.request与session的区别?

Session在整个会话期间有效,而request一次请求的全过程中有效

3.String StringBuffer的区别?

String 一旦创建就不可以改变而StringBuffer创建之后还可以改变

4.尽量多的列举常用的Map家族与List家族的容器类,多线程操作HashMap是否线程安全?

答:MapHashMapHashTablecurrenthashMapproperty

   List:  LinkedListarrayList,Vector,stack

HashMap的工作原理:

调用:HashMap通过put()方法的键中的hashcode()确定hashcode值,找到相应的bucket,把键值对存放在linkedList上,

通过get()方法,获得值:调用键中的hashcode()方法找到相应的bucket,然后调用equels()方法获得值。

注意:1.hashMap解决hash冲突用的是链表法,

     2.hashMap是线程不安全的,并且建和值都可以为null值,通过HashMapget()方法获得值为null不能判断是键不存在或者之不存在

3.hashMap默认的装填因子为0.75当达到是自动扩容,当然可能会发生多线程之间的竞争的问题

4.HashMap中的键一般选择不可变得类型,Integer或者String就可以作为比较好的键,因为它们是finall类型的并且重写了hashcode()和equels()方法

 

5.for循环中breakcontinue的区别

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++ii++的区别)

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处理后台处理请求返回

Xmlhttprequestajax的核心,其中有三个属性:

onreadystatechange是每次状态改变时触发的函数,

onreadystatexmlhttprequest工作的状态描述,0:未初始化(对象创建为初始化),1:初始化(初始化但是没有调用send方法(尚未调用open方法)),2:发送数据(调用send()但是当前状态和http未知,)3:数据发送中(已发送部分数据,响应以及http头不全面)4:数据处理完成(数据传输完成,可以通过responseText或者responseXml接受数据)

State:后台返回数据状态:200:数据已经就绪,404:没有数据

两个方法:open()send()方法:三个参数:1,传送的方法:(get或者post2.url地址和传输的数据,3.是否异步传输:true:异步传输,false:同步传输

使用ajax的优点:异步传输,局部刷新

使用ajax的缺点:不能回退,产生安全问题

 

Ajax常用的框架:ajax.dll  ajaxpro.all margicajax.dll

 

三.数据库\linux题目

1.描述下面几个sql关键字/函数的作用;

Order by; 查询出的数据进行排序有ascdesc两种

 

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的一些基础知识