第二章 Java语言基础

【注意】此部分有些知识对于初学者可能看不懂,不要着急,可以跳过看不懂的,后面的篇章会继续讲解

2.1 标识符与关键字

2.1.1 标识符

在Java中,标识符是用来表示变量、方法、类、接口等命名的符号。而关键字是Java语言中预定义的具有特殊含义的保留字,不能用作标识符

以下是Java标识符的一般规则

  • 标识符可以由字母(A-Z,a-z)、数字(0-9)、下划线(_)和美元符号($)组成。
  • 标识符必须以字母、下划线或美元符号开头,不能以数字开头。
  • 标识符区分大小写,例如"myVariable"和"myvariable"是不同的标识符。

2.1.2 关键字

关键字是Java语言的一部分,具有特殊的语法和语义,不能用作标识符。因此,在编写Java代码时,需要避免使用关键字作为标识符。

以下是Java的一些关键字(保留字):

  • 基本数据类型:boolean、byte、short、int、long、float、double、char
  • 控制流程:if、else、switch、case、default、while、do、for、break、continue、return
  • 类和对象:class、interface、extends、implements、new、this、super、instanceof、static、final、abstract
  • 异常处理:try、catch、finally、throw、throws
  • 访问修饰符:public、protected、private
  • 其他:void、null、true、false、package、import、synchronized、volatile

2.2 变量

在Java中,变量是用于存储数据的内存位置,可以通过标识符来引用和操作。以下是关于Java变量的一些总结:

2.2.1 变量类型

  • 基本数据类型:Java提供了一些基本的数据类型,如整数类型(byte、short、int、long)、浮点数类型(float、double)、字符类型(char)、布尔类型(boolean)等。
  • 引用类型:引用类型包括类、接口、数组等,需要使用关键字new来创建对象,然后将对象的引用赋给变量。

2.2.2 变量声明和初始化

  • 变量声明:在使用变量之前,需要先声明变量,指定变量的类型和名称。例如:int age;
  • 变量初始化:可以在声明变量的同时进行初始化,或者在后续的代码中给变量赋初值。例如:int age = 20; 或者 age = 20;

2.2.3 变量命名规则

  • 变量名由字母(A-Z,a-z)、数字(0-9)、下划线(_)和美元符号($)组成。
  • 变量名必须以字母、下划线或美元符号开头,不能以数字开头。
  • 变量名区分大小写。
  • 变量名不能是Java的关键字。

2.2.4 变量作用域[超]

  • 局部变量:在方法、构造方法或代码块中声明的变量称为局部变量。局部变量只在其声明的范围内可见,超出范围后将被销毁。
  • 成员变量:在类中声明的变量称为成员变量,也称为实例变量。成员变量的作用域是整个类,可以被类中的方法访问。

2.2.5 常量

  • 常量是指在程序执行过程中其值不会改变的变量。在Java中,可以使用final关键字来声明常量。例如:final int MAX_VALUE = 100;

需要注意的是,变量在使用之前必须先声明并初始化,否则会导致编译错误。正确地使用变量可以帮助我们存储和操作数据,使程序具备更强的灵活性和可扩展性。

2.3 数据类型

2.3.1 分类

在Java中,数据类型用于定义变量的类型和操作数据的方式。Java提供了两种数据类型:基本数据类型和引用数据类型。

  1. 基本数据类型(Primitive Data Types):
    • 整数类型:byte、short、int、long
    • 浮点数类型:float、double
    • 字符类型:char
    • 布尔类型:boolean
  1. 引用数据类型(Reference Data Types):
    • 类:用于定义对象的属性和方法。
    • 接口:用于定义一组方法的规范。
    • 数组:用于存储多个相同类型的元素。

【注意】基本数据类型是此时的重点,后面会有三章内容对应用数据类型讲解

2.3.2 基本数据类型

  1. 整数类型:
    • byte:8位有符号整数,取值范围为-128到127。
    • short:16位有符号整数,取值范围为-32768到32767。
    • int:32位有符号整数,取值范围为-2147483648到2147483647。
    • long:64位有符号整数,取值范围为-9223372036854775808到9223372036854775807。
  1. 浮点数类型:
    • float:32位单精度浮点数,取值范围为±1.4E-45到±3.4028235E+38,精度为约6-7位小数。
    • double:64位双精度浮点数,取值范围为±4.9E-324到±1.7976931348623157E+308,精度为约15位小数。
  1. 字符类型:
    • char:16位Unicode字符,用单引号括起来。例如:char ch = 'A';
  1. 布尔类型:
    • boolean:表示真或假的值,只有两个取值:true和false。

需要注意的是,基本数据类型在内存中直接存储数据值,而引用数据类型存储的是对象的引用。此外,Java还提供了自动装箱和拆箱的功能,可以在基本数据类型和对应的包装类之间进行转换。

使用适当的数据类型可以提高程序的效率和可读性,并确保正确处理数据。在选择数据类型时,需要根据数据的范围和所需的精度来进行选择。

2.4 运算符

在Java中,运算符用于执行各种操作,例如算术运算、逻辑运算、赋值操作等。以下是一些常见的Java运算符的总结:

