java基本概念
一、java基础语法篇-基本概念
开始学习java
1、什么是java?
Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言,目前由Oracle拥有。
Java 可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统。
Java 是平台无关的语言,用Java编写的应用程序不用修改就可以在不同的平台上运行。
PS:Java 实现了 “一次编写,到处运行” 的机制。
2、Java 介绍
Java 无处不在,据估计,全球范围内有超过30亿台设备运行Java。
Java 具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点,能够适应几乎任何类型的应用程序的需求。
Java 被用于为谷歌的Android操作系统的应用程序,各种桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
3、编写第一个Java程序
让我们编写一个简单的Java程序,它将在屏幕上打印“Hello World”。
public class MyJavaClass {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
在上面的例子中,我们命名了类 MyJavaClass。您将在后面的章节中了解更多关于类的知识。
在Java中,每个应用程序都有一个入口点或一个起点,这是一个名为main的方法。
提示:
(1)每个Java程序都必须包含一个类。
(2)每个Java程序都从main方法开始。
4、main 方法
在Java中,main方法必须采用此方法签名:
public static void main(String[] args)
- 访问修饰符 public: 表示任何人都可以访问它
- 静态修饰符 static: 表示该方法可以在不创建包含main方法的类的实例的情况下运行
- 返回值类型 void : 表示该方法不会返回任何值
- 方法名 main: main是主方法的默认方法名
提示:方法的参数在方法名称后面的括号内声明,对于main来说,这是一个名为args的字符串数组。
5、System.out.println()
下面是main()方法的主体,用花括号括起来:
主体部分:
{
System.out.println("Hello World!");
}
println 方法在屏幕上打印一行文本。
System 类及其输出流用于访问println方法。
提示:在类,方法和其他流控制结构中,代码总是用花括号括起来{}。
6、Java中的分号
您可以将不同的文本作为参数传递给println方法来进行打印。
public class MyJavaClass {
public static void main(String[] args) {
System.out.println("I am learning Java");
}
}
尝试一下
在Java中,每个代码语句必须以分号结尾。但记住,不要在使用花括号定义的主体后面的方法和类声明之后使用分号。
7、Java 基本语法
在编写Java程序时,我们应注意以下几点:
- 大小写敏感:Java是大小写敏感的,意味着标识符Hello与hello是不同的。
- 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyJavaClass。
- 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
- 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存,文件名的后缀为.java。
- 主方法入口:所有的Java程序由public static void main(String[] args)方法开始执行。
提示:切记Java是大小写敏感的,Java文件名和类名如果不相同则会导致编译错误。
8、Java 标识符
在Java中,类名、变量名以及方法名都被称为标识符。关于Java标识符,我们应该注意以下几点:
- 标识符由字母、美元符、下划线或数字组成。
- 标识符应以字母、美元符、下划线开始。
- Java标识符是大小写敏感的,长度无限制。
- 不能使用关键字作为Java标识符,关键字如class、void等等。
下面是标识符举例:
合法的标识符 | 不合法的标识符 |
age | 123abc |
$salary | -salary |
9、Java关键字
Java关键字是对Java编译器有特殊含义的字符串,是编译器和程序员的一个约定,程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。Java语言共定义了如下所示的关键字。
关键字与含义
这边仅做简单了解有个印象即可, 后面我们将学习到它们。
关键字 | 含义 |
abstract | 表明类或者成员方法具有抽象属性 |
assert | 断言,用来进行程序调试 |
boolean | 基本数据类型之一,声明布尔类型的关键字 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在switch语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 声明一个类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现 |
do | 用在do-while循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口 |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
10、Java 注释
您可以在Java代码中包含注释,这将提高源代码的可读性。
Java 支持单行以及多行注释。注释中的字符将被 Java 编译器忽略。
Java 单行注释以 // 开始,直到行尾为止。例如:
// 这是一个单行注释
x = 10; // 代码后的单行注释
单行注释也能以 /* 开始,以 */为止。例如:
/* 这也是一个单行注释 */
提示:在编写代码时添加注释是一种很好的做法,因为当你需要回顾它时,以及其他人可能需要阅读它时,它们提供了解释和理解。
Java 多行注释
Java 也支持跨多行的注释。
Java 多行注释以 /* 开始,以 */为止。例如:
/* 这是一个
* 多行注释
*/
请注意,Java 不支持嵌套的多行注释,但是,您可以在多行注释中嵌套单行注释。例如:
/* 嵌套单行注释
// 单行注释
*/
Java 文档注释
文档注释允许你在程序中嵌入关于程序的信息。你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中。
文档注释,使你更加方便的记录你的程序信息。
Java 文档注释以 /** 开始,以 */结束。例如:
/** 这是一个文档注释 */
/** 这也是一个
文档注释 */
在开始的 /** 之后,第一行或几行是关于类、变量和方法的主要描述。
之后,你可以包含一个或多个各种各样的@标签。每一个@标签必须在一个新行的开始或者在一行的开始紧跟星号(*).
下面是一个类的说明注释的实例:
/**
* 这个类演示了文档注释
* @author w3cschool
* @version 1.0
*/
11、变量
什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如: 水杯是容器,用来装载水;衣柜用来装载衣裤;那么变量是装载什么的呢?是数据!所以:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。
变量被赋予名称(或标识符),例如:name,age,high等。该名称唯一标识每个变量,用来为变量赋值或检索存储的值。
在Java中,变量有各种类型。下面是一些例子:
- int:整数,如123和-456。
- double:浮点数,可选小数点和小数部分,如3.1416,-11.22。
- String:如 “Hello” 或 “Good Morning!” 等文本。文本字符串括在双引号内。
你可以声明一个类型的变量并赋值。例如:
String name = "Lu";
这将创建一个名为String类型的变量,并为其赋值“Lu”。
提示:一个变量与一个类型相关联,并且只能够存储该特定类型的值。
下面是一个变量声明的例子:
class MyJavaClass {
public static void main(String[] args) {
String name ="Lu";
int age = 26;
double score = 18.9;
char group = 'B';
}
}
char是字符类型,用来定义一个字符。
还有一种类型是布尔类型,它只有两个取值:true 和 false,这种类型只作为一种标志来记录 true/false 情况。
例如:
boolean online = true;
提示:可以使用逗号隔开声明多个同类型变量。例如:int a = 17, b = 30;
12、算术运算符
作为一门计算机语言,Java 也提供了一套丰富的运算符来操纵变量。
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样,主要用于进行基本的算术运算,如:加法、减法、乘法、除法等。
下面列出了所有的算术运算符:
- +(加法):相加运算符两侧的值,如 A + B。
- -(减法):左操作数减去右操作数,如 A - B。
- *(乘法):相乘操作符两侧的值,如 A * B。
- /(除法):左操作数除以右操作数,如 B / A。
- %(取模):左操作数除以右操作数的余数,如 B % A。
- ++(自增): 操作数的值增加1,如 B++ 或 ++B 。
- --(自减):操作数的值减少1,如 B-- 或 --B 。
提示:++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同的。关于自增自减运算符的知识,我们将在后面的内容中进一步介绍。
加法、减法运算符
加法运算符
加法(+) 运算符将运算符两侧的值相加,可以是两个常量,一个常量和一个变量,或一个变量和一个变量。
下面列出了一些例子:
int sum1 = 30 + 20;
int sum2 = sum1 + 10;
int sum3 = sum1 + sum2;
减法运算符
减法(-) 运算符从左操作数减去右操作数。
下面列出了一些例子:
int sum1 = 50 - 20;
int sum2 = sum1 - 10;
int sum3 = sum1 - sum2;
乘法、除法运算符
乘法运算符
乘法(*) 运算符将运算符两侧的值相乘。
下面列出了一些例子:
int sum1 = 50 * 2;
int sum2 = sum1 * 10;
int sum3 = sum1 * sum2;
除法运算符
除法(/) 运算符从左操作数除以右操作数。
下面列出了一些例子:
int sum1 = 50 / 5;
int sum2 = sum1 / 2;
int sum3 = sum1 / sum2;
在上面的例子中,我们将 int 用作数据类型,运算符的结果将是整数。如果你需要检索带有小数点的值,你可以使用 double 数据类型。
取模运算符
取模(%) 运算符用来求余数,从左操作数除以右操作数的余数。
下面是一个例子:
int a = 11;
int b = a % 5; // b为1
在上面的例子中,将11除以5得到商为2,余数为1。因此,将值1赋值给b变量。
13、自增自减运算符
自增(++) 自减(--) 运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。
自增(++) 运算符将操作数的值增加1。下面是一个例子:
int a = 3;
++a; // 自增运算
进行自增运算后的a为4。
自减(--) 运算符将操作数的值减少1。下面是一个例子:
int b = 3;
--b; // 自减运算
进行自减运算后的b为2。
前缀和后缀自增自减
自增和自减运算符都可以使用前缀和后缀两种形式。
前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
下面是一个例子:
int a = 5;
int b = ++a;
首先将a加1,a变为6,然后赋值给b,所以a和b的值现在是6。
后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算 。
下面是一个例子:
int a = 5;
int b = a++;
首先将a赋值给b,然后将a加1,因此a变成6,而b的值是5。
赋值运算符
你可能已经熟悉基本的赋值运算符(=),它将右操作数的值赋给左侧操作数。
例如,在下面的例子中,将值3赋值给一个int类型的a变量。
int a = 3;
Java 支持许多赋值运算符,使编写代码更加容易。下面是一些赋值运算符的介绍。
加和赋值运算符 (+=):
int a1 = 2;
int a2 = 4;
a2 += a1; // 等价于 a2 = a2 + a1;
// 结果a2=6,a1=2
减和赋值运算符(-=):
int a1 = 2;
int a2 = 4;
a2 -= a1; // 等价于 a2 = a2 - a1;
// 结果a2=2,a1=2