Java基础讲解

前言

C语言的学习暂时结束了,本篇将正式开始Java篇,本篇将带着大家认识Java并学习Java中的数据类型和运算符。

1.Java介绍

这一节将简单介绍一下Java,并介绍Java中的注释、标识符和关键字。

1.1 Java是什么及其特点

Java 是一种广泛使用的编程语言和计算平台,具有如下特点:

  1. 面向对象:Java 是一种面向对象的编程语言,支持类和对象的概念,促进代码的重用和模块化。
  2. 跨平台:Java 具有“编写一次,运行到处”的特性。Java 程序编译成字节码后,可以在任何安装了 Java 虚拟机(JVM)的设备上运行。
  3. 安全性:Java 提供了强大的安全机制,适用于网络环境中的应用程序开发。
  4. 多线程:Java 内置了多线程支持,可以轻松地开发并发应用程序。
  5. 垃圾回收:Java 具有自动垃圾回收机制,帮助开发者管理内存,减少内存泄漏的风险。

1.2 Java用途

Java 是一种功能强大且灵活的编程语言,适用于各种类型的应用程序开发

  1. 企业级应用:Java 广泛用于开发企业级应用程序,如银行系统、电子商务平台和企业资源规划(ERP)系统。
  2. 移动应用:Java 是 Android 应用开发的主要编程语言。
  3. Web 应用:Java 可以用于开发动态 Web 应用程序,常用的框架包括 Spring、Struts 和 JavaServer Faces(JSF)。
  4. 大数据:Java 在大数据领域也有广泛应用,如 Hadoop 和 Apache Spark 等大数据处理框架。
  5. 嵌入式系统:Java 也用于开发嵌入式系统,如智能卡和物联网设备。

1.3 Java的发展

1991 年:起源
项目名称:Java 的开发始于一个名为“Green Project”的项目,由 Sun Microsystems 的 James Gosling 和他的团队启动。
初衷:最初的目标是为消费电子设备(如电视机顶盒和遥控器)创建一种便携、跨平台的编程语言。

1995 年:正式发布
Java 1.0:Java 语言的第一个正式版本发布,标志着 Java 的诞生。Sun Microsystems 宣布了“编写一次,运行到处”的口号。
浏览器支持:Netscape Navigator 浏览器开始支持 Java 小程序(Applets),使得 Java 在 Web 开发中迅速流行。

1996 年:Java 1.0.2
JDK 1.0.2:Java 开发工具包(JDK)1.0.2 发布,这是第一个稳定的 Java 开发工具包。

1997 年:Java 1.1
增强功能:Java 1.1 引入了许多新特性,包括内部类、JavaBeans、反射和 JDBC(Java 数据库连接)。

1998 年:Java 2(J2SE 1.2)
重大更新:Java 2 平台(J2SE 1.2)发布,带来了显著的改进和新特性,如 Swing GUI 工具包、集合框架和 Java 插件。

2000 年:J2SE 1.3 和 J2SE 1.4
性能提升:J2SE 1.3 和 J2SE 1.4 版本发布,重点在于性能提升和稳定性改进。
新特性:引入了 Java Web Start、正则表达式和日志记录 API。

2004 年:Java 5(J2SE 5.0)
语言增强:Java 5 带来了许多语言增强特性,如泛型、增强的 for 循环、自动装箱/拆箱、枚举类型和可变参数。
平台名称变更:Java 2 平台更名为 Java 平台,标准版(Java SE)。

2006 年:Java 6(Java SE 6)
性能优化:Java SE 6 进一步优化了性能,并引入了脚本语言支持(JSR 223)和新的桌面 API。

2011 年:Java 7(Java SE 7)
语言改进:Java SE 7 引入了 Project Coin(小语言改进),如 switch 语句支持字符串、try-with-resources 语句和二进制字面量。
Fork/Join 框架:引入了 Fork/Join 框架,用于并行处理任务。

2014 年:Java 8(Java SE 8)
重大更新:Java SE 8 是一个重要的版本,引入了 Lambda 表达式、流 API、默认方法和新的日期时间 API(java.time)。
Nashorn:引入了新的 JavaScript 引擎 Nashorn。

