JAVA 语言基础

一、Java简介

Java是由Sun Microsystems(现为Oracle的一部分)于1995年发布的高级编程语言。Java的设计目标是让开发者能够尽可能地编写一次代码,然后在不同的平台上运行,这就是Java的“跨平台”特性。Java应用广泛,从企业级应用到Android应用开发,都有它的身影。

二、Java环境搭建

开始Java编程之旅之前,我们需要先安装Java开发工具包(JDK)和配置环境。你可以从Oracle官网或OpenJDK下载最新的JDK版本,并按照操作系统的指导进行安装和环境变量的配置。安装完成后,通过在命令行输入java -versionjavac -version来验证Java和Java编译器是否已正确安装。

三、Java基本语法

数据类型和变量

Java提供了丰富的数据类型,包括基本数据类型(如int、double、boolean等)和引用数据类型。在Java中,使用变量时需要先声明其类型,然后再赋值。

int a = 10;
double b = 20.0;
boolean c = true;

运算符、运算符优先级

一、Java运算符

Java提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。下面我们来逐一介绍这些运算符。

1. 算术运算符

算术运算符用于执行基本的数学运算,如加法、减法、乘法、除法等。

int a = 10;
int b = 20;
int sum = a + b; // 加法
int difference = a - b; // 减法
int product = a * b; // 乘法
int quotient = a / b; // 除法

2. 关系运算符

关系运算符用于比较两个值之间的关系,如等于、不等于、大于、小于等。

int a = 10;
int b = 20;
boolean isEqual = (a == b); // 等于
boolean isNotEqual = (a != b); // 不等于
boolean isGreaterThan = (a > b); // 大于
boolean isLessThan = (a < b); // 小于

3. 逻辑运算符

逻辑运算符用于连接多个条件判断,如与(&&)、或(||)和非(!)。

boolean a = true;
boolean b = false;
boolean andResult = a && b; // 与
boolean orResult = a || b; // 或
boolean notResult = !a; // 非

4. 赋值运算符

赋值运算符用于给变量赋值,如=、+=、-=等。

int a = 10;
a += 5; // 相当于 a = a + 5,结果为 15
a -= 3; // 相当于 a = a - 3,结果为 12

二、运算符优先级

当一个表达式中包含多个运算符时,我们需要了解它们的优先级来确定计算顺序。以下是Java中运算符的优先级从高到低的顺序:

  1. 括号 ()
  2. 一元运算符(如++、--、!、~、(type))
  3. 算术运算符(*、/、%、+、-)
  4. 移位运算符(<<、>>、>>>)
  5. 关系运算符(<、>、<=、>=、instanceof)
  6. 相等运算符(==、!=)
  7. 位运算符(&、^、|)
  8. 逻辑运算符(&&、||)
  9. 赋值运算符(=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=)
  10. 逗号运算符(,)

需要注意的是,当运算符优先级相同时,Java会按照从左到右的顺序进行计算。例如,a + b * c的计算顺序是先计算b * c,然后再将结果与a相加。如果需要改变计算顺序,可以使用括号。例如,(a + b) * c会先计算a + b,然后再将结果乘以c

流程控制

流程控制语句是Java中用于控制程序执行顺序的语句,包括条件语句(if-else)、循环语句(for、while、do-while)以及switch语句。

一、条件判断——if-else结构

条件判断是最基本的流程控制之一,它允许程序根据不同的条件执行不同的代码段。

if 语句

if语句检查一个布尔表达式,如果为真,则执行代码。

int age = 18;
if (age >= 18) {
    System.out.println("You are an adult.");
}

if-else 语句

if-else语句在表达式为假时执行另一段代码。

if (age >= 18) {
    System.out.println("You are an adult.");
} else {
    System.out.println("You are a minor.");
}
 

二、多重选择——switch-case结构

当需要对一个变量的多个值进行判断时,switch-case结构提供了更加清晰和高效的方式。

char grade = 'B';
switch (grade) {
    case 'A':
        System.out.println("Excellent!");
        break;
    case 'B':
        System.out.println("Good job!");
        break;
    default:
        System.out.println("Try harder.");
        break;
}
 

三、循环结构

循环结构允许我们多次执行相同的代码块。

while 循环

while循环在给定条件为真时重复执行代码。

int i = 0;
while (i < 5) {
    System.out.println(i);
    i++;
}

for 循环

for循环以更简洁的方式执行循环,通常用于遍历数组或集合。

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

do-while 循环

do-while循环至少执行一次代码块,然后只要条件为真,就会继续执行。

int j = 0;
do {
    System.out.println(j);
    j++;
} while (j < 5);
 

四、分支——break和continue

在循环中,有时我们需要提前跳出循环或跳过当前迭代。breakcontinue语句就是为此设计的。

