Java程序基本设计结构
1、Java程序基本结构
public class FirstSample {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
- public:访问修饰符,用于控制程序其他部分对代码的访问级别和权限;
- class:Java程序中的全部内容都包含在类中,后跟上类名称;
- 类名称必须以字母开头;
- 类名称可以是字母和数字的任意组合;
- 类名称不能使用Java的关键字和保留字;
注意:源代码文件名必须与公共类的名称相同,否则编译阶段会报错。
1.1、程序的编译和运行
- 编译程序:javac FirstSample.java
- 运行程序:java FirstSample
编译之后,系统会得到一个包含编译文件类字节码的.class文件。并与源文件保存在同一个目录下。运行程序时候,不要添加.class扩展名。
2、数据类型
Java是一种强类型语言,必须为每个变量声明一个类型
Java中一共有8中基本类型,其中:
- 整型:用来表示没有小数部分的数值
1. int:4个字节(最常用)
2. short:2个字节
3. long: 8个字节
4. byte: 1个字节(-128 ~ 127) - 浮点型: 用来表示有小数部分的数值
- double:双精度
- float:单精度
- char类型:表示单个字符
- 布尔值类型:boolean,用来判断逻辑条件,整型和布尔型之间不能互相转换
- true:逻辑判断正确;
- false:逻辑判断正确;
3、变量
在Java中,每一个变量都属于一种类型,在声明时要将变量的所属类型位于变量之前,变量在使用之前必须要进行赋值或初始化。
double salary;
int vacationDays;
boolean flag;
3.1、变量初始化
Java中,使用一个变量之前,必须要对变量进行初始化,否则,Java编译器会报错
public class TestVariable {
public static void main(String[] args) {
double salary;
System.out.println(salary);
/**
* C:\Users\Administrator\Desktop\Java>javac TestVariable.java
* TestVariable.java:5: 错误: 可能尚未初始化变量salary
* System.out.println(salary);
*/
}
}
在Java中使用等号"="来对变量进行赋值操作:
double salary;
salary = 2500.00;
// double salary = 2500.00
System.out.println(salary); //2500.00
4、运算符
在Java中,使用算数运算符+、-、 *、 / 、% 来表示加减乘除和取余(取模)。在进行整数运算时,被0整除将会产生异常,而浮点整数被0整除将会得到无穷大或者NaN。
在赋值的语句中可以采用简化的格式来书写二元算数运算符。
public class TestOperators {
public static void main(String[] args) {
int x = 10;
int y = 2;
System.out.println("x + y = " + (x + y));
System.out.println("x - y = " + (x - y));
System.out.println("x * y = " + x * y);
System.out.println("x / y = " + x / y);
System.out.println("x % y = " + x % y);
// x = x + 2;
x += 2;
System.out.println("现在X的值为:"+x);
// 运行结果:
// x + y = 12
// x - y = 8
// x * y = 20
// x / y = 5
// x % y = 0
// 现在X的值为:12
}
}
4.1、自增运算符和自减运算符
Java中,使用了自增和自减运算符,n++表示将变量n的当前值加1,n--表示将n的当前值-1。运算符有两种形式,一种是前缀,一种是后缀。两种方式都是对变量值加或者减1,但是在表达式中,前缀方式是先进行加减1运算,后缀方式则是先用原来的值运行,然后在加减1。
int m = 7;
int a = 2 * m++;
int b = 2 * ++m;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("m = " + m);
// 运行结果:
// a = 14
// b = 18
// m = 9
4.2、关系运算符与Boolean运算符
Java包含各种关系运算符,其中使用 ==
检测是否相等,使用 !=
检测是否不相等。也用<
、 >
、<=
、 >=
。用 &&
表示逻辑“与”,用 ||
表示逻辑“或”。 &&
和 ||
是按照“短路”的方式来求值的,如果第一个操作已经能够确定表达式的意思,第二操作就不必计算了。此外,Java 还支持三元操作符 ?:
。
三元运算符:
// 条件式 ? 值1 : 值2
condition ? expression1 : expression2
public class TestOperators {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a > b); // false
System.out.println(a < b); // true
System.out.println(a >= b); // false
System.out.println(a <= b); // true
System.out.println(a != b); // true
System.out.println(a > b ? "Helll" : "World"); // World
}
}
5、数值类型之间的转换
类型转换时将一个值从一种类型更改为另一种类型的过程。
如果从低精度数据类型向高精度数据类型转换,则数据永远不会溢出,并且总会转换成功;而把高精度数据向低精度数据类型转换,则必然会有信息丢失,有可能会失败。
在图中,有6个实线箭头表示无信息丢失的转换;有3个虚线箭头,表示可能用精度丢失的转换。
5.1、低精度向高精度数值类型转换
低精度向高精度转换的时候,系统将会自动的执行,因此该种类型的转换也被称为隐式类型转换。
public class TestConver {
public static void main(String[] args) {
byte b = 127;
int i = 150;
float f = 452.12f;
double d = 45.4545;
char c = 10;
System.out.println("byte 类型与 int 类型数据进行计算的结果是:"+ (b + i));
System.out.println("byte 类型与 float 类型数据进行计算的结果是:"+ (b + f));
System.out.println("byte 类型与 char 类型数据进行计算的结果是:"+ (b + c));
System.out.println("double 类型与 char 类型数据进行计算的结果是:"+ (d + c));
}
}
5.2 高精度向低精度类型转换 —— 强制转换
当把高精度的变量的值赋给低精度的变量时,必须使用显示类型转换运算,又称强制类型转换。语法:(类型名称)要转换的值;
int a = (int)456.45;
long l = (long)123.12F;
int b = (int)'d';
System.out.println("a = " + a); //456
System.out.println("l = " + l); //123
System.out.println("b = " + b); //100
当执行强制转换时候可能会导致精度的丢失,此外,只要是boolean类型意外的其他基本类型之间的转换,全部都能以强制类型转换的方法达到。