《廖雪峰Java教程》——Java快速入门

参考资料:

Java简介

Java 介于编译型语言和解释型语言之间。Java 是将代码编译成一种“字节码”,然后,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果。

第一个Java程序

一个简单的 Java 源代码:

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}

Java规定,某个类定义的 public static void main(String[] args) 是Java程序的固定入口方法。当我们把代码保存为文件时,文件名必须是 Hello.java

Java程序基础

Java程序基本结构

/**
 * 可以用来自动创建文档的注释
 */
public class Hello {
    public static void main(String[] args) {
        // 向屏幕输出文本:
        System.out.println("Hello, world!");
        /* 多行注释开始
        注释内容
        注释结束 */
    }
} // class定义结束
  • 类名推荐使用大驼峰命名法,方法名推荐使用小驼峰命名法;
  • Java 入口程序规定的方法必须是静态方法,方法名必须为 main,括号内的参数必须是 String 数组。

变量和数据类型

Java 的数据类型可以分为基本类型引用类型,基本类型包括:

  • 整型:byteshortintlong
  • 浮点型:floatdouble
  • 字符型:char
  • 布尔型:boolean ,只有 truefalse 两种取值,占存储空间大小没有规定,通常用 4 字节整型表示。

引用类型变量类似 C++ 的指针,存储地址,null 表示空值。

常量用 final 修饰,常量名通常全部大写;var 关键字可以让编译器自动推断变量类型,类似 C++ 的 auto

final double PI = 3.14;
var sb = new StringBuilder();

整数运算

若参与运算的两整型类型不一致,则计算结果为较大类型的整型:

short s = 1234;
int i = 123456;
int x = s + i; // s自动转型为int
short y = s + i; // 编译错误!

浮点数运算

整数除以 0 会报错;浮点数除以 0 会返回特殊值:

double d1 = 0.0 / 0; // NaN
double d2 = 1.0 / 0; // Infinity
double d3 = -1.0 / 0; // -Infinity

浮点型强制转换为整型时,只保留整数部分。如果转型后超过整型的最大表示范围,则返回整型的最大值

布尔运算

boolean b = false;
boolean result = b && (5 / 0 > 0);	// 由于短路运算,整型除以0不会报错

字符和字符串

Java 使用 Unicode 表示字符,占 2 个字节。

字符串类型 String 是引用类型,且不可变

String s1 = "hello";
String s2 = s1;
s1 = "world";	// 此时s2的内容依然为hello

上述代码中,编译器首先创建字符串 hello ,然后让变量 s1 指向它,接着让变量 s2 也指向它;然后,编译器创建字符串 world ,让 s1 指向它,此时 s2 仍然指向原来的 hello

数组类型

数组大小不可变,可以通过索引访问数组元素,超出范围则在运行时报错。

流程控制

输入输出

输出

System.out.printSystem.out.printlnSystem.out.printf

输入

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 创建Scanner对象
        System.out.print("Input your name: "); // 打印提示
        String name = scanner.nextLine(); // 读取一行输入并获取字符串
        System.out.print("Input your age: "); // 打印提示
        int age = scanner.nextInt(); // 读取一行输入并获取整数
        System.out.printf("Hi, %s, you are %d\n", name, age); // 格式化输出
    }
}

if判断

和 C++ 没区别。

switch多重选择

普通 switch 表达式和 C++ 基本相同,区别是变量类型可以为 String

Java 12 提供了一种新的 switch 表达式,该形式只会执行一个分支,不需要 break ,且可以使用返回值:

public class Main {
    public static void main(String[] args) {
        String fruit = "orange";
        int opt = switch (fruit) {
            case "apple" -> 1;
            case "pear", "mango" -> 2;
            default -> {
                int code = fruit.hashCode();
                yield code; // switch语句返回值
            }
        };
        System.out.println("opt = " + opt);
    }
}

While循环

和 C++ 没区别。

do While循环

和 C++ 没区别。

for循环

和 C++ 没区别。

breakcontinue

和 C++ 没区别。

数组操作

遍历数组

便捷方法:使用 Array.toString()

int[] ns = { 1, 1, 2, 3, 5, 8 };
System.out.println(Arrays.toString(ns));
// 输出为 [1,1,2,3,5,8]

数组排序

使用 Array.sort()

int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
Arrays.sort(ns);

多维数组

数组的数组,数组长度不要求相同。

雪峰 Java 教程 Java教程 Java快速入门 Java简介 安装JDK 第一个Java程序 Java代码助手 使用IDE 使用IDE练习插件 Java程序基础 Java程序基本结构 变量和数据类型 整数运算 浮点数运算 布尔运算 字符和字符串 数组类型 流程控制 输入和输出 if判断 switch多重选择 while循环 do while循环 for循环 break和continue 数组操作 遍历数组 数组排序 多维数组 命令行参数 面向对象编程 面向对象基础 方法 构造方法 方法重载 继承 多态 抽象类 接口 静态字段和静态方法 包 作用域 classpath和jar 模块 Java核心类 字符串和编码 StringBuilder StringJoiner 包装类型 JavaBean 枚举类 BigInteger BigDecimal 常用工具类 异常处理 Java的异常 捕获异常 抛出异常 自定义异常 使用断言 使用JDK Logging 使用Commons Logging 使用Log4j 使用SLF4J和Logback 反射 Class类 访问字段 调用方法 调用构造方法 获取继承关系 动态代理 注解 使用注解 定义注解 处理注解 泛型 什么是泛型 使用泛型 编写泛型 擦拭法 extends通配符 super通配符 泛型和反射 集合 Java集合简介 使用List 编写equals方法 使用Map 编写equals和hashCode 使用EnumMap 使用TreeMap 使用Properties 使用Set 使用Queue 使用PriorityQueue 使用Deque 使用Stack 使用Iterator 使用Collections IO File对象 InputStream OutputStream Filter模式 操作Zip 读取classpath资源 序列化 Reader Writer PrintStream和PrintWriter 日期与时间 基本概念 Date和Calendar LocalDateTime ZonedDateTime DateTimeFormatter Instant 最佳实践 单元测试 编写JUnit测试 使用Fixture 异常测试 条件测试 参数化测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值