Java语言的一些基础知识(上)
目录
注释
数据类型
变量与常量
运算符
一个简单的Java程序必备知识
先来看一个最简单的Java应用程序,在我们开始学习java这门语言的时候几乎都会遇到
public class FirstSample{
public static void main(String[] args){
System.out.println("We will not use 'Hello,World!'");
}
}
这个程序是非常简单的,但麻雀虽小五脏俱全嘛,所有的Java应用程序都有这样的结构,下面我们对它进行分析:
注意:Java语言严格区分大小写
- 关键字public称为访问修饰符
- 关键字class表明Java程序的全部内容都包含在类中
- class后面跟着的是类名,类名必须以字母开头。一个类名由多个单词组成,其中每个单词的首字母大写这种命名方式称之为驼峰命名法
- 源码的文件名必须与公共类的类名相同,并以 .java 作为扩展名
- 如果已经正确命名好源文件(.java)后,编译源代码会在源文件同目录下产生一个字节码文件(.class)
- 点号(.)的作用时调用方法
每个Java应用程序都必须有一个main方法
我也是第一次使用Typora这款编辑器,在编辑的时候碰到无序列表完成后按回车换行会出现自动缩进的情况,这里给出一个解决办法: 用shift+tab键缩进
注释
Java语言给出了两种种注释方式
单行注释 // :注释内容从//开始到本行结尾
块注释/**/ : 注释内容从以在两个星号之间,这种注释可以用来自动生成文档
注意:/**/不能嵌套使用
数据类型
Java 是一种强类型语言,必须为每一个变量声明一种类型,总共有八种数据类型
类型 | 名称 | 存储 |
---|---|---|
byte | 字节型 | 1字节 |
short | 短整型 | 2字节 |
char | 字符型 | 2字节 |
int | 整型 | 4字节 |
long | 长整型 | 8字节 |
double | 双精度浮点型 | 8字节 |
float | 单精度浮点型 | 8字节 |
boolean | 布尔型 | 无明确答案 |
- 在Java中所有的数值类型占用的字节数与平台无关
- 长整型数值有一个后缀L或l,十六进制数值有一个前缀0x或0X,八进制有一个前缀0
- float类型的数值有一个后缀F或f,没有后缀的浮点数值总是默认为double类型,也可以在浮点类型后面添加D或d
- 用十六进制表示浮点数数值时,使用p表示指数而不是e,其中指数采用十进制,尾数采用十六进制
char类型的转义字符:
转义序列 | 名称 |
---|---|
\b | 退格 |
\t | 制表 |
\n | 换行 |
\r | 回车 |
\" | 双引号 |
\’ | 单引号 |
\\ | 反斜杠 |
char类型的值可表示十六进制,其范围从\u0000到\uFFFF,所以要注意\u的使用
变量与常量
声明变量
在声明变量时,先声明变量类型,然后再给出变量名
double belle;
int value;
boolean done;
每个声明都必须以分号结尾,变量名中所有的字符都是有意义的,并且大小写敏感
可以在一行中声明多个变量,但是不提倡这种风格,逐一声明每一个变量可以提高程序的可读性
变量初始化
声明变量后,必须用赋值语句对变量进行显式初始化
double value;
System.out.println(value);//这是错误的
常量
在java中,利用关键字final指示常量。
关键字final表示这个变量只能赋值一次,一旦被赋值就不可以更改,习惯上常量名使用全大写
final double CM_PER = 2.55;
public static final double CM_PER = 2.55;/*定义类常量,用public修饰后表示其他类的方法也可 以使用这个常量*/
类常量定义在main函数的外部
枚举类型
枚举类型包含有限个命名的值,变量的取值在这有限个范围内
例如:销售的服装有多种尺码:S,M,L,X
enumerate Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};//自定义枚举类型
Size s = Size.MEDIUM;//声明这种类型的变量
运算符
算术运算符
使用算术运算符 +,-,*,/ 来表示加减乘除运算。
当参与 / 运算的两个操作数都是整数时,表示整数除法;否则表示浮点数除法
整数的取模运算(有时也称取余)操作用 % 表示
整数被零除将会产生一个异常,而浮点数被零除将会产生无穷大或NaN的结果
数学函数与常量
在Math类中,包含了各种各样样的数学函数
要想计算一个数的平方根,可以使用sqrt方法:
Math.sqrt(变量名);
Java还提供了两个用于表示 π 和 e 常量的最接近的近似值:
Math.PI和Math.E
不必在数学方法名和常量名前添加前缀
Math
只要在原文件的顶部添加上这行代码就行
import static java.lang.Math.*;
数值类型的强制转换
byte,short和char类型都可以自动转换为int类型
int类型可以自动转换为long型、float型、double型
long型也可以自动转换为float型、double型
float型也可以自动转换为double型
其他不符合以上规则的类型转换可以通过强制转换来完成,会造成精度损失
强制类型转换的语法格式是在圆括号中给出想要转换的目标数值类型
double x = 9.997;
int y = (int)x;//z这时,变量y的值为9,该方式通过截断小数部分将浮点型转换为整型
结合赋值和运算符
在赋值中使用二元运算符(运算符放在等号左边),这是一种简写方式
x += 4;//等价于 x = x + 4
如果运算符得到一个值,其类型与左侧操作数的类型不一致,就会发生强制类型转换
如:
int x; X +=3.5
是合法的,将会把 x 设置成(int)(x+3.5)
自增与自减运算符
Java中借鉴了C/C++中的做法,也提供了自增自减运算符,它们用法几乎差不多
这些运算改变的是变量的值,不能应用在数值本身
关系和boolean运算符
Java中包含丰富的关系运算符:== , > , < , <= , >= 运算符。
逻辑"与"运算符:&&
逻辑"或"运算符:||
逻辑"非"运算符:!=
与运算和或运算中,如果第一个操作数能够确定表达式的值,第二个数就不必运算
Java支持三元操作符 ( ? : )
位运算符
& 和 | 运算符应用在布尔值上时,会得到一个布尔值,这与&&和||运算符很类似,不过& 和 | 运算符不采用“短路”的方式来求值
括号与运算符级别