2017 年:Java 9(Java SE 9)
模块化系统:Java SE 9 引入了模块化系统(Project Jigsaw),使得 Java 平台更加模块化和可扩展。
JShell:引入了交互式编程工具 JShell。

2018 年:Java 10 和 Java 11
快速发布周期:Oracle 宣布 Java 进入快速发布周期,每六个月发布一个新版本。
局部变量类型推断:Java 10 引入了局部变量类型推断(var 关键字)。
长期支持:Java 11 是一个长期支持(LTS)版本,带来了许多改进和新特性。
2019 年至今:Java 12 及后续版本
持续改进:Java 12 及后续版本继续引入新特性和改进,如 switch 表达式、文本块、记录类型和模式匹配。

Java 语言自诞生以来,经历了多次重大更新和改进,逐渐成为一种功能强大、跨平台、广泛应用的编程语言。

1.4 Java开发环境的安装

这个部分大家可以自行百度,有很多人发了方法。

1.5 Java的"Hello World"代码

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!"); // 输出 "Hello, World!"
    }
}

运行步骤:

  1. 首先根据教程安装JDK,配置好环境变量
  2. 编写代码:使用文本编辑器(记事本就可以)或集成开发环境(IDE)编写 Java 代码,并保存为 .java 文件。
  3. 编译代码:使用 javac 命令编译 Java 代码,例如 javac HelloWorld.java。
  4. 运行代码:使用 java 命令运行编译后的字节码,例如 java HelloWorld。

1.6 Java的注释

在 Java 编程中,注释是用于解释代码、提供文档和帮助开发者理解代码的文本。Java 支持三种类型的注释:

  1. 单行注释
    单行注释以 // 开头,注释内容从 // 开始到行末结束。单行注释通常用于简短的说明或注释代码的一部分。
// 这是一个单行注释
int a = 5; // 变量 a 被赋值为 5
  1. 多行注释
    多行注释以 /* 开头,以 */ 结束,可以跨越多行。多行注释通常用于较长的说明或注释大段代码。
/*
 * 这是一个多行注释
 * 可以跨越多行
 */
int b = 10;
  1. 文档注释
    文档注释以 /** 开头,以 */ 结束,通常用于为类、方法和字段生成 API 文档。文档注释可以被 Javadoc 工具解析,生成 HTML 格式的文档。
/**
 * 这是一个文档注释
 * 用于描述类、方法或字段
 */
public class Example {

    /**
     * 这是一个方法的文档注释
     * @param x 参数 x 的描述
     * @return 返回值的描述
     */
    public int square(int x) {
        return x * x;
    }
}

注释是编写可读性高、易于维护代码的重要工具,合理使用注释可以显著提高代码的质量和可维护性。

此外,还要注意的几点,在注释时:

  1. 保持同步:确保注释与代码保持同步,避免注释过时或误导。
  2. 避免显而易见的注释:不要注释显而易见的代码,注释应提供额外的信息或解释复杂的逻辑。
  3. 使用一致的风格:在整个项目中使用一致的注释风格和格式。
  4. 注释意图:注释应描述代码的意图,而不仅仅是代码的功能。
  5. 篇幅合理,注释不应该太过繁琐,也不能太过简单。

1.7 标识符

在编程语言中,标识符(Identifier)是用于命名变量、函数、类、方法、常量等编程元素的名称。标识符使得程序员可以通过有意义的名称来引用这些元素,从而提高代码的可读性和可维护性。写代码时,main方法就可以说是一个标识符。

1.7.1 标识符命名规则

  1. 字母、数字和下划线:标识符可以包含字母(大写或小写)、数字和下划线(_)。
  2. 不能以数字开头:标识符不能以数字开头,必须以字母或下划线开头。
  3. 区分大小写:标识符是区分大小写的。例如,myVariable 和 myvariable 是两个不同的标识符。
  4. 不能是关键字:标识符不能是语言的关键字或保留字。例如,在 Java 中,class、public 和 void 等都是关键字,不能用作标识符。
  5. 此外,在Java中美元符号(‘$’)也是合法的,可以放在任何位置

