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大于9System.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 9System.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.78System.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 blockbreak;case y:// code blockbreak;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: VolvoBMWFordMazda
Break与Continue
Break
用于跳出循环或选择结构
Continue
将中断一次迭代(在循环中),并在循环中继续进行下一次迭代
for (int i = 0; i < 10; i++) {if (i == 4) {continue; //跳过4}System.out.println(i);}output:012356789
