java 复习,
java 复习,
以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类。但是不是官方的。
|
数字类型之间的转换:
注:实现表示无数据丢失的转换,虚线表示可能有精度损失的转换。
强制转换时如何实现的?
答:截断。
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
代理。
没有学会的的东西?
答:代理,反射,内部类。
第十一章 异常与调试
第十二章 流与文件
相关文章
- 暂无相关文章
用户点评