一个最简单的Java程序需要三要素:类、主方法、输出语句
// 1. 定义类(public class是固定写法,HelloWorld是自定义类名)
public class HelloWorld {
// 2. 主方法:程序执行的唯一入口
public static void main(String[] args) {
// 3. 输出语句:在控制台打印内容
System.out.println("Hello, CSDN!");
}
}必须初始化
public class VariableDemo {
public static void main(String[] args) {
// 语法:数据类型 变量名 = 初始值;
int age = 20; // 定义并赋值
double salary; // 先定义
salary = 8000.50; // 后赋值
char gender = '男'; // 单引号包裹单个字符
boolean isStudent = true; // 只有true/false两个值
String name = "张三"; // 双引号包裹字符串
// 使用变量
System.out.println("姓名:" + name);
System.out.println("年龄:" + age);
}
}和c大多差不多,稍微记一下就行
数据类型 | 关键字 | 大小 | 取值范围 | 示例 |
|---|---|---|---|---|
字节型 | byte | 1字节 | -128 ~ 127 | byte b = 100; |
短整型 | short | 2字节 | -32768 ~ 32767 | short s = 1000; |
整型 | int | 4字节 | -2³¹ ~ 2³¹-1 | int i = 100000; |
长整型 | long | 8字节 | -2⁶³ ~ 2⁶³-1 | long L = 100L; |
单精度浮点 | float | 4字节 | 约±3.4e38 | float f = 3.14f; |
双精度浮点 | double | 8字节 | 约±1.8e308 | double d = 3.1415926; |
字符型 | char | 2字节 | 0 ~ 65535 | char c = 'A'; |
布尔型 | boolean | 1位 | true/false | boolean flag = true; |
记住大范围转化小范围就行
byte,short,char->int->long->float->double
在同一个表达式中,假如存在多种类型,要转化为表达式中级别最高的那个进行运算
// 自动类型转换(小范围 → 大范围)
int small = 10;
double large = small; // 自动转换,输出10.0
// 强制类型转换(大范围 → 小范围,可能丢失精度)
double pi = 3.14159;
int intPi = (int) pi; // 强制转换,输出3(丢失小数部分)这就和c一样
public class OperatorDemo {
public static void main(String[] args) {
int a = 10, b = 3;
// 1. 算术运算符
System.out.println(a + b); // 13,加
System.out.println(a - b); // 7,减
System.out.println(a * b); // 30,乘
System.out.println(a / b); // 3,除(整数除法)
System.out.println(a % b); // 1,取余
// 2. 比较运算符
System.out.println(a > b); // true
System.out.println(a == b); // false
System.out.println(a != b); // true
// 3. 逻辑运算符
boolean x = true, y = false;
System.out.println(x && y); // false,与(两个都为true才true)
System.out.println(x || y); // true,或(一个为true就true)
System.out.println(!x); // false,非
// 4. 赋值运算符
int c = 5;
c += 3; // 等同于 c = c + 3; 此时c=8
c *= 2; // 等同于 c = c * 2; 此时c=16
// 5. 自增自减
int count = 5;
System.out.println(count++); // 5(先使用,后+1)
System.out.println(++count); // 7(先+1,后使用)
}
}这也和c一样
// 单分支
int score = 85;
if (score >= 60) {
System.out.println("及格了!");
}
// 双分支
if (score >= 90) {
System.out.println("优秀");
} else {
System.out.println("继续努力");
}
// 多分支(else if)
if (score >= 90) {
System.out.println("A");
} else if (score >= 80) {
System.out.println("B");
} else if (score >= 70) {
System.out.println("C");
} else {
System.out.println("D");
}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("其他日子");
}// 1. for循环(明确循环次数)
for (int i = 1; i <= 5; i++) {
System.out.println("第" + i + "次循环");
}
// 输出:第1次循环 ... 第5次循环
// 2. while循环(先判断,后执行)
int j = 1;
while (j <= 3) {
System.out.println("j = " + j);
j++;
}
// 输出:j = 1, j = 2, j = 3
// 3. do-while循环(先执行1次,再判断)
int k = 1;
do {
System.out.println("至少执行一次,k = " + k);
k++;
} while (k <= 0); // 条件为false,但仍会执行一次// break:终止整个循环
for (int i = 1; i <= 10; i++) {
if (i == 5) break; // 当i=5时,跳出循环
System.out.println(i); // 只输出1,2,3,4
}
// continue:跳过本次循环,进入下一次
for (int i = 1; i <= 5; i++) {
if (i == 3) continue; // 当i=3时,跳过这次
System.out.println(i); // 输出1,2,4,5(跳过3)
}这个比c/c++的数组稍微方便点,可以直接得到数组长度length,c++要用vector容器,
定义方法也稍有不同,但也是很好记的new一个空间就行,和c++比较像
public class ArrayDemo {
public static void main(String[] args) {
// 1. 数组的三种定义方式
int[] arr1 = new int[5]; // 长度为5,默认值全为0
int[] arr2 = {1, 2, 3, 4, 5}; // 直接赋值
int[] arr3 = new int[]{10, 20, 30}; // 另一种赋值方式
// 2. 访问与修改数组元素(索引从0开始)
arr1[0] = 100; // 修改第一个元素
System.out.println(arr1[0]); // 输出100
System.out.println(arr2[2]); // 输出3
// 3. 遍历数组(重要!)
int[] scores = {88, 92, 76, 95, 84};
// 方式1:for循环(可操作索引)
for (int i = 0; i < scores.length; i++) {
System.out.println("第" + i + "个元素:" + scores[i]);
}
// 方式2:增强for循环(简洁,只读)
for (int score : scores) {
System.out.println("分数:" + score);
}
}
}Java里叫方法,不叫函数
public class MethodDemo {
public static void main(String[] args) {
// 调用自定义方法
printHello(); // 输出:你好!
int result = add(5, 3); // 调用带返回值的方法
System.out.println("5 + 3 = " + result); // 输出8
boolean isEven = checkEven(10); // 判断奇偶
System.out.println("10是偶数吗?" + isEven); // 输出true
}
// 1. 无参数无返回值的方法
public static void printHello() {
System.out.println("你好!");
}
// 2. 有参数有返回值的方法
public static int add(int a, int b) {
return a + b; // 返回计算结果
}
// 3. 返回布尔值的方法
public static boolean checkEven(int number) {
return number % 2 == 0; // 偶数返回true
}
}这里import就是来导入包的,之后再详细解释,有点类似c的头文件可以这样类比吧
Java里的输入输出感觉比c/c++麻烦点,
下面代码的输入,,利用scanner类创建对象,然后再用对象调用里面next方法,具体代码看下面
import java.util.Scanner; // 必须导入Scanner类
public class InputDemo {
public static void main(String[] args) {
// 创建Scanner对象
Scanner sc = new Scanner(System.in);
System.out.print("请输入您的姓名:");
String name = sc.next(); // 接收字符串
System.out.print("请输入您的年龄:");
int age = sc.nextInt(); // 接收整数
System.out.print("请输入您的身高(m):");
double height = sc.nextDouble(); // 接收小数
System.out.println("--- 用户信息 ---");
System.out.println("姓名:" + name);
System.out.println("年龄:" + age);
System.out.println("身高:" + height + "m");
scanner.close(); // 关闭Scanner(好习惯)
}
}