Java基础部分主要涵盖了数据类型,变量,运算符,分支语句,循环。
{message type="info" content="位宽:表示二进制位数,其中一位代表符号位"/}
{mtitle title="整数型"/}
类型 | 位宽 | 容量 | 范围 | 字节 |
---|---|---|---|---|
byte | 8($2^3$) | $2^7$ | -128 到 127 | 1 |
short | 16($2^4$) | $2^{15}$ | -32,768 到 32,767 | 2 |
int | 32($2^5$) | $-2^{31}$到$2^{31}$-1 | -2,147,483,648 到 2,147,483,647 | 4 |
long | 64($2^6$) | -$2^{64}$到$2^{64}$-1 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 8 |
{mtitle title="浮点型"/}
类型 | 位宽 | 容量 | 范围 | 字节 |
---|---|---|---|---|
float | 32($2^6$) | 约$10^{47}$ | IEEE 754标准 | 4 |
double | 64($2^6$) | 约$10^{308}$ | IEEE 754标准 | 8 |
{mtitle title="字符型"/}
类型 | 位宽 | 容量 | 范围 | 字节 |
---|---|---|---|---|
char | 16($2^4$) | $2^{15}$ | -32,768 到 32,767 | 2 |
{mtitle title="逻辑型"/}
类型 | 位宽 | 容量 | 范围 | 字节 |
---|---|---|---|---|
boolen | 不固定 | 2 | true 或 false | 通常为1 |
示例
//byte类型 8位整数类型,范围从-128到127
byte a = 100;
//short类型 16位整数类型,范围从-32,768到32,767
short b = 10000;
//int类型 32位整数类型,范围从-2^31到2^31-1
int c = 100000;
//long类型 64位整数类型,范围从-2^63到2^63-1
long d = 1000000000L;
//float类型 32位单精度浮点数
float e = 3.14F;
//double类型 64位双精度浮点数
double f = 3.141592653589793;
//char类型 16位Unicode字符
char g = 'A';
//boolean类型 只有两个值:true和false
boolean h = true;
基本数据类型外的所有类型都是引用数据类型
例如:类,接口,对象,数组等
示例
String str = "Hello, World!";
int[] arr = {1, 2, 3, 4, 5};
注意
基本数据类型传值得到的是值的副本
引用数据类型传值得到的是地址值
变量类型的声明与作用域
局部变量
在方法体内声明,只能在该方法内使用
实例变量
在类中,方法、构造函数之外声明,实例变量属于该类的对象,必须创建对象才能调用
静态变量
静态变量属于类,该类不生产对象,通过类名就可以调用静态变量
变量初始化
声明变量时需要指定类型,初始化可以在声明时进行或稍后进行
算数运算符
加+, 减-, 乘*, 除/, 取模%
int a = 10, b = 20;
int sum = a + b; // 加法
int diff = b - a; // 减法
int product = a * b; // 乘法
int quotient = b / a; // 除法
int remainder = b % a; // 取模
关系运算符
等于==, 不等于!=, 大于>, 小于<, 大于等于>=, 小于等于<=
boolean isEqual = (a == b);
boolean isNotEqual = (a != b);
boolean isGreater = (a > b);
boolean isLesser = (a < b);
逻辑运算符
与&&, 或||, 非!
boolean and = (a > 5 && b < 30);
boolean or = (a > 15 || b < 30);
boolean not = !(a > 5);
赋值运算符
基本赋值=, 加等+=, 减等-=, 乘等*=, 除等/=, 取模等%=
int a = 10;
a += 5; // 等同于 a = a + 5
a -= 3; // 等同于 a = a - 3
a *= 2; // 等同于 a = a * 2
a /= 2; // 等同于 a = a / 2
a %= 3; // 等同于 a = a % 3
三元运算符
条件表达式? 表达式1 : 表达式2
int a = 10, b = 20;
int max = (a > b) ? a : b; // 如果a大于b,max等于a,否则max等于b
位运算符
与&, 或|, 异或^, 取反~, 左移<<, 右移>>, 无符号右移>>>
int x = 5; // 0101
int y = 3; // 0011
int and = x & y; // 0001
int or = x | y; // 0111
int xor = x ^ y; // 0110
int not = ~x; // 1010
int leftShift = x << 2; // 10100
int rightShift = x >> 2; // 0001
int unsignedRightShift = x >>> 2; // 0001
{alert type="info"}
在基本数据类型中,同一数据类型中不同数值范围的类型,小范围为大范围赋值存在自动类型提升,反之需要强制类型转换。
{/alert}
条件语句
if-else语句
int age = 20;
if (age >= 18) {
System.out.println("成人");
} else if {
System.out.println("未成年");
} else {
System.out.println("数据错误");
}
switch-case语句
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
default:
System.out.println("其他");
}
新特性
public int getNumberOfWeekday(String day) {
return switch (day) {
case "Monday", "Tuesday", "Wednesday" -> 1;
case "Thursday", "Friday" -> 2;
case "Saturday" -> 3;
case "Sunday" -> 4;
default -> -1;
};
}
double feeRate = switch (transactionType) {
case "DOMESTIC" -> {
double rate = (transactionAmount < 1000) ? 0.01 : 0.005;
yield rate;
}
case "INTERNATIONAL" -> {
double rate = (transactionAmount < 1000) ? 0.02 : 0.015;
yield rate;
}
case "TRANSFER" -> {
double rate = (transactionAmount < 500) ? 0.005 : 0.002;
yield rate;
}
default -> {
yield 0.0; // 为无效的transactionType返回默认费率
}
};
循环语句
for循环
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
while循环
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
do-while循环
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 5);
跳转语句
break语句
用于终止循环或switch语句
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当i等于5时跳出循环
}
System.out.println(i);
}
continue语句
用于跳过当前循环中的剩余语句,并开始下一次循环
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 跳过当前循环的剩余部分
}
System.out.println(i); // 只打印奇数
}
return语句
用于从方法返回值并终止方法的执行
public int add(int a, int b) {
return a + b; // 返回两个数的和
}
/**
* 这是一个Java基础语法的示例类
* 包含变量声明、运算符使用、控制语句等
*/
public class BasicSyntaxExample {
public static void main(String[] args) {
// 变量声明与初始化
int number = 10;
double pi = 3.14159;
boolean isJavaFun = true;
char grade = 'A';
String message = "Hello, Java!";
// 运算符使用
int sum = number + 5; // 加法运算
double product = pi * 2; // 乘法运算
boolean isGreater = number > 5; // 关系运算
boolean isTrue = isJavaFun && (grade == 'A'); // 逻辑运算
// 输出结果
System.out.println("Number: " + number);
System.out.println("Sum: " + sum);
System.out.println("Product: " + product);
System.out.println("Is number greater than 5: " + isGreater);
System.out.println("Is Java fun and grade A: " + isTrue);
System.out.println("Message: " + message);
// 控制语句
if (isJavaFun) {
System.out.println("Java is fun!");
} else {
System.out.println("Java is not fun.");
}
switch (grade) {
case 'A':
System.out.println("Excellent!");
break;
case 'B':
System.out.println("Good!");
break;
case 'C':
System.out.println("Fair");
break;
default:
System.out.println("Invalid grade");
}
// 循环语句
for (int i = 0; i < 5; i++) {
System.out.println("For loop iteration: " + i);
}
int count = 0;
while (count < 5) {
System.out.println("While loop iteration: " + count);
count++;
}
int n = 0;
do {
System.out.println("Do-while loop iteration: " + n);
n++;
} while (n < 5);
// 跳转语句
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 跳出循环
}
System.out.println("Break example: " + i);
}
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 跳过当前循环的剩余部分
}
System.out.println("Continue example: " + i);
}
}
}
© 著作权归作者所有
本文由 趣代码Blog 创作,采用 知识共享署名4.0 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。