示例:

// 合法的标识符
int myVariable;
double _price;
String firstName;
boolean isAvailable;
final int MAX_COUNT = 100;

// 非法的标识符
int 1stNumber; // 不能以数字开头
String class; // 关键字
boolean is-available; // 包含非法字符 -

1.7.2 Java中标识符的一些命名约定

  1. 变量和方法:使用小写字母开头,后续单词首字母大写(驼峰命名法)。
int myVariable;
void calculateTotal();
  1. 类和接口:使用大写字母开头,后续单词首字母大写(帕斯卡命名法)。
public class MyClass {
    // 类的内容
}

public interface MyInterface {
    // 接口的内容
}
  1. 常量:使用全大写字母,单词之间用下划线分隔。
public static final int MAX_COUNT = 100;
public static final String DEFAULT_NAME = "Unknown";

1.8 关键字

Java 中的关键字(Keywords)是编程语言保留的单词,具有特定的含义和用途。关键字不能用作标识符(变量名、类名、方法名等)。以下是 Java 中的关键字列表及其简要说明:
访问控制关键字
private:声明私有的成员,只有在同一个类中可以访问。
protected:声明受保护的成员,可以在同一个包中或子类中访问。
public:声明公共的成员,可以在任何地方访问。
类、方法和变量修饰符
abstract:声明抽象类或抽象方法,不能实例化。
class:声明一个类。
extends:表示类的继承关系。
final:声明最终类、方法或变量,不能被继承、重写或修改。
implements:声明一个类实现一个接口。
interface:声明一个接口。
native:声明本地方法,用于调用非 Java 代码。
new:创建一个新的对象实例。
static:声明静态成员,属于类而不是实例。
strictfp:限制浮点计算的精度和舍入行为。
synchronized:声明同步方法或代码块,确保线程安全。
transient:声明瞬态变量,不会被序列化。
volatile:声明易失变量,确保变量的可见性和有序性。
控制语句
break:跳出循环或 switch 语句。
case:定义 switch 语句中的一个分支。
continue:跳过当前循环的剩余部分,进入下一次循环。
default:定义 switch 语句中的默认分支。
do:定义 do-while 循环。
else:定义 if 语句的 else 分支。
for:定义 for 循环。
if:定义条件语句。
instanceof:测试对象是否为特定类的实例。
return:从方法中返回。
switch:定义 switch 语句。
while:定义 while 循环。
异常处理
catch:捕获异常。
finally:定义异常处理的最终执行块。
throw:抛出异常。
throws:声明方法可能抛出的异常。
try:定义异常处理块。
基本类型
boolean:布尔类型,值为 true 或 false。
byte:字节类型,8 位整数。
char:字符类型,16 位 Unicode 字符。
double:双精度浮点类型,64 位。
float:单精度浮点类型,32 位。
int:整数类型,32 位。
long:长整数类型,64 位。
short:短整数类型,16 位。
其他关键字
assert:用于断言,调试时检查程序逻辑。
const:保留关键字,未使用。
enum:定义枚举类型。
goto:保留关键字,未使用。
import:导入其他包中的类。
package:定义包。
super:引用父类的成员。
this:引用当前对象的成员。
void:声明方法无返回值。

2. 数据类型,变量

2.1 字面常量

在 Java 中,字面常量(Literal)是指在代码中直接表示固定值的常量。字面常量可以是整数、浮点数、字符、字符串、布尔值等。它们在程序运行时不会改变。
字符常量包括以下几类:

  1. 整数字面常量
    整数字面常量用于表示整数值,可以是十进制、八进制、十六进制或二进制。
  2. 浮点数字面常量
    浮点数字面常量用于表示小数或科学计数法表示的数值。
  3. 字符字面常量
    字符字面常量用于表示单个字符,使用单引号括起来。
  4. 字符串字面常量
    字符串字面常量用于表示一串字符,使用双引号括起来。
  5. 布尔字面常量
    布尔字面常量用于表示布尔值,只有两个值:true 和 false。
  6. 空字面常量
    空字面常量 null 用于表示空引用。
