1
Float f = new Float(3.14f);
short s= f.shortValue();
结果s为3
这个是对的,说明封装类也是可以像强制类型转换那样转的
2
封装类的toString()直接输出内容,不像其他对象还会输出hash等“多余”的内容
3
String.intern()可以在字符串常量池中找相同的字符串常量,有则返回其引用,否则在常量池中添加一个,再返回其引用
String s0= "Java";
String s1 = new String("Java");
System.out.println(s0==s1);
s1 = s1.intern();
System.out.println(s0==s1);
结果
false
true
4
java移位之前先对位数取模,避免无意义的移位,如 38<<32,结果还是38,因为实际上左移0位
5
局部变量和成员变量可以同名;
局部变量中:
JAVA的作用域规则中不是说 "内部作用域声明的变量与其包围作用域中声明的变量不能重名! "
是指作用域不可以覆盖,像:
for(int i=0; i<n; ++i){
...;
}
for(int i=0; i<n; ++i) {
....;
}
这里作用域没有覆盖,当然是对了;
但比如
int i= 0;
for(int i=0; i<n; ++i) {
....;
}
这里上一个i的作用域覆盖了 for中i的作用域 编译不能通过!
5
this 不可以做左值
6 为什么一个文件中只能有一个public类
java程序是从一个public类的main函数开始执行的,(其实是main线程),就像C程序是从main()函数开始执行一样。 只能有
一个public类是为了给类装载器提供方便。 一个public 类只能定义在以它的类名为文件名的文件中。
每个编译单元(文件)都只有一个public 类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要
求包含众多的支持包访问权限的类。如果有一个以上的public 类,编译器就会报错。 并且public类的名称必须与文件名相同(
严格区分大小写)。 当然一个编译单元内也可以没有public类
7数组初始化两种方式
1静态,在声明时直接给值,如
int[] a = new int[]{1,2}; 也可以这样写 int[] a = {1,2};
2动态:先声明,然后一个一个给值
8
如果你有下面这样的代码?
if (someExpression) {
return true;
} else {
return false;
}
你应该改成:
return someExpression;
9
关于public static void sort
(short[] a,int fromIndex,int toIndex)方法中,toIndex的api解释
toIndex - the index of the last element (exclusive) to be sorted
看到了toIndex是exclusive的,也就是说只是一个结束的标记。
10
vector LinkedList 这些进去的只是对象的引用,换而言之,你的对象改变后那么原来进去List中的也随着改变了
11
java中类的访问限制符只有一个(public),但访问限制级别有两个(public任何包可访问,default包内类可访问)
方法和成员变量访问限制中public是任何地方都可以,private是只有在同类中才可以访问,default是在同包中可以访问
12
关于java版本,
04年1.5版本发布,应更改很大,改名5.0版本;
05年6月来java中各版本号都取消了数字2(原为j2se,j2me,j2ee)更名为java se,java me,java ee
13
正斜杠/ 在文件路径中是通用的,制表符/t中是反斜杠
14
java既不是编译性语言也不是解释性语言,class只是中间产品,不能够直接执行,还需要jvm解析之。
java很特殊,java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后用解释方式执行字节码。