JAVA基础小知识
序言:“不积跬步,无以至千里。不积小流,无以成江海。”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累。
今天就和大家分享一些我在学习JAVA过程中总结的一些小知识吧!
1.JAVA语言规定标识符的命名规则
- 标识符应以“字母”、“下划线”、“美元符号$”开头,不能以“数字”开头;
- 标识符可以由“字母(A-Z,a-z)"、"下划线”、“美元符号$”或“数字(0-9)”组成;
- Java标识符需要注意区分大小写,长度无限制;(类名首字母一般采用大写,变量、方法及对象的首字母一般采用小写)
- 系统关键字(即保留字)不能作为标识符;
- Java使用的是“unicode"字符集,含有65535个字符;在Java之前的编程语言一般使用ASCII。
2.数组的定义形式
- 数组声明可以用“类型[ ] 标识符”;
float[] a=new float[20];
- 数组声明可以用“类型 标识符[ ]”;
float a[]=new float[20];
- 数组类型的变量的初始化可以用new,也可以直接用一个集合来初始化(用new初始化时必须指明长度,用集合不能指明长度)
float[] a=new float[]{1.1f,2.2f,3.3f,4.4f,5.5f,6.6f};
//在Java中的小数通常默认为是double类型的,所有要在小数后面加上f,强制转换成float类型;
3.Java源文件的后缀命名
- Java源文件以“.java”命名,源文件“编译”之后生成“.class”可执行文件,Java中每一个类都会编译成一个“.class”文件;
- Java源文件可以包含多个class,但最多只有一个public class;
- 如果源文件中有public class,源文件必须与public class同名。
4.类的访问控制
- 在Java中定义一个类,只能用“public”和“package”这两种访问控制,在定义时“package”可省略不写;
- 如果一个类包含抽象方法,必须声明为abstract class,但是抽象类中可以没有抽象方法,其子类无需实现任何方法就可以实例化。
5.方法重载(overloading method)
- 符合**“三行三不行”原则**:符合“三行”能构成重载,“三不行”则不能构成重载;
- “三行”:参数个数不同;某个参数位置类型不同;对应参数位置上的类型不同;
void zz(String a, boolean b); //原方法;
void zz(boolean x, String y, int z); //参数个数不同,可构成重载;
void zz(int x, boolean y); //某个(第一个)参数位置的类型不同,可构成重载;
void zz(float x, int y); //对应参数位置上的类型不同,可构成重载;
- “三不行”:返回值类型不同;参数名字不同;访问控制不同;
void zz(String a, boolean b); //原方法;
int zz(String x, boolean y); //返回值类型不同,不能构成方法重载;
void zz(String x, boolean y); //形参名字不同,不能构成方法重载;
6.接口
- 接口中使用的方法一般默认是“public”或者“abstract”,可省略不写;
- Java是单继承,多实现:一个类只能继承(extends)一个父类,但可以同时实现(implements)多个接口。另外需要注意的是:接口继承父接口用extends,一个接口可同时继承多个父接口。
7.final的使用
- final可以用来修饰class,method,fields,如果一个类(class) 声明为final,表示这个类不能被继承,与抽象(abstract)类刚好相反;
- 如果一个方法(method) 声明为final,表示这个方法不能被重写(override);
- 如果一个字段(field) 被声明为final,表示它的值不能被改变,相当于常量。
8.线程
- 线程的五个状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Die);
- 线程创建后调用start()方法,使线程处于就绪态,轮到该线程执行时,会自动调用run()方法;
- main方法就是main线程,其它线程只能在main线程中创建;main()方法时java Application的入口,它由JVM自动调用。
9.其它知识点
- Set内不能有重复的元素,元素无先后关系;
- List中可以有重复的元素,当作不同元素来处理,元素有先后位置
关系; - 容器类的Map、Set、List, List添加元素用add();
- 每一个非静态(non-static)方法包含一个this参数,指向对象自己,而静态(static)方法不包含this参数;
- 把程序中的数据写到流叫“输出”,用write();
- 把流中的数据读到程序叫“输入”,用read();
- 在向上类型转换的代码中,如果子类重写了父类的方法,父类的方法被子类的方法覆盖了,函数调用的是“子类”的方法。