java基础1

1.基本数据类型(八个):byte,int,char,long,float,double,boolean,short。

1.1.java标识符命名规则:以由大小写字母、数字、下划线(_)和美元符号($)组成,但是不能以数字开头。

 

2.int 和 Integer 有什么区别?(boolean,Boolean;long,Long...)

①、Integer 是 int 包装类,int 是八大基本数据类型(byte,char,short,int,long,float,double,boolean)

②、Integer 是类,默认值为null,int是基本数据类型,默认值为0;

③、Integer 表示的是对象,用一个引用指向这个对象,而int是基本数据类型,直接存储数值。

 

3.String 和StringBuffer的区别?

String:存储字符串,不可以修改字符串

StringBuffer:存储字符串,可以修改字符串,可以使用StringBuffers来动态构造字符数据。

 

4.运行时异常与编译时异常:

运行时异常:不处理也会编译,结果出现异常。

NullPointerException(空指针异常) 

IndexOutOfBoundsException(下标越界异常) 

ClassCastException(类转换异常) 

ArrayStoreException(数据存储异常,操作数组时类型不一致) 

IO操作的BufferOverflowException异常

编译时异常:必须进行处理的异常,如果不处理,程序就不能编译通过。

 

5.Servlet的生命周期?

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

 

6.ArrayList(线程不安全),Vector(线程安全), LinkedList(线程不安全)的比较:

ArrayList,Vector:都是基于数组实现的。如果从指定的位置检索一个对象,或在集合的末尾插入、删除一个元素的时间是一样的,时间复杂度都是O(1)。但是如果在其他位置增加或者删除元素花费的时间是O(n)

LinkedList:是基于双向链表实现的(含有头结点)。在插入、删除任何位置的元素所花费的时间都是一样的,时间复杂度都为O(1),但是他在检索一个元素的时间复杂度为O(n)

如果只是查找特定位置的元素或只在集合的末端增加移动元素,那么使用ArrayList或Vector都是一样的,如果是在指定位置的插入、删除元素,最好选择LinkedList。

 

7.Collection 和 Collections的区别

Collection:是集合类的上级接口,继承与他的接口主要有Set 和List。

Collections:是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

 

8.&和&&的区别。

&是位运算符,表示按位与运算。

&&是逻辑运算符,表示逻辑与(and),如果第一个表达式为false,则不再计算第二个表达式。

 

9.HashMap和Hashtable的区别

两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全。Hashtable的实现方法里面都添加了synchronized关键字来确保线程同步。

HashMap可以使用null作为key,而Hashtable则不允许null作为key。

HashMap和Hashtable的底层实现都是数组+链表结构实现。

HashMap的初始容量为16,Hashtable初始容量为11。

HashMap继承了AbstractMap,HashTable继承Dictionary抽象类。

 

10.final, finally, finalize的区别。

final :用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally:是异常处理语句结构的一部分,表示总是执行。

finalize:是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

 

11.sleep() 和 wait() 有什么区别?

sleep方法属于Thread类中的静态方法,wait属于Object的成员方法。

最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。

wait只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用

sleep()等待一定的时间之后,自动醒来进入到可运行状态,一旦一个对象调用了wait方法,必须要采用notify()和notifyAll()方法唤醒该线程;如果线程拥有某个或某些对象的同步锁,那么在调用了wait()后,这个线程就会释放它持有的所有同步资源,而不限于这个被调用了wait()方法的对象。

12.html和jsp的区别?

 HTML:文本标记语言,它是静态页面,不需要指定的编译工具,只需在TXT文档中写上HTML标记就OK。

JSP:Java服务端的页面,所以它是动态的,它是需要经过JDK编译后把内容发给客户端去显示。

1.最简单的区别就是,HTML能直接打开,jsp只能发布到Tomact等服务器上才能打开

2.定义上HTML页面是静态页面可以直接运行,JSP页面是动态页它运行时需要转换成servlet

3.他们的表头不同,这个是JSP的头“ <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>”在表头中有编码格式和导入包等

4.也是很好区分的在jsp中用<%%>就可以写Java代码了,而html没有<%%>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值