2.4.1 算术运算符

    • +:相加
    • -:相减
    • *:相乘
    • /:相除
    • %:取模(取余)
import java.util.Scanner;//导入Scanner包

public class Test2_1{
	public static void main(String args[]){
		Scanner input=new Scanner(System.in);//创建input对象,用来接受键盘输入
		int a,b;
		a=input.nextInt();//用a来接受第一个输入数
		b=input.nextInt();//用b来接受第二个输入数
		System.out.println("a+b = "+(a+b));
		System.out.println("a-b = "+(a-b));
		System.out.println("a*b = "+(a*b));
		System.out.println("a/b = "+(a/b));
		System.out.println("a%b = "+(a%b));
	}
}

2.4.2 关系运算符

    • ==:等于
    • !=:不等于
    • >:大于
    • <:小于
    • >=:大于等于
    • <=:小于等于
import java.util.Scanner;

public class Test2_2{
	public static void main(String args[]){
		Scanner input=new Scanner(System.in);
		int x,y;
		x=input.nextInt();
		y=input.nextInt();
		System.out.println(x>y);
		System.out.println(x<y);
		System.out.println(x>=y);
		System.out.println(x<=y);
		System.out.println(x==y);
		System.out.println(x!=y);
		System.out.println((x>y)&&(x<y));
		System.out.println((x>y)||(x<y));
		System.out.println(!(x<y));
	}
}

2.4.3 逻辑运算符

    • &&:逻辑与
    • ||:逻辑或
    • !:逻辑非

op1

op2

op1&&op2

op1||op2

!op1

true

true

true

true

false

true

false

false

true

false

false

true

false

true

true

false

false

false

false

true

2.4.4 位运算符

    • &:按位与
    • |:按位或
    • ^:按位异或
    • ~:按位取反
    • <<:左移
    • >>:有符号右移
    • >>>:无符号右移

2.4.5 赋值运算符

    • =:简单赋值
    • +=:加并赋值
    • -=:减并赋值
    • *=:乘并赋值
    • /=:除并赋值
    • %=:取模并赋值
    • <<=:左移并赋值
    • >>=:有符号右移并赋值
    • &=:按位与并赋值
    • |=:按位或并赋值
    • ^=:按位异或并赋值

2.4.6 三元运算符

    • condition ? expression1 : expression2:如果条件为真,则返回表达式1的值,否则返回表达式2的值。
public class Test2_3{
	public static void main(String[] args){
		String str=10>5?"so easy":"我不知道,很笨";
		System.out.println("10比5大?"+str);
	}
}

这只是一些常见的运算符,Java还提供了其他类型的运算符,如条件运算符、类型转换运算符等。运算符的使用可以帮助我们进行各种计算和逻辑操作,提高程序的灵活性和功能性。

2.5 类型转换

在Java中,类型转换是将一个数据类型的值转换为另一个数据类型的过程。Java提供了两种类型转换:自动类型转换(隐式转换)和强制类型转换(显式转换)。

2.5.1 自动类型转换(隐式转换)

  • 当把一个数据类型的值赋给另一个数据类型的变量时,如果目标类型的范围大于源类型,则会自动进行类型转换。
  • 例如,将一个整数赋值给浮点数类型的变量,将一个字符赋值给整数类型的变量等。
  • 自动类型转换是安全的,不会导致数据丢失或精度损失
public class Test2_4{
	public static void main(String args[]){
		int y=30;
		float x;
		x=y;
		System.out.println(x);
	}
}

2.5.2 强制类型转换(显式转换)

  • 当需要将一个数据类型的值转换为另一个数据类型的值,但目标类型的范围小于源类型时,需要使用强制类型转换。
  • 强制类型转换需要使用括号将目标类型括起来,并放在需要转换的值之前。
  • 强制类型转换可能会导致数据丢失或精度损失,需要谨慎使用。
public class Test2_5{
	public static void main(String args[]){
		int n=100;
		float m=1.389f;
		System.out.println("转换前");
		System.out.println("n= "+n);
		System.out.println("m= "+m);
		n=(byte)n;
		m=(int)m;
		System.out.println("转换后");
		System.out.println("n= "+n);
		System.out.println("m= "+m);
	}
}

2.5.3 事例

// 自动类型转换(隐式转换)
int num1 = 100;
double num2 = num1; // int自动转换为double

// 强制类型转换(显式转换)
double num3 = 3.14;
int num4 = (int) num3; // double强制转换为int,会丢失小数部分

// 字符串转换为数值类型
String str = "123";
int num5 = Integer.parseInt(str); // 将字符串转换为int类型

// 数值类型转换为字符串
int num6 = 456;
String str2 = String.valueOf(num6); // 将int类型转换为字符串

2.5.4 注意

  • 在进行强制类型转换时,可能会发生数据溢出或精度损失的问题,需要确保转换的安全性。
  • 在字符串和数值类型之间进行转换时,可以使用相关的包装类或工具方法来实现。

类型转换在Java中非常常见,可以帮助我们处理不同类型的数据,并进行合适的计算和操作。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值