C语言的学习暂时结束了,本篇将正式开始Java篇,本篇将带着大家认识Java并学习Java中的数据类型和运算符。
这一节将简单介绍一下Java,并介绍Java中的注释、标识符和关键字。
Java 是一种广泛使用的编程语言和计算平台,具有如下特点:
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 语言自诞生以来,经历了多次重大更新和改进,逐渐成为一种功能强大、跨平台、广泛应用的编程语言。
这个部分大家可以自行百度,有很多人发了方法。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!"); // 输出 "Hello, World!"
}
}
运行步骤:
在 Java 编程中,注释是用于解释代码、提供文档和帮助开发者理解代码的文本。Java 支持三种类型的注释:
// 这是一个单行注释
int a = 5; // 变量 a 被赋值为 5
/*
* 这是一个多行注释
* 可以跨越多行
*/
int b = 10;
/**
* 这是一个文档注释
* 用于描述类、方法或字段
*/
public class Example {
/**
* 这是一个方法的文档注释
* @param x 参数 x 的描述
* @return 返回值的描述
*/
public int square(int x) {
return x * x;
}
}
注释是编写可读性高、易于维护代码的重要工具,合理使用注释可以显著提高代码的质量和可维护性。
此外,还要注意的几点,在注释时:
在编程语言中,标识符(Identifier)是用于命名变量、函数、类、方法、常量等编程元素的名称。标识符使得程序员可以通过有意义的名称来引用这些元素,从而提高代码的可读性和可维护性。写代码时,main方法就可以说是一个标识符。
示例:
// 合法的标识符
int myVariable;
double _price;
String firstName;
boolean isAvailable;
final int MAX_COUNT = 100;
// 非法的标识符
int 1stNumber; // 不能以数字开头
String class; // 关键字
boolean is-available; // 包含非法字符 -
int myVariable;
void calculateTotal();
public class MyClass {
// 类的内容
}
public interface MyInterface {
// 接口的内容
}
public static final int MAX_COUNT = 100;
public static final String DEFAULT_NAME = "Unknown";
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:声明方法无返回值。
在 Java 中,字面常量(Literal)是指在代码中直接表示固定值的常量。字面常量可以是整数、浮点数、字符、字符串、布尔值等。它们在程序运行时不会改变。
字符常量包括以下几类:
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);
}
}
在 Java 中,数据类型(Data Types)用于定义变量的类型和存储的值。Java 提供了两种主要的数据类型:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。
基本数据类型是 Java 中最基本的数据类型,直接存储值。Java 提供了八种基本数据类型。
引用数据类型用于引用对象。引用数据类型包括类、接口和数组。
类和接口这里大家还不熟悉,先不做解释。
数组
数组是存储相同类型元素的容器。数组的大小在创建时确定,不能改变。
int[] numbers = {1, 2, 3, 4, 5};
Arr[] names = {"Alice", "Bob", "Charlie"};
java中String就是一个引用数据类型。
在 Java 中,变量是用于存储数据的命名内存位置。变量可以存储不同类型的数据,并且可以在程序运行时改变其值,简单点来说,就是会经常改变的量,就像身高,体重。
Java中变量和C语言的形式差不多,不再过多介绍。
字符串类型是一个引用数据类型,用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);
这里运算符的具体和C语言大差不差,不做具体介绍,这里主要介绍C语言中没有的运算符。
在C语言中,位移运算有两个:<<和>>。分别代表左移和右移。
在java中,除了这两个,还有一个:>>>。
这里>>>代表无符号右移,往右移后无论符号位是什么,都补0。
以上就是Java的一些基础内容了,希望大家能对Java有了最基础的了解,如有错误,欢迎大家来纠正。