Java基础格式
- Java中运行的每一行代码都必须在
class
内。 - 在我们的示例中,我们将类命名为MyClass。类应始终以大写首字母开头。
- 每个Java程序都有一个class 类,该名称必须与文件名匹配,并且每个程序都必须包含main()方法。
- 花括号
{}
标记代码块的开头和结尾。 - 每个代码语句必须以分号
;
结尾。public class MyClass {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
基础输出语句:System.out.println()
public static void main(String[] args) {
System.out.println("Hello World");
}
结果:Hello World
Java注释
// 单行注释
/* 多行注释
多行注释
*/
Java变量
变量类型
- String - 存储文本,例如“Hello”。字符串值用双引号引起来
- int - 存储整数(整数),不带小数,例如123或-123
- float - 存储浮点数,带小数,例如19.99或-19.99
- char - 存储单个字符,例如’a’或’B’。字符值用单引号引起来
- boolean - 存储具有两种状态的值:true或false
创建变量
先声明变量类型,然后再赋值
type variable = value;
类型 变量 = 值;
Final 变量
final int myNum = 15;
//将变量声明为“final”或“constant”,这意味着不可更改和只读
声明多个变量
要声明多个相同类型的变量,请使用逗号分隔的列表:
int x = 5, y = 6, z = 50;
System.out.println(x + y + z);
标识符
- 所有Java 变量必须用唯一的名称标识。这些唯一的名称称为标识符。
- 标识符可以是短名称(如x和y),也可以是更具描述性的名称(age,sum,height)。
注意:建议使用描述性名称,以创建可理解和可维护的代码:
// 很好
int minutesPerHour = 60;
// 可以,但是不太容易理解m的实际意思
int m = 60;
构造变量名称(唯一标识符)的一般规则是:
- 名称可以包含字母,数字,下划线和美元符号
- 名称必须以字母开头
- 名称应以小写字母开头,并且不能包含空格
- 名称也可以以$和_开头(但在本教程中我们将不使用它)
- 名称区分大小写(“myVar”和“myvar”是不同的变量)
- 保留字(例如Java关键字,例如int或boolean)不能用作名称
Java数据类型
如上一章所述,Java中的变量必须是指定的数据类型:
int myNum = 5; // Integer (whole number)整型
float myFloatNum = 5.99f; // Floating point number 浮点型
char myLetter = 'D'; // Character 字符
boolean myBool = true; // Boolean 布尔型
String myText = "Hello"; // String 字符串型
数据类型分为两组:
- 原始数据类型-包括byte,short,int,long, float,double,boolean和char
- 非原始数据类型- 例如String,Arrays 和 Classes
原始数据类型
基本数据类型指定变量值的大小和类型,并且没有其他方法。Java中有八种原始数据类型:
数据类型 | 大小 | 描述 |
---|---|---|
byte | 1 byte | 存储从-128到127的整数 |
short | 2 bytes | 存储从-32,768到32,767的整数 |
int | 4 bytes | 存储从-2,147,483,648到2,147,483,647的整数 |
long | 8 bytes | 存储从-9,223,372,036,854,775,808到9,223,372,036,854,775,807的整数 |
float | 4 bytes | 存储小数。 足以存储6到7个十进制数字 |
double | 8 bytes | 存储小数。 足以存储15个十进制数字 |
boolean | 1 bit | 存储false或true值 |
char | 2 bytes | 存储单个字符/字母或ASCII值 |
非原始数据类型称为引用类型,因为它们引用对象。
Boolean表达式
一个Java表达式返回一个布尔值:true或false。
/////
int x = 10;
int y = 9;
System.out.println(x > y); // 返回 true, 因为10大于9
System.out.println(x == 10); // 返回 true, 因为x的值是10 跟它比较值相等。
System.out.println(10 == 15); // 返回 false, 因为10 跟 15 不相等
Java类型转换
类型转换:将一种原始数据类型的值分配给另一种类型
扩大转换(自动)-将较小的类型转换为较大的类型 byte -> short -> char -> int -> long -> float -> double 缩小转换(手动)-将较大的类型转换为较小的类型 double -> float -> long -> int-> char -> short -> byte
扩大转换
将较小尺寸的类型传递给较大尺寸的类型时,将自动完成加宽转换:
public class MyClass {
public static void main(String[] args) {
int myInt = 9;
double myDouble = myInt; // int转double自动转换
System.out.println(myInt); // Outputs 9
System.out.println(myDouble); // Outputs 9.0
}
}
缩小转换
(强制转换)必须通过将类型放在值前面的括号中来手动进行缩小转换:
public class MyClass {
public static void main(String[] args) {
double myDouble = 9.78;
int myInt = (int) myDouble; //手动转换: double 转 int,(强制转换)
System.out.println(myDouble); // Outputs 9.78
System.out.println(myInt); // Outputs 9
}
}
Java运算符
运算符用于对变量和值执行运算。
算数运算符
运算符 | 名字 | 描述 | 例子 |
---|---|---|---|
+ | 加成 | 将两个值相加 | x + y |
- | 减法 | 从另一个减去一个值 | x - y |
* | 乘法 | 将两个值相乘 | x * y |
/ | 除法 | 将一个值除以另一个 | x / y |
% | 模量 | 返回除法余数 | x % y |
++ | 增量 | 将变量的值增加1 | ++x |
— | 减量 | 将变量的值减1 | —x |
逻辑运算符
运算符 | 名字 | 描述 |
---|---|---|
&& | 与 | 如果两个语句都为true,则返回true |
|| | 或 | 如果其中一个语句为true,则返回true |
! | 非 | 反转结果,如果结果为true,则返回false |
关系运算符
运算符 | 名字 | 例子 |
---|---|---|
== | 等于 | x == y |
!= | 不相等 | x != y |
> | 大于 | x > y |
< | 小于 | x < y |
>= | 大于或等于 | x >= y |
<= | 小于或等于 | x <= y |
赋值运算符
运算符 | 例子 | 等价于 |
---|---|---|
= - * / | 加减乘除 | |
+= | x += 3 | x = x + 3 |
-= | x -= 3 | x = x - 3 |
*= | x *= 3 | x = x * 3 |
/= | x /= 3 | x = x / 3 |
%= | x %= 3 | x = x % 3 |
位运算符 | 例子 | 等价于 |
&= | x &= 3 | x = x & 3 (全一为一) |
|= | x |= 3 | x = x | 3 (有一为一) |
^= | x ^= 3 | x = x ^ 3 (相异为一) |
~ | x = ~x | (按位取反) |
>>= | x >>= n | x = x >> n (右移,x=x/2的n次方) |
<<= | x <<= n | x = x << n (左移,x=x*2的n次方) |
Java字符串(String)
字符串用于存储文本。一个String变量包含双引号括起来的字符的集合:
String greeting = "Hello";
字符串方法
注意:Java中的String实际上是一个对象,其中包含可以对字符串执行某些操作的方法。
字符串长度 | 对象名.length() |
---|---|
字符串转大写 | 对象名.toUpperCase() |
字符串转小写 | 对象名.toLowerCase() |
查找字符,返回首次出现索引 | 对象名.indexOf(“预查找字符”) |
字符串串联
+
运算符用于连接两个字符串+
运算符用于数字和字符串,结果也是字符串串联
Java数学Math
Math.min ( x , y ) | 返回x,y中的最小值 |
---|---|
Math.max ( x , y ) | 返回x,y中的最大值 |
Math.abs ( x ) | 返回x的绝对值 |
Math.sqrt ( x ) | 返回x的正平方根 |
Math.random( x , y ) | 返回 [ 0 , 1 )之间的随机数 |
选择结构
if语句
if (condition) {
// 条件(condition)为真时要执行的代码块
}
if else语句
if (condition) {
// 条件为真时要执行的代码块
} else {
// 条件为假时要执行的代码块
}
else if语句
if (condition1) {
// condition1为真执行
} else if (condition2) {
// condition1为假并且condition2为真时执行这里
} else {
// 上面condition1和condition2都为假 将会执行这里
}
简写If … Else(三元运算符)
variable = (condition) ? expressionTrue : expressionFalse;
变量 = 条件 ? 表达式为True : 表达式为False
多分枝选择:Switch
- switch表达式只计算一次
- 将表达式的值与每个case的值进行比较
- 如果匹配,则执行相关的代码块
- 在break和default关键字是可选的
- break:当Java到达一个break 关键字时,它将跳出switch块
- default:当没有case匹配,默认运行的代码块
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
循环结构
While循环
只要指定的条件是true,while循环就会循环遍历代码块
while (condition) {
// 只要condition为true 这里就会执行
}
注意:不要忘记增加条件中使用的变量,否则循环将永远不会结束(变成死循环)!
do/while循环
先执行,后判断条件
do {
// code block to be executed
}
while (condition);
for循环
当您确切知道要遍历一段代码的次数时,请使用for循环而不是while循环 只要指定的条件是true,for循环就会循环遍历代码块
for (statement 1(先执行一次); statement 2(执行条件); statement 3(每次代码块执行后执行)) {
// 执行代码块
}
语法分析
- statement 1 在执行代码块之前执行(仅一次)。
- statement 2 定义了执行代码块的条件。
- statement 3 在每次执行代码块后都会执行(每次)。
for-each循环
专用于循环遍历数组中的元素
for (type variableName : arrayName) {
// 要执行的代码块
}
例:
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (String i : cars) {
System.out.println(i);
}
// output: Volvo
BMW
Ford
Mazda
Break与Continue
Break
用于跳出循环或选择结构
Continue
将中断一次迭代(在循环中),并在循环中继续进行下一次迭代
for (int i = 0; i < 10; i++) {
if (i == 4) {
continue; //跳过4
}
System.out.println(i);
}
output:
0
1
2
3
5
6
7
8
9