基本数据类型
byte、short、int、long 四种基本数据类型表示整数,需要注意的是 long 类型,使用 long 修饰的变量需要在数值后面加上 L 或者 l,比如long num=1L;,一般使用大写 L,为了避免小写 l 与数值 1 混淆。
float 和 double 类型表示浮点数,即可以表示小数部分。需要注意的是 float 类型的数值后面需要加上 F 或者 f,否则会被当成 double 类型处理。double 类型的数值可以加上 D 或 d,也可以不加。
字符串比较
如果想忽略掉大小写关系,比如:java 和 Java 是一样的,那怎么办呢?可以调用equalsIgnoreCase()方法,其用法与 equals 一致,不过它会忽视大小写
类与对象
类体的内容由两部分组成:一部分是变量的声明;另一部分是方法的定义。对成员变量的操作只能放在方法中,方法使用各种语句对成员变量和方法中声明的局部变量进行操作。
例如:
class A{
int a=12;
}
错误:
class A{
int a;
a=12;//非法,这是赋值语句(语句不是变量的声明,只能出现在方法体中)
}
访问权限
- 私有变量和私有方法 ——private修饰的成员变量和方法只能在本类中使用
- 共有变量和共有方法 ——public修饰的成员变量和方法可以在不同类不同包使用
- 可以在不同类同包使用——不用private、public、protected修饰(null) 的成员变量和方法 可以在不同类同包使用
- 受保护的成员变量和方法 ——protected修饰的成员变量和方法 可以在不同类同包使用
访问限制修饰符按访问权限从高到低排序为public、protected、友好的(null)、private。
protected与友好访问权限的区别:当子类和父类不在同一包中,子类只继承父类中的protected和public访问权限的成员变量和方法作为子类的成员变量和方法,不能继承友好和private访问权限的成员变量和方法。
常用类
StringBuffer 和 StringBuilder 类基本相同,区别在于StringBuffer速度慢,线程安全;StringBuilder速度快,线程不安全。
toString方法就是Object类的一个方法,int,short不能使用,需转换成Integer,Short
IO
listRoots();///列出可用的文件系统根 如windows系统返回c:/ d:/ e:/ 等等
read是从文件中读,write是写入到文件中。
int read(byte b[],int off,int len):从输入流中读取长度为 len 的数据,写入数组 b 中从索引 off 开始的位置,并返回读取得字节数。
write(byte b[], int off, int len)throws IOException 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流
off是指在b[]中的位置。
多线程
ReentrantLock在同一个时间点只能被一个线程获取(当某线程获取到“锁”时,其它线程就必须等待)。
Thread.getState() 此方法返回该线程的状态。
线程的声明周期共有 6 种状态,分别是:新建New、运行(可运行)Runnable、阻塞Blocked、计时等待Timed Waiting、等待Waiting和终止Terminate。
Thread.sleep()是Thread类的一个静态方法,使当前线程休眠,进入阻塞状态(暂停执行)
别忘了 main()进程
thread.join() 方法把指定的线程thread加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。