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 :查看服务

时间: 2024-10-08 02:07:27

java的一些基础知识的相关文章

Java语言的基础知识

第三章 1.在java源文件编辑器中,选择某个成员变量,然后按住shift+alt+j,Eclipse会自动添加JavaDoc文档注释结构,如果选择的是方法,还会自动添加参数名称. 2.Java语言规定标示符是由任意的字母.下划线.美元符号和数字组成,并且第一个字符不能使数字,标示符不能使java中的保留关键字. 3.在Java语言中允许使用汉字或其他语言文字作为变量名,如int 年龄 =21;在程序运行时不会报错,但建议尽量不要使用这些语言作为变量. 4.java用关键字final来声明常量,

Java并发(基础知识)—— Executor框架及线程池

在Java并发(基础知识)—— 创建.运行以及停止一个线程中讲解了两种创建线程的方式:直接继承Thread类以及实现Runnable接口并赋给Thread,这两种创建线程的方式在线程比较少的时候是没有问题的,但是当需要创建大量线程时就会出现问题,因为这种使用方法把线程创建语句随意地散落在代码中,无法统一管理线程,我们将无法管理创建线程的数量,而过量的线程创建将直接使系统崩溃. 从高内聚角度讲,我们应该创建一个统一的创建以及运行接口,为我们管理这些线程,这个统一的创建与运行接口就是JDK 5的Ex

Java语言的基础知识4

第五章(数组) 1.在Java中可以将数组看做是一个对象虽然基本数据类型不是对象但有基本数据类型组成的数组是对象. 2.对于二维数组求第二维就用array[0].length, array.length就是默认的是第一维的长度. 3.foreach并不是一个新的语法它是for的循环的格式化主要执行遍历功能的循环,example: int arry ={1,2,3,4,5}; for(int i :array){ system.out.println(): } 4.数组元素定义完以后可通过Arra

黑马程序员——Java I/O基础知识之I/O流

I/O流基础知识--字节流和字符流 文件存储在硬盘中,是以二进制表示的,只有内存中才能形成字符.数据的来源可以有硬盘,内存,控制台,网络,Java把数据从一个地方转到另一个地方的现象称为流,用InputStream和OutputStream接口来表示,这两个流里面的都是以字节为单位的,后来加入了Reader和Writer,里面操作的是字符,是两个字节为单位的. 字节流 字节流将数据写入文件 try { File file =new File("d:" +File .separator+

Java语言的基础知识12

第十四章(使用集合类保存对象) 1.java中得集合对象就像是一个容器,它用来存放Java类的对象.Java中的集合类有些方便存入和取出,有些则方便查找.集合类和数组的区别是,数组的长度是固定的,集合的长度是可变的,数组用来存放基本类型,集合用来存放对象的引用.常用的集合类有List集合,Set集合,和Map集合. 2.List集合包括List接口以及List接口的所有实现类.List集合中的元素许重复,个元素的顺序就是对象插入的顺序.类似java中的数组.List类继承了Collection接

Java语言的基础知识10

第十二章(GUI事件) 1.GUI事件的处理机制是建立交互式应用程序的关键技术,其中事件是用在程序界面上的各种操作. 2.写程序的时候对于swing的一些空间譬如jprogressbar ,jtextfield等空间在全局中声明以后,用的时候一定要new 一下,自己经常忘记(由于对java理解不深) private  JTextField textField2; textField2 = new JTextField(); 3.事件在java语言中也是一种对象 4.监听器接受到事件之后,将委托指

Java语言的基础知识9

第十一章(线程) 1.通过String name=Thread.currentThread().getName();来获取当前线程的名称. 2.多次启动一个线程或者启动一个已经运行的线程是非法的,会抛出IllegalThreadStateException异常对象. Thread.sleep((int)Math.random()*10000); 3.java提供了Runnable接口使继承了其他类之后同样可以实现该接口达到创建线程的目的Runabble接口同样定义了Run方法. 实现Runnab

Java语言的基础知识3

第四章 1.sum +=x++;的语句等价于sum=sum+x;和x=x+1;两条语句 2.do....while循环语句与while循环语句类似.他们之间的差别是while语句为先判断条件是否成立再执行循环体,而do...while循环语句是先执行一次循环体,在判断条件是否成立.也就是说do....while循环语句至少执行一次循环体. 3.在一个循环语句中又包含另外一个完整的循环语句,称为嵌套循环,笔者不建议使用超过3层的嵌套循环,因为这样会使程序更加难以阅读. 4.乘法口诀中用到的制表符"

Java的入门基础知识

https://course.tianmaying.com/java-basic%2Bjava-environment#0 作者:David链接:https://www.zhihu.com/question/25255189/answer/86898400来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 这个教程将Java的入门基础知识贯穿在一个实例中,逐步深入,可以帮助你快速进入Java编程的世界.万事开头难,逐步跟着这个教程走一遍,对Java应该就会有一种入门的

[Java]Spring AOP基础知识-动态代理

Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的动态代理:另一种是基于CGLib的动态代理.之所以需要两种代理机制,很大程度上是因为JDK本身只提供接口的代理,而不支持类的代理. 带有横切逻辑的实例 我们通过具体化代码实现上一节所介绍例子的性能监视横切逻辑,并通过动态代理技术对此进行改造.在调用每一个目标类方法时启动方法的性能监视,在目标类方法调