黑马程序员------------JAVA笔记问答03

来源:互联网 发布:杭州知彼科技 编辑:程序博客网 时间:2024/06/04 00:37

什么是正则表达式?

答案:正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则达表示通常被用来检索、替换那些符合某个模式的文本。

使用BigInteger类与BigDecimal类可以解决哪些问题?

答案BigInteger支持任意精度的整数。

 BigDecimal支持任意精度的定点数。

 通过二者可以实现高精度的科学运算,避免数据不准确的问题。

如何实现Datelong相互转换?

答案:

  Date 转换到 long 的方式:

通过Date类的getTime()方法

long 转换到 Date的方式:

通过Date类的构造方法

如何实现DateString相互转换?

答案:

Date 转换到 String的方式:

1. Date类的toString()方法

2. DateFormat类的format()方法

String 转换到 Date的方式:

1. Date类的构造方法(已过时,被DateFormat类的parse(String s)方法取代)

2. DateFormat类的parse()方法

请简述什么时候使用静态修饰成员变量?什么时候使用静态修饰方法?

答案:

如果某个成员变量是被所有对象共享的,那么它就应该定义为静态的。

编写工具类的时候,方法通常为静态修饰

请简述静态代码块和构造代码块的区别?

答案:

静态代码块:

只执行一次,以后创建再创建多少个对象,都不会执行

构造代码块:

每创建一个对象,执行一次

请简述文档注释的作用?

答案:

文档注释一般用于方法或类上

如:

/**

 * 学生类

 * @author LKP

 */

 public class Student {  }

这样写的好处是,你在其他类里new出该类的时候,按alt+"/"可以看到自己写的"学生类";更重要的是,写文档注释可以用eclipse导出生成帮助文档,拿给其他人用,别人也方便理解。

请简述编写构造方法需要注意哪些?

答案:

1:方法名与类名相同

2:没有返回值类型,连void都没有

3:没有具体的返回值

4:如果我们没有给出构造方法,系统将自动提供一个无参构造方法

5:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。

 注意:这个时候,如果我们还想使用无参数构造方法,就必须自己给出。建议永远自己给出无参数构造方法。

请简述静态变量与成员变量的区别?

答案:

1:所属不同

静态变量属于类,所以也称为为类变量

成员变量属于对象,所以也称为实例变量(对象变量)

2:内存中位置不同

静态变量存储于方法区的静态区

成员变量存储于堆内存

3:内存出现时间不同

静态变量随着类的加载而加载,随着类的消失而消失

成员变量随着对象的创建而存在,随着对象的消失而消失

4:调用不同

静态变量可以通过类名调用,也可以通过对象调用

成员变量只能通过对象名调用

请简述一个对象的创建过程做了哪些事情?

Student s = new Student();

答案:

1:将Student.class 字节码文件加载到内存

2: 在栈内存中,开辟一个空间存储 s变量,用来记录Student对象的引用

3: 在堆内存中,开辟一个空间存储 new Student()对象的成员信息

4:加载类中静态成员

5:执行类中静态代码块

6:加载对象中普通成员

7:执行构造代码块

8:执行构造方法

9:将new Student()的地址赋值给 变量

请解释Math工具类的下列方法

答案:

public static double abs(double a) 获得一个double类型值对应的绝对值

public static double ceil(double a) 获得最接近,但并不小于参数的一个double类型整数

public static double floor(double a) 获得最接近,但并不大于参数的一个double类型整数

public static double max(double a, double b) 获得两个double类型数之中的较大数

public static double min(double a, double b) 获得两个double类型数之中的较小数

public static double random() 获得一个取值返回为[0.0~1.0]之间的随机数

public static double sqrt(double a) 获得一个平方根值

请简述打印流(PrintStreamPrintWriter)的特点?

答案:

PrintStreamOutputStream基础之上提供了增强的功能,即可以方便地输出各种类型的数据(而不仅限于byte类型)的格式化表示形式。PrintStream的方法从不抛出IOException

PrintWriter提供了PrintStream的所有打印方法,其方法也从不抛出IOException

PrintStream的区别:作为处理流使用时,PrintStream只能封装OutputStream类型的字节流,而PrintWriter既可以封装OutputStream类型的字节流,还能够封装Writer类型的字符输出流并增强其功能。 

Throwable

public String getMessage() 获取异常信息,返回字符串。

public String toString() 获取异常类名和异常信息,返回字符串。

public void printStackTrace() 获取异常类名和异常信息,以及异常出现在程序中的位置。

printStackTrace(PrintStream s) 通常用该方法将异常内容保存在日志文件中,以便查阅。

public File[] listFiles() 指定文件夹中,所有的File对象

请说说什么是异常?异常的分类?

答案:

Java异常是java提供的用于处理程序中错误的一种机制。

所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0错误,数组下标越界,所要读取的文件不存在)。设计良好地程序应该在程序异常发生时提供处理这些错误的方法,使得程序不会因为异常的发送而阻断或产生不可预见的结果。

Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息,并将被提交给java运行时系统,这个过程称为抛出异常。

java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交其处理,这一过程称为捕获异常。

异常的分类:

Error:称为错误,由java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等,程序对其不做处理。

Exception:所有异常类的父类,其子类对应了各种各样的可能出现的异常事件,一般需要用户显示的声明或捕获。

Runtime Exception:一类特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显示的声明或捕获将会对程序可读性和运行效率影响很大。因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。

请写出异常处理的两种方式?

答案:

捕获异常: try...catch...finally

抛出异常:throw \ throws

其实异常部分主要讲的就是五个关键字:trycatchfinallythrowthrows

try语句:

try{...}语句制定了一段代码,这段代码就是一次捕获并处理异常的范围。在执行过程中,这段代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理。如果没有异常发生,所有的catch代码段都被略过不执行。

catch语句

catch语句块中是对异常进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。在catch中声明的异常对象(catch(XxxException e))封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息。

finally语句:

finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前,能够对程序的状态做统一的管理。无论try所指定的程序块中是否抛出异常,finally所指定的代码都要执行。通常在finally语句中可以进行资源的清除工作。

throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。

throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通常throw抛出异常后,如果想在上一级代码中捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指定要抛出的异常;如果要捕获throw抛出的异常,则必须使用try{}catch{}语句。

请说说编译期异常和运行期异常的区别?

答案:

编译时异常:程序正确,但因为外在的环境条件不满足引发。对商用软件系统,程序开发者必须考虑并处理这类异常。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。

运行期异常:这意味着程序存在bug,如数组越界,0被除,传入参数不满足规则等,这类异常需要更改程序来避免,java编译器强制要求处理这类异常。

错误:一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而由运行环境处理。

0 0
原创粉丝点击