黑马程序员_JAVA基础常识整理

时间:2021-11-14 00:34:38

-------android培训java培训、期待与您交流! ----------

类名:名字必须以字母开头,后面可以跟字母和数字的任意组合,长度上基本没有限制。但是不能使用Java的保留字。

类名是由大写字母开通的名词,如果类名由多个单词组成,每个单词的第一个字母都应该大写。

 

变量名:变量名必须是一个以字母开头的由字母或者数字构成的序列。Java中的字母包括'A'-'Z',a'-'z','_'或在某种语言中代表字母的任何Unicode字符(可以使用Character类的isJavaIdentifierStart 和 isJavaIdentifierPart方法进行检测)。变量名也不能使用Java保留字。

变量初始化:声明一个变量之后,必须用赋值语句对变量进行显示初始化,不能使用未被初始化的变量。

 

常量:在Java中,利用关键字final声明常量。关键字final表示,这个变量只能被赋值一次,一旦被赋值之后就不能再更改了。习惯上,常量名使用大写。

在Java中,经常希望某个常量可以在一个类的多个方法中使用,通常这些常量称为类常量,可以使用关键字staticfinal设置一个类常量。类常量的定义位于main方法的外部。因此,在同一个类的其他方法中也可以使用这个常量。而且,如果一个常量被声明为public,那么其他类的方法也可以使用这个常量。

 

三元操作:

condition?  expression1 : expression2

当condition为真时计算第一个表达式,否则计算第二个表达式。

 

字符串:每个使用双括号括起类的字符串都是String类的一个实例。String类中没有提供修改字符串的方法。

由于不能修改字符串中的字符,所以在文档中将String类对象称为不可变字符串。不可变字符串有一个优点:编译器可以让字符串共享。如果复制一个字符串变量,原始字符串与复制的字符串共享相同的字符。

 

构建字符串(StringBuilder):

首先,构建一个空的字符串构建器:

StringBuilderbuilder = new StringBuilder();

当每次需要添加一部分内容时,就调用append方法。在需要构建字符串时就调用toString方法,将可以得到一个String对象,其中包含了构建器中的字符序列。

StringcompleteString = builder.toString();

格式化输出:Java SE 5.0 沿用了C语言函数库中的printf方法。在printf中,可以使用多个参数。每一个以%字符开始的格式说明符都用相应的参数替换,格式化说明符尾部的转换符将指示被格式化的数据类型。

 

文件输入与输出:

要想对文件文件进行读取,就需要要用一个File对象构造一个Scanner对象:

Scannerin = new Scanner(new File("myfile.txt"));

      如果文件名中包含反斜杠符号,就要记住在每个反斜杠之前再加一个额外的反斜杠:"C:\\mydirectory\\myfile.txt"。

      现在,就可以利用任何一个Scanner方法对文件进行读取。

 

      要想写入文件,就需要构造一个PrintWriter对象,在构造器中,只需要提供文件名:

PrintWriterout = new PrintWriter("myfile.txt");

      如果文件不存在,则创建该文件。

 

      如果用一个不存在的文件构造一个Scanner,或者一个不能被创建的文件名构造一个PrintWriter,那么就会发生异常,这需要在main方法中用throws子句标记:

publicvoid static main(String[] args) throws FileNotFoundException
{     
	Scanner in = new Scanner(newFile("myfile.txt"));
	...
}

块作用域:块(即复合语句)是指由一对花括号括起来的若干条简单的Java语句。块确定了变量的作用域。一个块可以嵌套在另外一个块中。但是,不能在嵌套的两个块中声明同名的变量。

 

for语句:

      for循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代次数。

      for语句的第1部分通常用于对计数器的初始化,第2部分给出每一次新一轮循环执行前要检测的循环条件;第3部分指示如何更新计数器。

      PS:有一条不成文 的规则,for语句的3个部分应该对同一个计数器变量进行初始化,检测和更新。

      特别指出,如果在for语句内部定义了一个变量,这个变量就不能在循环体外使用。因此,如果希望在for循环体之外使用循环计数器的最终值,就要确保这个变量在循环体外部声明。

 

switch语句:

      switch语句将从与选项值匹配的case标签处开始执行,直到遇到break语句,或者执行到switch语句的结束处为止。如果没有相匹配的case标签,而有default字句,就执行这个子句。

      case标签必须是整数或枚举类型,不能测试字符串。

      但在switch语句中使用枚举常量时,不必在每个标签中指明枚举名,可以由switch表达式的值确定。

 

break语句:

      Java除了提供不带标签的break语句之外,还提供了一种带标签的break语句,用于跳出多重嵌套的循环语句。标签必须在希望跳出的最外层循环之前,并且必须紧跟一个冒号。

      对于任何使用break语句的代码都需要检测循环是正常结束还是有break跳出。

 

continue语句:

      与break语句一样,它将中断正常控制的流程,continue语句将控制流程转移到最内层循环的首部。在for语句中,将跳转到for语句的更新部分。

 

大数值:

      如果基本的整数和浮点精度不能满足要求,那么可以使用java.math包中很有用的两个类:BigInteger和BigDecimal。这两个类可以处理任意长度数字序列的数值。

      使用静态的valueOf方法可以将普通的数值转换为大数值:

BigIntegera = BigInteger.valueOf(100);

      可以使用add,subtract,multiply,divide方法进行大数值的加减乘除运算。

 

小知识点整理:

整数被0除会产生一个异常,而浮点数被0除会得到无穷大或NaN结果。

当使用的类不是定义在基本java.lang包中是,一定要使用import指示字符将对应的包加载进来。

源代码的文件名必须与公有类的名字相同,并用(.java)作为扩展名。

在Java中,整型的范围与运行Java代码的机器无关。Java中,没有任何的无符号类型(unsigned type)。