public class LiteralExample {
    public static void main(String[] args) {
        // 整数字面常量
        int decimal = 42; //(十进制)
        int octal = 052; // 42 in octal (八进制)
        int hex = 0x2A; // 42 in hex (十六进制)
        int binary = 0b101010; // 42 in binary (二进制)

        // 浮点数字面常量
        double pi = 3.14159;
        double avogadro = 6.022e23; // 6.022 × 10^23

        // 字符字面常量
        char letter = 'A';
        char newline = '\n'; // 转义字符

        // 字符串字面常量
        String greeting = "Hello, World!";

        // 布尔字面常量
        boolean isJavaFun = true;
        boolean isFishTasty = false;

        // 空字面常量
        String noValue = null;

        // 输出字面常量
        System.out.println("Decimal: " + decimal);
        System.out.println("Octal: " + octal);
        System.out.println("Hex: " + hex);
        System.out.println("Binary: " + binary);
        System.out.println("Pi: " + pi);
        System.out.println("Avogadro: " + avogadro);
        System.out.println("Letter: " + letter);
        System.out.println("Greeting: " + greeting);
        System.out.println("Is Java fun? " + isJavaFun);
        System.out.println("Is fish tasty? " + isFishTasty);
        System.out.println("No value: " + noValue);
    }
}

2.2 数据类型

在 Java 中,数据类型(Data Types)用于定义变量的类型和存储的值。Java 提供了两种主要的数据类型:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。

2.2.1基本数据类型

基本数据类型是 Java 中最基本的数据类型,直接存储值。Java 提供了八种基本数据类型。

  1. 整数类型
    byte:8 位有符号整数,范围为 -128 到 127。
    short:16 位有符号整数,范围为 -32,768 到 32,767。
    int:32 位有符号整数,范围为 -2^31 到 2^31-1。
    long:64 位有符号整数,范围为 -2^63 到 2^63-1。
  2. 浮点类型
    float:32 位单精度浮点数。
    double:64 位双精度浮点数。
  3. 字符类型
    char:16 位 Unicode 字符,范围为 ‘\u0000’ (0) 到 ‘\uffff’ (65,535)。
  4. 布尔类型
    boolean:表示布尔值,只有两个取值:true 和 false。

2.2.2引用数据类型

引用数据类型用于引用对象。引用数据类型包括类、接口和数组。
类和接口这里大家还不熟悉,先不做解释。
数组
数组是存储相同类型元素的容器。数组的大小在创建时确定,不能改变。

int[] numbers = {1, 2, 3, 4, 5};
Arr[] names = {"Alice", "Bob", "Charlie"};

java中String就是一个引用数据类型。

2.3 变量

在 Java 中,变量是用于存储数据的命名内存位置。变量可以存储不同类型的数据,并且可以在程序运行时改变其值,简单点来说,就是会经常改变的量,就像身高,体重。
Java中变量和C语言的形式差不多,不再过多介绍。

2.4 字符串类型

字符串类型是一个引用数据类型,用String来进行定义。字符串在 Java 中是一个非常重要且常用的类型。Java 提供了丰富的字符串操作方法,使得字符串处理变得非常方便。
下面将对字符串进行简单的介绍,详细的内容在后面会进行详细解释。
定义:

String str1 = "Hello";
String str2 = "World";
System.out.println(str1);
System.out.println(str2);
System.out.println(str1+str2);//这里+表示将两个字符串拼接起来

有时候,字符串和整形数字需要相互转换:
这里是整形转字符串

int num = 123;
String str = num + "";
System.out.println("int to String: " + str);

字符串转整形:

String str = "123";
int num = Integer.parseInt(str);
System.out.println("String to int: " + num);

3.运算符

这里运算符的具体和C语言大差不差,不做具体介绍,这里主要介绍C语言中没有的运算符。
在C语言中,位移运算有两个:<<和>>。分别代表左移和右移。
在java中,除了这两个,还有一个:>>>。
这里>>>代表无符号右移,往右移后无论符号位是什么,都补0。

总结

以上就是Java的一些基础内容了,希望大家能对Java有了最基础的了解,如有错误,欢迎大家来纠正。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值