Java入门【02】基本程序设计结构01

一个简单的Java应用程序

1 public class FirstSample {
2     public static void main(String[] args) {
3         System.out.println("We will not use 'Hello World'!");
4     }
5 }

public : 访问修饰符 (access modifier)用于控制程序其他部分对这段代码的访问级别。

class :表明Java程序中的全部内容都包含在类中,这里类作为一个加载程序逻辑的容器,程序逻辑定义了应用程序的行为。

FirstSample : 在class后紧跟的是类名。类名必须以字母开头,后面可以跟字母、数字、下划线的任意组合(可以用中文,不建议使用),长度基本上没有限制。但不能使用Java保留字。

类名命名规范:类名以大写字母开头,如果名字由多个单词组成,每个单词第一个字母都应该大写(骆驼命名法)

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

在命令行中运行:

    javac FirstSample.java

    java FirstSample

控制台中将显示:

We will not use ‘Hello World’!

运行已编译的程序时,Java虚拟机将从指定类中的main方法开始执行,因此类的源文件必须包含一个main方法。

像C/C++中一样,用大括号划分程序各个部分(块)。


注释

// 单行注释

/* 多行注释 */


数据类型

Java是强类型语言,这就意味着必须为每一个变量声明一种类型。

在Java种一共有8个基本类型,其中有4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值的boolean类型。

整型

整型用于表示没有小数部分的数值,允许是负数。

int              4字节                    -2 147 483 648 ~ 2 147 483 647
short            2字节                    -32 768 ~ 32 767
long             8字节                    -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
byte             1字节                    -128 ~ 127

在Java中,整型范围与运行Java代码的机器无关。

长整型有一个后缀L或l , 十六进制有个前缀0x或0X,八进制有个前缀0。

从Java7开始,加上前缀0b或0B就可以写二进制数。另外,从Java7开始还可以为数字字面量加下划线,如用 1_000_000表示一百万。下划线只是为了易读性,Java编译器会去除这些下划线。

Java中没有无符号形式的int long short 或 byte类型

浮点类型

浮点类型用于表示有小数部分的数值。Java中有两种浮点类型 float 和 double。

float            4字节                   大约±3.402 823 47E+38F(有效位数6~7位)
double           8字节                   大约±1.797 693 134 862 315 70E+308(有效位数15位)

float类型的数值有个后缀F或f,没有后缀f默认为double类型。

表示溢出的出错的情况的三个特殊的浮点数值:

· 正无穷大              Double.POSITIVE_INFINITY

· 负无穷大              Double.NEGATIVE_INFINITY

· NaN(不是一个数字)    Double.NaN

一个正整数除以0结果为正无穷大。计算0/0或者负数的平方根结果为NaN。

不能检测一个特定值是否等于Double.NaN,但是可以使用Double.isNaN方法。

浮点数不适用于无法接受舍入误差 的金融计算当中。如果在数值计算中不允许有任何舍入误差,应该使用BigDecimal类。

char类型

既可以表示单个字符也可以表示一些Unicode字符。

char类型字面量值要用单引号括起来。例如 ‘A’ 。

char类型的值可以表示为十六进制的值,范围从 u0000 到 uffff 。

除了转义序列u外还有一些表示特殊字符的转义序列。

转义序列还可以出现在加括号的字符常量或字符串之外。例如:public static void main(String u005B u005D args)完全符合语法规则。

要注意注释中的u

// u000a is a new line

boolean类型

布尔类型有两个值,false 和 true , 用来判定逻辑条件,整型和布尔值之间不能互相转换。

在C/C++中可以用数值表示true 或 false ,但是在Java中不行。


变量

变量名:以字母为开头的字母数字下划线的任意组合。大小写敏感没有长度限制。不能使用Java保留字作为变量名。可以在一行中声明多个变量。

变量初始化

声明一个变量后必须用赋值语句对变量进行显式初始化。

错误示例:

int vacationDays;
System.out.println(vacationDays);//ERROR--variable not initialized

