一、一个简单的JAVA应用程序
public class FirstSample{
public static void main(String[] args){
System.out.println("We will not use 'Hello world!' ");
}
}
这个程序虽然很简单,但所有的Java应用程序都具有这种结构,还是值得花一些时间来研究。
1.Java区分大小写。
2.关键字public称为访问修饰符,用于控制程序的其他部分对这段代码的访问级别。
3.关键字class表明Java程序中的全部内容都包含在类中,这里将类作为一个加载程序的逻辑的容器,程序逻辑定义了应用程序的行为,Java应用程序中的全部内容都必须放置在类中。
关键字class后面紧跟类名,定义类名的规则很宽松,名字必须以字母开头,后面可以跟字母和数字的任意组合,长度基本没有限制,但是不能使用Java保留字。
4.标准的命名规范为:类名是以大写字母开头的名词,如果名字由多个单词组成,每个单词的第一个字母都应该大写,称为驼峰命名法或者叫做骆驼命名法。
5.源代码的文件名必须与公共类的名字相同,并用 . java作为扩展名,文件的的大小写非常重要,千万不能写成firstsample.java。
6.在控制台中可以使用 java FirstSamle运行这个程序(注意不要加.class扩展名)。程序执行后控制台上会显示“We will not use ‘Hello world!’ ”。运行已编译的程序时,java虚拟机将从指定类中的方法开始执行(这里的方法类似c语言中的函数),因此为了代码能够运行,在类的源文件中必须包含一个main方法。当然也可以将用户自定义的方法添加到类中,并且在main方法中调用它们。
7.在这里使用了System.out对象并调用了它的println方法,点号(.)用于调用方法。Java使用的通用语法是object.method(parameters) 这等价于函数的调用。每次调用println方法都会在新的一行上显示输出。不带参数的println方法只打印一个空行。System.out还有一个print方法,它在输出后不换行。
注释:根据Java语言规范,main方法作为程序的入口,每个java程序都必须有一个main方法,并且main方法必须声明为public,也必须是静态的。
二、注释
1.Java中最常用的注释方式是使用//,其注释内容从//开始到本行末尾。
2.需要长篇注释时,既可以在每行的注释前面标记//,也可以使用 /* 和 */将一段比较长的注释括起来。
3.第三种注释可以用来自动地生成文档,这种注释以/**开始,以 */结束,后面会讲到。
注意:在Java中,/* */注释不能嵌套,也就是说,不能简单的吧代码用 / *和 */括起来作为注释,因为这段代码本身可能也包含一个 */。
三、数据类型
JAVA是一种强类型语言。这就意味着必须为每个变量声明一种类型。在JAVA中,一共有8种基本类型。其中有4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。
1.整型
类型 | 存储需求 | 取值范围 |
---|---|---|
int | 4字节 | -2147483648~2147483647 |
short | 2字节 | -32768~32767 |
long | 8字节 | -9223372036854775808~9223372036854775807 |
byte | 1字节 | -128~127 |
通常情况下,int类型最为常用。byte和short类型主要用于特定的应用场合,例如,底层的文件处理或者需要控制占用存储空间量的大数组。在JAVA中,整型的范围与运行JAVA代码的机器无关。
长整型数值有一个后缀L或l(如4000000000L),一般建议写大写的L,小写的容易看成1。十六进制数值的有一个前缀0x或者0X(如0xCAFE)。八进制有一个前缀0,例如,010对应的八进制中的8,因为8进制容易混淆,所以建议一般不使用8进制。
从Java7开始,加上前缀0b或者0B就可以写二进制数,例如0b001就是9。
注意:Java中没有任何无符号(unsigned)形式的int、long、short或byte类型。
2.浮点类型
类型 | 存储需求 | 取值范围 |
---|---|---|
float | 4字节 | 大约 ± 3.40282347E+38F(有效位数为6~7位) |
double | 8字节 | 大约 ± 1.79769313486231570E+308(有效位数为15位) |
float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。浮点型常量默认类型也是double。
float类型的数值有一个后缀F或者f(例如,3.14F)。没有后缀F的浮点数值默认为double类型。当然,也可以在浮点数值后面添加后缀D或者d,以明确其为double类型。
下面是用于表示溢出和出错情况的三个特殊的浮点数值:
* 正无穷大
* 负无穷大
* NaN(不是一个数字)
例如:一个正整数除以0的结果是无穷大,计算0/0或者负数的平方根结果为NaN。
3.char类型
char类型的字面量值要用单引号括起来。例如:'A’是编码值为65所对应的字符常量。它与"A"不同,"A"是包含一个字符A的字符串。
转义序列 | 名称 | Unicode值 |
---|---|---|
\b | 退格 | \u008 |
\t | 制表 | \u009 |
\n | 换行 | \u00a |
\r | 回车 | \u00d |
\ " | 双引号 | \u0022 |
\ ’ | 单引号 | \u0027 |
\ \ | 反斜杠 | \u005c |
4.boolean类型
boolean(布尔)类型有两个值:false和true,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。
注释:在C++中,数值甚至指针可以代替boolean指。值0相当于布尔值false,非0值相当于布尔值true。在Java中则不是这样。
标识符必须以字母、下划线_、美元符号$ 开头。标识符其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合。
浮点数使用总结
- 默认是double类型
- 浮点数存在舍入误差,数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
- 避免比较中使用浮点数,需要比较请使用BigDecimal类
请不要这样写:if ( flag == true ),只有新手才那么写。关键也很容易写错成if(flag=true),这样就变成赋值flag 为true而不是判断!老鸟的写法是if ( flag )或者if ( !flag)