We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
创建一个文件HelloWorld.java
HelloWorld.java
public class Welcome { public static void main(String[] args) { String greeting = "Hello World"; System.out.println(greeting); } }
然后在命令窗口执行:
javac Welcome.java
.class
Welcome.class
java Welcome
Hello World
这个程序虽然简单,但也可以看到其中的一些规范。
就没什么好说的了,单行注释用//,多行注释用/*,*/将其包裹。
//
/*
*/
Java是强类型语言,意味着每个变量必须有一个确定的类型。 Java一共有8中基本类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型char,1种用于表示真值的boolean的类型。
char
boolean
java没有无符号类型??? 长整型long有一个后缀L或l(如4000000000L)。十六进制数值有一个前缀0x或0X(如0xCAFE)。 从Java7开始,加上前缀0b或0B就可以写二进制数。例如。0b1001就是9。另外,从Java7开始,还可以位数字字面量加下划线,如用1_999_999表示,更加的易读,编译器会自动去除这些下划线。
java没有无符号类型???
0b1001
浮点类型用于表示有小数部分的数值。有两种类型,float和double: float类型的数值有一个后缀F或f(例如3.14F)。没有后缀F的浮点数值(如3.14)默认为double类型。当然也可以在浮点数值后面添加后缀D或d(如3.14D)。 double的数值精度是float的两倍,绝大部分应用程序都采用double类型。 很多语言的浮点类型都以一定的误差,比如System.out.println(0.3-0.2);将输出0.09999999999999998,而不是我们想象的0.9,这种舍入误差的主要原因是浮点数值采用二进制系统表示。如果我们的系统不允许有任何的误差,就应该使用BigDecimal类,以后会介绍。
float
double
System.out.println(0.3-0.2);
0.09999999999999998
0.9
BigDecimal
char类型用来表示一个字符,例如'A','a'。还有一个特殊符号,比如
所以在写注释或者编码的时候注意\有可能有转义字符,如"\users",会认为不是一个合法的Unicode转义。 char类型和字符串类型不一样,char类型是用单引号包括的,"A"是一个包含一个字符A的字符串,而'A'是一个char类型的字符。
\
boolean类型有两个值:false和true,用于逻辑条件的判断,整型值和布尔值之间不能进行相互转换。
在Java种,每个变量都有一个类型,在声明变量时,类型位于变量之前:
double salary; int counts; long earthPeople;
声明一个变量之后,必须用赋值语句对变量进行显式初始化,不要使用未初始化的变量,如:
int counts; System.out.println(counts); // Error--variable not initialized
要对一个变量进行赋值,也很简单,把值放在=的右侧即可:
=
int counts; counts = 100;
也可以在声明变量的时候直接赋值:
int counts = 100;
在Java种,利用关键字final指示常量,例如:
final
public class Welcome { public static void main(String[] args) { final int ONE_MINUTE_SECONDS = 60; System.out.println(ONE_MINUTE_SECONDS); // output: 60 } }
关键字final表示的常量只能被赋值一次,不可改变的,习惯上,常量名使用全大写。 如果一个常量会在一个类的多个方法种使用,可以称为类常量,可以使用关键字static final设置一个类常量,这样就可以在所有方法种调用:
static final
public class Welcome { public static final int ONE_MINUTE_SECONDS = 60; public static void main(String[] args) { System.out.println("one hour equal " + 60 * ONE_MINUTE_SECONDS + " seconds"); // output: one hour equal 3600 seconds } }
很多其它的语言定义常量使用const关键字,而在Java中const是保留的关键字,必须使用final来定义常量。
使用算术运算符+、-、*、/、%表示加、减、乘、除、取模运算。除法运算的两个操作数都是整数是,结果也是整数,否则就是浮点数。有个细节需要注意的就是,整数被0除会产生一个异常,而浮点数被0除会得到一个无穷大的结果
+、-、*、/、%
经常需要将一种数值类型转换为另一种数值类型。 图中有6个实心箭头,表示无信息丢失的转换,3个虚箭头,表示可有会有精度损失的转换。
前面说到,在必要的时候,int类型的值将会自动地转换为double类型,但另一方面,有时也需要将double转换为int,当然,有可能会丢失一些信息。在这种情况下,我们需要通过强制转换实现这个操作,语法:
double x = 9.997; int nx = (int) x; System.out.println(nx); // output: 9
如果想对浮点数进行舍入运算,那就需要使用Math.round方法:
Math.round
double x = 8.1241D; int nx = (int) Math.round(x); System.out.println(nx); // output: 8
这里仍需要强制转换,因为Math.round()的返回值是long类型的,转换为int会存在信息丢失的可能型,所以需要强制转换。 如果试图将一个数值转换为另一个类型,但是数值又超出了这个类型的范围,结果就会返回一个完全不同的值:
Math.round()
int x = 257; byte y = (byte) x; System.out.println(y); // output: 1
可以在赋值中使用二元运算符,这是一种很方便的简写方式。如:
x += 4 // 等价于 x = x + 4
如果运算符右侧的类型和左侧的不一致,会发生类型转换。如:
int x = 4; x += 3.5; System.out.println(x); // 7 // 等价于 (int)(x + 3.5)
和其它语言一样,自增和自减有两种方式,前缀和后缀。区别就是改变变量的时机不同,如:
int x = 1; y = ++x; // y 是2 z = y++; // z 是2
要检测相等性,使用两个等号==; 要检测不想等,使用!=; 还有其它的>、<、>=、<=。 逻辑运算符&&表示‘与’运算,||表示‘或’运算,!表示‘非’运算符。都遵循短路方式。 另外java也支持三元运算符condition ? expression : expression。
==
!=
>
<
>=
<=
&&
||
!
condition ? expression : expression
The text was updated successfully, but these errors were encountered:
No branches or pull requests
1. 第一个简单的Java应用程序
创建一个文件
HelloWorld.java
然后在命令窗口执行:
javac Welcome.java
会生成一个同名的以.class
文件结尾的文件Welcome.class
。java Welcome
,就会看到输出Hello World
。这个程序虽然简单,但也可以看到其中的一些规范。
2. 注释
就没什么好说的了,单行注释用
//
,多行注释用/*
,*/
将其包裹。3. 数据类型
Java是强类型语言,意味着每个变量必须有一个确定的类型。
Java一共有8中基本类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型
char
,1种用于表示真值的boolean
的类型。3.1 整型
java没有无符号类型???
长整型long有一个后缀L或l(如4000000000L)。十六进制数值有一个前缀0x或0X(如0xCAFE)。
从Java7开始,加上前缀0b或0B就可以写二进制数。例如。
0b1001
就是9。另外,从Java7开始,还可以位数字字面量加下划线,如用1_999_999表示,更加的易读,编译器会自动去除这些下划线。3.2 浮点类型
浮点类型用于表示有小数部分的数值。有两种类型,
float
和double
:float类型的数值有一个后缀F或f(例如3.14F)。没有后缀F的浮点数值(如3.14)默认为double类型。当然也可以在浮点数值后面添加后缀D或d(如3.14D)。
double的数值精度是float的两倍,绝大部分应用程序都采用double类型。
很多语言的浮点类型都以一定的误差,比如
System.out.println(0.3-0.2);
将输出0.09999999999999998
,而不是我们想象的0.9
,这种舍入误差的主要原因是浮点数值采用二进制系统表示。如果我们的系统不允许有任何的误差,就应该使用BigDecimal
类,以后会介绍。3.3 char类型
char类型用来表示一个字符,例如'A','a'。还有一个特殊符号,比如
所以在写注释或者编码的时候注意
\
有可能有转义字符,如"\users",会认为不是一个合法的Unicode转义。char类型和字符串类型不一样,char类型是用单引号包括的,"A"是一个包含一个字符A的字符串,而'A'是一个char类型的字符。
3.4 boolean类型
boolean类型有两个值:false和true,用于逻辑条件的判断,整型值和布尔值之间不能进行相互转换。
4. 变量
在Java种,每个变量都有一个类型,在声明变量时,类型位于变量之前:
4.1 变量的初始化
声明一个变量之后,必须用赋值语句对变量进行显式初始化,不要使用未初始化的变量,如:
要对一个变量进行赋值,也很简单,把值放在
=
的右侧即可:也可以在声明变量的时候直接赋值:
4.2 常量
在Java种,利用关键字
final
指示常量,例如:关键字
final
表示的常量只能被赋值一次,不可改变的,习惯上,常量名使用全大写。如果一个常量会在一个类的多个方法种使用,可以称为类常量,可以使用关键字
static final
设置一个类常量,这样就可以在所有方法种调用:5 运算符
使用算术运算符
+、-、*、/、%
表示加、减、乘、除、取模运算。除法运算的两个操作数都是整数是,结果也是整数,否则就是浮点数。有个细节需要注意的就是,整数被0除会产生一个异常,而浮点数被0除会得到一个无穷大的结果5.1 数值类型之间的转换
经常需要将一种数值类型转换为另一种数值类型。
图中有6个实心箭头,表示无信息丢失的转换,3个虚箭头,表示可有会有精度损失的转换。
5.2 强制类型转换
前面说到,在必要的时候,int类型的值将会自动地转换为double类型,但另一方面,有时也需要将double转换为int,当然,有可能会丢失一些信息。在这种情况下,我们需要通过强制转换实现这个操作,语法:
如果想对浮点数进行舍入运算,那就需要使用
Math.round
方法:这里仍需要强制转换,因为
Math.round()
的返回值是long类型的,转换为int会存在信息丢失的可能型,所以需要强制转换。如果试图将一个数值转换为另一个类型,但是数值又超出了这个类型的范围,结果就会返回一个完全不同的值:
5.3 结合赋值和运算符
可以在赋值中使用二元运算符,这是一种很方便的简写方式。如:
5.4 自增与自减符号
和其它语言一样,自增和自减有两种方式,前缀和后缀。区别就是改变变量的时机不同,如:
5.4 关系和boolean运算符
要检测相等性,使用两个等号
==
;要检测不想等,使用
!=
;还有其它的
>
、<
、>=
、<=
。逻辑运算符
&&
表示‘与’运算,||
表示‘或’运算,!
表示‘非’运算符。都遵循短路方式。另外java也支持三元运算符
condition ? expression : expression
。The text was updated successfully, but these errors were encountered: