Java初学基础
·
一、Java程序的基本结构
一个最简单的Java程序通常包含一个类定义和一个main方法。
public class HelloWorld { // 定义一个名为HelloWorld的公共类
public static void main(String[] args) { // 程序执行的入口点
System.out.println("Hello, World!"); // 在控制台输出文本
}
}
public class HelloWorld { ... }: 定义了一个类。类名(这里是HelloWorld)必须与文件名(HelloWorld.java)一致。public static void main(String[] args) { ... }: 这是程序的入口方法。Java程序从这里开始执行。System.out.println("Hello, World!");: 用于在控制台输出文本。println会在输出后换行,print则不会。
二、变量声明与数据类型
变量用于存储数据。在Java中,使用变量前需要声明其类型和名称。
int age = 25; // 声明一个整数变量age并初始化为25
double price = 19.99; // 声明一个双精度浮点数变量price
char grade = 'A'; // 声明一个字符变量grade
boolean isJavaFun = true; // 声明一个布尔变量isJavaFun
String name = "Alice"; // 声明一个字符串变量name
常见基本数据类型
int: 整数 (例如:42,-10)double: 双精度浮点数 (例如:3.14,-2.5)float: 单精度浮点数 (声明时需要加f后缀,例如:3.14f)char: 单个字符 (用单引号括起来,例如:'a','$')boolean: 布尔值 (true或false)String: 字符串 (用双引号括起来,例如:"Hello")。注意:String不是基本类型,而是类。
变量命名规则
- 以字母、数字、下划线
_或美元符号$开头。 - 后面可以跟字母、数字、下划线
_或美元符号$。 - 区分大小写。
- 不能是Java关键字(如
int,class,public等)。 - 建议使用驼峰命名法(如
myVariableName)。 - 不可以数字开头
三、运算符
运算符用于对变量和值进行操作。
1. 算术运算符
用于基本的数学运算。
int a = 10;
int b = 3;
int sum = a + b; // 加法, sum = 13
int difference = a - b; // 减法, difference = 7
int product = a * b; // 乘法, product = 30
int quotient = a / b; // 除法 (整数除法), quotient = 3 (注意:不是3.333...)
int remainder = a % b; // 取模 (求余数), remainder = 1
a++; // 等同于 a = a + 1; (后置自增)
++a; // 等同于 a = a + 1; (前置自增)
b--; // 等同于 b = b - 1; (后置自减)
--b; // 等同于 b = b - 1; (前置自减)
2. 关系运算符 (比较运算符)
用于比较两个值,返回布尔结果(true或false)。
int x = 5;
int y = 10;
boolean isEqual = (x == y); // 等于, isEqual = false
boolean notEqual = (x != y); // 不等于, notEqual = true
boolean greaterThan = (x > y); // 大于, greaterThan = false
boolean lessThan = (x < y); // 小于, lessThan = true
boolean greaterOrEqual = (x >= y); // 大于等于, greaterOrEqual = false
boolean lessOrEqual = (x <= y); // 小于等于, lessOrEqual = true
3. 逻辑运算符
用于组合布尔表达式。
boolean a = true;
boolean b = false;
boolean andResult = a && b; // 逻辑与 (AND), 两个都为true才true, andResult = false
boolean orResult = a || b; // 逻辑或 (OR), 一个为true就true, orResult = true
boolean notResult = !a; // 逻辑非 (NOT), 取反, notResult = false
4. 赋值运算符
用于给变量赋值。
int num = 10; // 简单赋值
num += 5; // 等同于 num = num + 5; (加后赋值)
num -= 3; // 等同于 num = num - 3; (减后赋值)
num *= 2; // 等同于 num = num * 2; (乘后赋值)
num /= 4; // 等同于 num = num / 4; (除后赋值)
num %= 3; // 等同于 num = num % 3; (取模后赋值)
5. 位运算符 (了解即可,初学不常用)
直接操作整数的二进制位(&, |, ^, ~, <<, >>, >>>)。
位运算符详解
位运算符是直接对整数在内存中的二进制位进行操作的运算符。它们主要用于底层编程、硬件操作和性能优化场景。
基本位运算符
1. 按位与(&)
- 功能:对两个数的二进制表示的每一位进行比较,当两个对应位都为1时,结果的该位才为1,否则为0
- 示例:
5 & 3 = 1 // 5: 0101 // 3: 0011 // & ---- // 0001 (1) - 应用场景:掩码操作、检查特定位是否设置
2. 按位或(|)
- 功能:对两个数的二进制表示的每一位进行比较,当两个对应位中至少有一个为1时,结果的该位为1
- 示例:
5 | 3 = 7 // 5: 0101 // 3: 0011 // | ---- // 0111 (7) - 应用场景:设置特定位的值
3. 按位异或(^)
- 功能:对两个数的二进制表示的每一位进行比较,当两个对应位不相同时,结果的该位为1
- 示例:
5 ^ 3 = 6 // 5: 0101 // 3: 0011 // ^ ---- // 0110 (6) - 应用场景:交换变量值、加密算法
- 不同为1,相同为0
4. 按位取反(~)
- 功能:对一个数的二进制表示的每一位进行取反操作(0变1,1变0)
- 示例:
~5 = -6 // 5: 0000 0101 // ~: 1111 1010 (-6的补码表示) - 注意:结果与数据类型和位数有关
移位运算符
1. 左移(<<)
- 功能:将数的二进制表示向左移动指定位数,右侧补0
- 示例:
5 << 1 = 10 // 5: 0101 // <<1: 1010 (10) - 效果:相当于乘以2的n次方(n为移动位数)
2. 右移(>>)
- 功能:将数的二进制表示向右移动指定位数
- 对于无符号数:左侧补0
- 对于有符号数:实现定义(通常补符号位)
- 示例:
5 >> 1 = 2 // 5: 0101 // >>1: 0010 (2) - 效果:相当于除以2的n次方(n为移动位数)
复合位运算符
这些运算符将位运算与赋值结合:
&=|=^=<<=>>=
实际应用示例
-
权限控制:
#define READ 0x1 // 0001 #define WRITE 0x2 // 0010 #define EXECUTE 0x4 // 0100 int permissions = READ | WRITE; // 0011 (3) if (permissions & READ) { // 有读权限 } -
快速乘除:
int x = 10; x = x << 1; // 相当于 x * 2 x = x >> 2; // 相当于 x / 4 -
交换变量:
void swap(int *a, int *b) { *a ^= *b; *b ^= *a; *a ^= *b; }
注意事项
- 移位运算的位数不应超过或等于操作数的位数(如32位int不应移位≥32位)
- 右移有符号数的行为是实现定义的
- 位运算通常只适用于整数类型
- 注意运算符优先级,必要时使用括号
位运算虽然强大,但在现代编程中应谨慎使用,优先考虑代码可读性,除非确实需要性能优化或底层操作。
四、基本控制流语句
1. if-else 条件语句
根据条件决定执行哪段代码。
int score = 85;
if (score >= 90) {
System.out.println("优秀!");
} else if (score >= 80) {
System.out.println("良好!"); // 这个会被执行
} else if (score >= 60) {
System.out.println("及格!");
} else {
System.out.println("不及格!");
}
2. switch 语句 (适用于等值判断)
根据一个变量的不同取值执行不同分支。
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break; // break防止执行下一个case
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三"); // 这个会被执行
break;
// ... 其他case
default:
System.out.println("无效的日期");
}
3. 循环语句
while循环: 当条件为真时重复执行代码块。
int count = 0;
while (count < 5) {
System.out.println("Count is: " + count);
count++; // 改变循环条件变量
}
do-while循环: 先执行一次代码块,然后检查条件。至少执行一次。
int count = 0;
do {
System.out.println("Count is: " + count);
count++;
} while (count < 5);
for循环: 最常用的循环,在头部声明循环变量、条件和步进。
for (int i = 0; i < 5; i++) { // 初始化i=0; 条件i<5; 每次循环后i增加1
System.out.println("i is: " + i);
}
4. break 和 continue
break: 立即跳出当前循环或switch语句。continue: 跳过当前循环的剩余部分,直接进入下一次循环。
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当i等于5时,跳出整个循环
}
if (i % 2 == 0) {
continue; // 如果i是偶数,跳过本次循环的剩余代码,进入下一次循环
}
System.out.println(i); // 只会打印奇数,并且遇到5就停止了
}
五、注释
注释用于解释代码,不会被编译器执行。
// 这是单行注释
/*
这是
多行
注释
*/
/**
* 这是文档注释,常用于生成API文档
* @param args 命令行参数
*/
希望这个概述能帮助你开始学习Java!练习是掌握的关键,多动手写代码吧。
更多推荐

所有评论(0)