合法示例:

int vacationDays;
vacationDays = 12;
System.out.println(vacationDays);

也可以在声明的时候赋值:

1 int vacationDays=12;
2 System.out.println(vacationDays);

常量

在Java中,利用关键字final指示常量。

例如:

 1 public class Constants
 2 {
 3     public static void main(String[]args)
 4     {
 5         final double CM_PER_INCH = 2.54;
 6         double paperWidth = 8.5;
 7         double paperHeight = 11;
 8         System.out.println("Paper size in centimeters:"
 9         +paperWidth*CM_PER_INCH+"by"+paperHeight*CM_PER_INCH);
10     }
11 }

final 表示这个变量只能被赋值一次,一旦被赋值,就不能更改了,习惯上常量名要全大写。

在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常这些常量称为类常量。用static final关键字设置一个类常量。类常量定义于main方法的外部。

运算符

加 +

减 –

乘 *

除 /

当参与/运算的两个操作数都是整数时,表示整数除法,否则表示浮点除法。

整数的取余操作数用%表示。

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

注释:有些处理器使用80位浮点寄存器,增加了中间过程的计算精度
例如 : double w = x*y/z
很多Intel处理器计算x*y将 结果存储在80位的寄存器中,
再除以z,并将结果截断为64位,这样可以得到更加精确的结果,
还能避免产生指数溢出,但是与始终在64位的机器上计算结果不一样,
因此,Java虚拟机对使用strictfp关键字标记的类、方法
使用严格的浮点计算来生成可再生的结果。

数学函数与常量

Math类,包含了各种 数学函数。

平方根:double sqrt(double x)

幂运算: double pow(double x, double y)

解决取余的被除数是负数,导致结果是-1:floorMod(int x , int y)

三角函数:sin 、cos、tan、atan、atan2

指数函数以及它的反函数–自然对数以及以10为底的对数:exp、log、log10

π和e 的近似值:PI、E

数值类型转换

•如果两个操作数中有一个是 double 类型, 另一个操作数就会转换为 double 类型。

•否则,如果其中一个操作数是 float 类型,另一个操作数将会转换为 float 类型。

•否则, 如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型。

•否则, 两个操作数都将被转换为 int 类型。

强制类型转换

强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。例如

1 double x   = 9.997;
2 int nx = (int) x;

如果想对浮点数进行舍人运算, 以便得到最接近的整数, 那就需要使用 Math_ round 方法:

1 double x z 9.997;
2 int nx = (int) Math.round(x)

当调用 round 的时候, 仍然需要使用强制类型转换( int) 其原因 是 round 方法返回的结果为 long 类型,由于存在信息丢失的可能性,所以只有使用显式的强 制类型转换才能够将 long 类型转换成 int 类型。

结合赋值和运算符

可以在赋值中使用二元运算符,这是一种很方便的简写形式。

例如, X += 4;
等价于:x = x + 4;

自增与自减运算符

n++ 与 ++n n– 与 –n

这四个都是增1 或 减一,具体区别在于与赋值运算符结合的时候n++或n–是先把自增之前的值赋给某个变量然后再自增1,而++n和n++是先自增1,然后再给变量赋值。

关系和 boolean 运算符

== 相等

!= 不等

> 大于

< 小于

>= 大于等于

<=小于等于

&& 逻辑与

|| 逻辑或

三元操作符: condition?expression1 : expression2 (可以嵌套)

位运算符

& 按位与 |按位或 ^按位异或 ~按位非

<< 左移 >>右移 >>>高位填0

括号与运算符级别

枚举类型

枚举类型包括有限个命名的值。

例如,enum Size { SMALL, MEDIUM, LARGE, EXTRA.LARCE };

现在,可以声明这种类型的变量: Size s = Size.MEDIUM;

Size 类型的变量只能存储这个类型声明中给定的某个枚举值,或者 null 值,null 表示这 个变量没有设置任何值。

原文地址:https://www.cnblogs.com/smk110/p/12907444.html