break

break语句用于立即退出循环。

for (int k = 0; k < 10; k++) {
    if (k == 5) {
        break;
    }
    System.out.println(k);
}

continue

continue语句用于跳过当前迭代,继续下一次迭代。

for (int l = 0; l < 10; l++) {
    if (l % 2 == 0) {
        continue;
    }
    System.out.println(l);
}

方法

一、方法的定义

在Java中,一个方法包含方法签名和方法体两部分。方法签名定义了方法的名称、返回类型和参数列表。方法体则是实现特定功能的代码块。 

public static int calculateArea(int length, int width) {
    return length * width;
}

这里,calculateArea是方法名,它接受两个整型参数lengthwidth,返回它们的乘积作为面积。

二、方法的调用

定义方法后,我们可以在程序的其他地方通过方法名和相应的参数调用它。

public static void main(String[] args) {
    int area = calculateArea(5, 10);
    System.out.println("The area is: " + area);
}

main方法中,我们调用了calculateArea方法,并将结果存储在变量area中,然后输出到控制台。

三、方法的重载

Java支持方法重载,这意味着我们可以在同一个类中定义多个同名方法,只要它们的参数列表不同即可。

public static double calculateArea(double radius) {
    return Math.PI * radius * radius;
}
 

现在,我们有了两个名为calculateArea的方法,一个用于计算矩形面积,另一个用于计算圆形面积。这就是方法重载的应用。

四、参数传递

Java方法支持两种参数传递方式:值传递和引用传递。对于基本数据类型(如int、double等),Java使用值传递,即传递变量的副本。对于对象类型,Java使用引用传递,传递的是对象引用的副本。

五、返回类型

Java方法必须指定一个返回类型。如果方法不返回任何值,返回类型应为void。对于返回结果的方法,返回类型可以是任何有效的Java数据类型。

public static boolean isEven(int number) {
    return number % 2 == 0;
}

类与对象

一、类的定义

在Java中,类是创建对象的模板或蓝图。它定义了一组属性(变量)和行为(方法),这些共同描述了对象的状态和功能。

public class Car {
    String color;
    String model;
    int year;

    void accelerate() {
        System.out.println("The car is accelerating.");
    }

    void brake() {
        System.out.println("The car is braking.");
    }
}

这里,我们定义了一个Car类,它有三个属性:colormodelyear,以及两个行为:acceleratebrake

二、对象的创建

对象是通过类的实例化创建的。在Java中,我们使用new关键字来创建一个类的对象。

Car myCar = new Car();
myCar.color = "Red";
myCar.model = "Audi";
myCar.year = 2020;
myCar.accelerate();
myCar.brake();

三、封装

封装是面向对象编程的一大原则,它指的是将对象的状态(属性)和行为(方法)包装在一个类中,并对外部隐藏实现细节。

public class Car {
    private String color;
    private String model;
    private int year;

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    // Similarly, getter and setter methods for model and year...
}

通过使用private访问修饰符,我们可以确保Car类的属性只能通过公共的getter和setter方法访问,从而实现封装。

四、继承

继承允许一个类继承另一个类的属性和方法,这使得代码重用和扩展变得简单。

public class ElectricCar extends Car {
    int batteryCapacity;

    void chargeBattery() {
        System.out.println("Charging the battery.");
    }
}

学习心得

  1. 基础知识的重要性 在学习Java之前,我对计算机编程的了解非常有限。因此,我花了一定的时间学习计算机科学的基础知识,如数据结构、算法和面向对象编程等。这些基础知识对于理解Java语言的特点和编写高效的代码至关重要。

  2. 选择合适的学习资源 在开始学习Java时,我查阅了大量的教材和在线教程。我发现选择合适的学习资源对于提高学习效果非常重要。我建议初学者选择一本经典的Java入门书籍,如《Head First Java》或《Java核心技术》,并结合在线教程和实践项目进行学习。

  3. 动手实践 学习编程最好的方式就是动手实践。在学习Java的过程中,我尽量将学到的知识应用到实际项目中。通过编写小程序和参与开源项目,我逐渐掌握了Java的语法、类库和框架,并提高了自己的编程能力。

  4. 阅读优秀的代码 阅读优秀的代码是提高编程水平的有效途径。在学习Java的过程中,我经常阅读一些开源项目的源代码,如Spring框架和Apache Commons库等。通过阅读优秀的代码,我学会了如何编写可读性高、可维护性强的代码,并了解了设计模式和最佳实践。

  5. 不断学习和进步 Java是一门不断发展的语言,新的版本和技术层出不穷。在学习Java的过程中,我始终保持对新技术的关注,并通过阅读官方文档、参加技术交流会议等方式不断学习和进步。

  • 43
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值