java 复习

来源:互联网 发布:linux解压缩gz文件 编辑:程序博客网 时间:2024/05/01 04:06

以java核心技术为参考,跳过图形设计

第三章:Java基本的程序设计

注释

单行注释

//

多行注释,不可以嵌套。

/*

*/

 

文档注释

/**

*

*/

int  20亿

如何判断一个变量是不是double类型的?

答:x==Double.NAN   是错误的

Double.isNaN(x)是正确的

如果计算结果要精确,怎么办?

答:参考DigDecimal类。

char类型为什么是要两个字节表示?

答:java中,char类型用UTF-1编码描述有一个代码单元。

不建议程序中使用char类型。

 

特殊的字符需要转移的有那几个?

\b    退格

\t     制表

\n    换行

\r     回车

\”     双引号

\’     单引号

\\     反斜杠

Java中的变量名可以是中文吗?

答:可以,java中的变量名必须是一个以字母开头(非数字,可以是_ .$)的字母或者数字序列。字母可以使汉语,也开始是其他本地语言,数字可以是Pi;

如何声明一个常量?

答:例如,实例化一个int型的常量,

final int a=10;

注意,final型的默认是static类型的

故:等价于: staticfinal int a=10;

不过常量最好大写;

被零除后都是产生一个异常吗?

答:不一定;

整数被零除后会产生一个异常,而浮点数被0除后将会得到无穷大或者NaN。

关系运算符要点:

&&  ||  !

&& || 是按照短路方式来求值的。

<<、>>、>>>各代表什么意思?

答:

<< 左移

>> 右移用符号位填充前面的位。

>>> 用0填充前面的位。


数学函数怎么用?

答:在Math类定义了很多数学相关的静态函数和常量,可以直接使用。

 

如果想得到一个完全可预测的结果比运行速度更重要的话,有没有可以代替Math的类?

答:有,StricMath类。但是不是官方的。

char

 

 


数字类型之间的转换:

注:实现表示无数据丢失的转换,虚线表示可能有精度损失的转换。

 

强制转换时如何实现的?

答:截断。

 

for语句里可以用逗号吗?

答:可以,用来分割表达式列表。

 

String 的特点?

答:String对象是不可变字符串,但是,编译器可以将字符串共享。

 

如何判断字符串是否相等?

答:用

equals()函数,不能用==

原因:实际上只有字符串常量是共享的,而+或者substring等产生的结果都不是共享的 。

 

格式化输出?

答:

System.out.printf();类似C语言。

 

f

定点浮点数

e

指定浮点数

g

通用浮点数

a

十六进制浮点数

s

字符串

c

字符

b

布尔

h

散列码

tx

日期时间

%

百分号

n

与平台有关的行分隔符

 

标志

目的

+

打印正数和负数的符号

空格

在正数之前添加空格

0

数字前面补零

-

左对齐

讲负数括在括号内

分组分隔符

#

包含小数点

^

转换为大写

$

指定被格式化的索引参数

格式化前面说明的数值

如何格式化一个字符串?

答:

String.format();

日期和时间的转换符?

答:用的时候去看看,常用的记住。


大数值

BigInteger 任意长度任意精度的整数运算

BigDecimal     任意长度任意精度的整数运算

 

大数值如何加减乘除?

答: add()  subtract()  multiply()   divide()   mod()

 

计算商要注意的问题,舍入方式?

答:RoundingMode类

 

数组拷贝?

答:=是将两个变量引用同一个数组‘

System.arratcopy(from,fromIndex,to,toInedxt,count);

 

如何对数组进行排序?

答:Array.sort(type[]a);

注:a 的类型范围,int ,long,short,char,byte,float,double,下同。

 

第四章 对象与类

 

类之间的关系有哪些?

答:

依赖       uses a

聚合      has -a

继承       is –a


Java中,对象变量的值是什么?

答:

Java中,任何对象变量的值都是对存储在另一处的一个对象的引用。

 

时间日期如何表示?

答:相关的类 Date,Calendar,GregorianCalendar,(常用)

 

Java中变现返回引用可变对象的访问器方法,这样做合理吗?

答:不合理。

如果需要返回一个可变对象的引用,应该首先对其进行克隆。对象克隆是这存放在另一个位置上的对象副本。

 

什么情况下使用静态方法是较为合理的?

答:

当一个方法不需要访问对象状态,其所需要的参数都是通过显示参数提供的;

当一个方法只需要方位类的静态域;

 

第五章 继承

equals与hashCode的定义必须一致:如果x.equals(y)返回true,那么x.hashCode就必须与y.hashCode()具有相同的值。

如何返回类的名字,不用硬编码?

答:getClass().getName();

建议,为自己编写的每一个类增加一个toString9()方法。

 

ArrayList()使用注意事项?

答:不必指定数组的大小;

使用add将任意多的元素添到数组中;

使用size()替代length计算元素的数目

使用a.get(i)代替a[i]

 

list.add(3)本质上是什么?

答:自动打包,autoboxing 

List.add(new Integer(3))

 

反射有什么用?

答:在运行时分析类的能力。

在运行时查看对象,例如,编写一个toString方法供所有类使用。

实现数组的操作代码。

利用Method对象,这个对象很想C++这类语言中的函数指针。

 

Object类中的getClass()方法有什么作用?

答:返回一个Class的实例。

 

Class类中的静态函数forName()有什么作用?

答:获得字符串对应的Class对象。


未检验异常和已检验异常的区别?

答:检验是这程序员检验,已检验异常指的是程序员提供了异常的处理器。

 

Java反射包里面的主要类?

答:Field,Method,Constructor

 

第六章 接口与内部类

 

如何让一个类使用排序服务?

答:让其实现排序接口。Comparable

 

如何让你创建的类具有clone能力?

答:实现Cloneable接口。

克隆函数好像可以让eclipse生成。

 

如果一个对象需要克隆,但是没有实现Cloneable接口,会怎么样?

答:会产生一个已检验异常。

 

内部类,

在内部类不需要访问外围类对象的时候,应该使用静态内部类。

声明在接口中的内部类自动成为static和public

 

代理。

 

没有学会的的东西?

答:代理,反射,内部类。

 

第十一章 异常与调试

 

第十二章 流与文件

 


0 0