有c/c++基础的猿猿,学习java时的一些要点。
1,定义数组类型的时候,当数据元素为对象时,数据的元素先要初始化,才能使用。
比如
CM a[]=new CM[10];
a[0]=new CM();
a[0].set(100);
System.out.println(a[0].num);
2,
byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。
当使用常量的时候,前缀0表示8进制,而前缀0x代表16进制
3,父类中声明为protected的方法在子类中要么声明为protected,要么声明为public。不能声明为private;4,父类中声明为private的方法,final修饰的类不能够被继承;
5,extends是简单的继承,方法可在父类中实现也可在子类中实现,implements,父类做了一个接口,子类实现相应的方法接口。
6,StringBuffer与StringBuffer赋值时,只是指针的赋值;
7,当调用 Thread.sleep(),时最好在前后加上try-catch,比如:
try{
Thread.sleep(1000*3);
}catch (Exception e)
{
return ;
}
8,final修饰的函数表示该函数不能被子类的函数覆盖,但可以被继承。
9,Calendar的日期是从0开始算起的;
10,文件操作,RandomAccessFile类;
11,重写:
(1)声明为final的方法不能被重写。
(2)声明为static的方法不能被重写,但是能够被再次声明。
(3)子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
12,程序中带有包名,编译应该使用
javac -d xxxx.java
运行
java 包名.xxxx(java 路径.xxxx)
13,FileWriter只有一个参数的构造函数,缺省会将原来的文件清空!
FileWriter fw = new
14,数组清零,
Arrays.fill(strSaveTotal,(byte) 0);
15,编写线程时,while如果一直为true,则while最好加Thread.sleep().不然cpu的占用率会很高。
变量转换,转换从低级到高级。
低 ------------------------------------> 高 byte,short,char—> int —> long—> float —> double
16.由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
17StringBuffer内部数组的长度和字符串长度是不相同的,默认长度为16,append的字符长度未超出16,直接添加,字符长度超过了16则调用扩展方法,将大小扩充到上一次的原来两倍,操作为:(16+1)*2=34