目录
前言
现在,假定已经成功地安装了JDK,我们将开始介绍程序设计。本文主要介绍了程序设计的基本概念在Java中的实现方式。
一、一个简单的Java应用程序
public class FirstSample {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
这个程序虽然很简单,但是所有的Java应用程序都具有这种结构,因此还是值得花一些时间来研究的。
首先,Java区分大小写。 如果出现了大小写拼写错误,程序将无法运行。
关键字public称为访问修饰符,这些修饰符用于控制程序的其他部分对这段代码的访问级别。
关键字class表明Java程序中的全部内容都包含在类中。
关键字class后面紧跟类名。Java中定义类名的规则很宽松。名字必须以字母开头,后面可以跟字母和数字的任意组合。长度基本上没有限制。但是不能使用Java保留字(例如public和class)作为类名。标准规范的命名规则是大驼峰命名法:类名是以大写字母开头的名词。如果有多个单词组成,每个单词的第一个字母都应该大写(比如:FirstSample)。
源代码的文件名必须与公共类的名字相同,并用.java作为扩展名。
如果已经正确的命名这个文件,并且源代码中没有任何录入错误,在编译这段源代码之后就会得到一个包含这个类字节码的文件。Java编译器将字节码文件自动的命名为FirstSample.class,并存储在原文件的同一个目录下
运行已编译的程序时,Java虚拟机总是从指定类中的main方法的代码开始执行,因此在类的源文件中必须包含一个main方法。
二、注释
在Java中,有3种标记注释的方法。
最常用的是//,其注释内容从//开始到本行结束。
public class FirstSample {
public static void main(String[] args) {
System.out.println("Hello world");//这是一个注释
}
}
当需要更长的注释时,可以使用/*和*/注释界定符将一段比较长的注释括起来。
public class FirstSample {
/*这是一段很长的注释
并且可以换行
*/
public static void main(String[] args) {
System.out.println("Hello world");
}
}
第3种注释可以用来自动的生成文档。以/**开始,以*/结束。
/**
* 可以自动生成文档
*/
public class FirstSample {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
警告:在Java中,/* */注释不能嵌套。也就是说,不能简单地把代码用/*和*/括起来作为注释,因为这段代码本身可能也包含一个*/界定符。
三、数据类型
Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共有8种基本类型。数据类型都具有默认值(由类来观察)
- 数值型:①4种整型 ②2种浮点型
- 字符型
- 布尔型
1.整型
整型用于表示没有小数部分的数值,允许是负数。
类型 | 存储需求 | 取值范围 |
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 |
默认值为0。通常情况下,int类型最常用。
2.浮点型
浮点型用于表示有小数部分的数值。
类型 | 存储需求 | 取值范围 |
float | 4字节 | 约±3.403 823 47E+38F(有效位为6~7位) |
double | 8字节 | 约±1.797 693 134 862 315 70E+308(有效位为15位) |
默认值为0.0。
3.字符型
char占2个字节,可表示所有语言,\u0000(空格符)为默认值。
char类型的字面量值要用单引号括起来。例如,‘A’是编码值为65的字符常量。他与“A”是不一样的,“A”是包含一个字符A的字符串。char类型的值可以表示为十六进制值,其范围从 \u0000 到 \uFFFF。
除了转移序列\u之外,还有一些用于表示特殊字符的转义序列。
转义序列 | 名称 | Unicode值 |
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\" | 双引号 | \u0022 |
\' | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
4.boolean类型
boolean(布尔)类型有两个值:true和false,用来判定逻辑条件。整型值和布尔值之间不能相互转换。
四、变量与常量
Java使用变量来存储值。常亮就是值不变的变量。
1.声明变量以及变量初始化
在声明变量时,先指定变量的类型,然后是变量名。
一个变量名包含数字、字母、下划线,不能以数字开头,且大小写敏感。变量名推荐使用小驼峰命名法:变量名是以小写字母开头的名词。如果有多个单词组成,每个单词的第一个字母都应该大写(比如:earhPopulation)。
声明一个变量之后,必须适用肤质语言对变量进行显示初始化。
在Java中,可以将声明放在代码中的任何地方,但是尽可能的靠近变量第一次使用的地方,这是一种良好的程序编写风格。
2.常量
在Java中,使用关键字final指示常量。例如:
public class Constants {
public static void main(String[] args) {
final double INCH_DC = 100;
System.out.println(INCH_DC);
}
}
关键字final表示这个变量只能被赋值一次,一旦赋值之后,就不能在更改了。
习惯上常量的命名使用大写字母,下划线分割。
在Java中,经常希望某个常量可以在一个类的多个方法中使用,通常将这些常量称为类常量。可以使用关键字static final设置一个类常量。
class Constans{
public static final double INCH_DC = 100;
public static void main(String[] args) {
System.out.println(INCH_DC);
}
public double test(){
return INCH_DC;
}
}
五、运算符
运算符用于连接值。
1.算术运算符
在Java中,使用+、-、*、/表示加、减、乘、除。使用%表示求余操作。
2.数学函数与常量
在Math类中,包含了各种各样的数学函数。比如计算一个数值的平方根,可以使用sqrt方法:
在Java中,没有幂运算,因此需要借助Math的pow方法:
表示将y的值设置为x的a次幂 。
Math类提供了一些常用的三角函数:
指数函数以及他的反函数:
用于表示π和e常量的近似值:
3.数值类型之间的转换
如图,有6个实线箭头,表示无信息丢失的转换;另外三个虚线箭头,表示可能有精度损失的转换。例如:
在Java中,允许进行double转换成int的这种数值之间的类型转换,当然,有可能会丢失一些信息。这种有可能损失信息的转换要通过强制类型转换来完成。例如:
如果想对浮点数进行舍入运算,就需要使用Math.round方法:
4.关系和boolean运算符
- 检测相等使用 ==
- 检测不相等使用 !=
- <(小于)>(大于)<=(小于等于)>=(大于等于)
- Java支持三元操作符?:
5.位运算符
处理整型类型时,可以直接对组成整型的各个位完成操作。
&(“and”)|(“or”)^(“xor”)~(“not”)
例如,如果n是一个整型变量,而且用二进制表示的n从右往左数第四位为1,则
会返回1,否则返回0;
还有<<和>>运算符可以将位模式左移或者右移。需要建立位模式来完成位掩码时,这两个运算符会很方便。最后>>>运算符会用0填充高位,这与>>不同,他会用符号位填充高位。不存在<<<运算符。
(来自不会敲代码的卑微贝贝)