Java语言的特点
1.简单性
①Java语言的语法与C语言和C++语言很相近,使得很多程序员学起来很容易。
②Java使用接口取代了多重继承,并且取消了指针,因为多重继承和指针会使程序变得复杂。
③Java还会自动地收集内存垃圾,使得内存管理变得更为简单。
④Java还提供了丰富的类库、API文档以及第三方开发包,还有大量的Java开源项目。
2.面向对象
①面向对象是Java语言的基础。
②Java语言提倡“万物皆为对象”,语法中不能在类外面定义单独的数据和函数。
③Java语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。
3.分布性
①Java 语言支持 Internet应用的开发。
②在Java 的基本应用编程接口中就有一个网络应用编程接口,它提供了网络应用编程的类库,包括URL、URLConnection、 Socket 等。
③Java 的 RIM 机制也是开发分布式应用的重要手段。
4.平台无关性
①平台无关性的具体表现在于,Java是“一次编写,到处运行(Write Once,Run any Where)”的语言,因此采用Java语言编写的程序具有很好的可移植性,而保证这一点的正是 Java 的虚拟机机制。
②在引入虚拟机之后,Java语言在不同的平台上运行不需要重新编译。
5.多线程
①在Java语言中,线程是一种特殊的对象,它必须由Thread类和它的子类来创建。
②Java 支持多个线程同时执行,并提供多线程之间的同步机制。任何一个线程都有自己的run()方法,要执行的方法就写在 run() 方法体内。
Java执行流程
1.Java程序运行的过程必须先经过编译,然后解释运行。
2.任何一种可以运行Java程序的软件均可看成“Java虚拟机”(JVM,Java Virtual Machine),如浏览器与Java的开发工具等皆可视为一部JVM
3.“编写一次,到处运行”
用户使用任何一种Java编译器将Java源程序(.java)编译成字节码文件(.class)后,无论使用那种操作系统,都可以在含有JVM的平台上运行。
选择结构
一、if分支语句
1.简单if语句
if(布尔表达式){
语句;
}
2.双分支语句
if(布尔表达式){
语句1;
}else{
语句2;
}
3.多分支if语句
if(表达式1){
语句1;
}else if(表达式2){
语句2;
···
}else if(表达式m){
语句m;
}else{
语句n;
}
二、switch多分支语句
switch结构也是多分支结构,它通过switch表达式的值与多个不同值进行比较,选择相应的case语句来处理多个选择。
switch(表达式){
case 常量1:
语句1
[break;]
case 常量2:
语句2
[break;]
···
case 常量n:
语句n
[break;]
default:
语句n+1
[break;]
}
①switch后的表达式为整型(long除外)、字符型、字符串和枚举类型。
②当表达式的值与case后的常量表达式的值相等时,则执行该case后的语句序列。执行完后退出switch语句,跳转到整个switch语句后的下一个语句执行。如果所有的case语句的常量表达式的值与switch之后的表达式不匹配,则执行default之后的语句序列。
③各case语句之后的常量表达式的值不能相同。
④如果某个case语句最后的break语句被省略,则执行完该case语句之后,系统则会继续执行下一个case语句。
⑤多个case语句可以共用一组执行语句。
三、分支嵌套
分支中包含分支
循环结构
一、while语句、do···while语句
1.在编写程序过程中,往往出现相同类型操作需要重复出现,如实现1+2+···+100,则需要做99次加法,这类问题使用循环语句解决,可以使问题变得更简单。即循环语句用于实现语句块的重复执行。
2.根据所处理问题的具体情况,Java中提供了四种不同的循环机制:while循环、do···while循环、for循环和foreach循环。
3.先判断,后执行语句。
循环体可能一次也不执行
循环次数:0-n
while(条件表达式){
语句
}
4.先执行语句,后判断。
循环体最少执行一次
循环次数:1-n
do{
语句
} while(条件表达式);
二、for循环语句
for循环通常用于已知循环次数的情况,使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。
三、break和continue语句
1.break语句
for(...)
{
for(...)
{
... ...
}
... ...
}
说明:break语句用于跳出本层循环,进入外层循环;在循环语句中常与条件语句一起使用。
2.continue语句
for(...)
{
for(...)
{
... ...
continue;
... ...
}
... ...
}
说明:用于终止本次循环,跳过该循环体中位于continue后面的语句,进入下次循环;用于循环语句中,类似于break语句,常与条件语句一起使用。
四、循环嵌套
在一个循环体内又出现有一个或多个完整的循环结构则称为循环嵌套。
do-while、while、for三种循环方式可以相互构成循环嵌套。
数组
一、什么是数组
在执行程序的过程中,经常要储存大量相同类型的数据。Java和其他编程语言一样提供了数组来存储这些数据。
1.数组是一组具有相同类型和名称的变量的有序集合。
2.组成数组的这些变量称为数组的元素,一个数组可以含有若干个元素。
3.下标也叫索引(Index),用来指出某个元素在数组中的位置。
4.数组中第一个元素的下标默认为0,第二个元素下标为1,依次类推,如果某一数组有n个元素,则其最大下标为n-1。
二、一维数组
1.一维数组的创建
语法格式
数据类型[]数组名 = new 数据类型[长度];
或者:
数据类型[]数组名;
数组名=new 数据类型[长度];
2.一维数组的初始化
为数组元素赋初值的语法形式:
数据类型[] 数组名 = new 数据类型[]{初值列表};
数据类型[] 数组名 = new {初值列表};
例如:
注意:使用初始化数组语句,必须将声明、创建和初始化数组都放在一条语句中,将它们分开会产生语法错误。
3.数组元素的引用
①使用数组名与下标(索引)可以唯一确定数组中的某个元素,从而实现对该元素的访问。
②在访问数组元素时,要注意不要使下标越界。
下标越界出错信息:
三、二维数组
1.二维数组的创建
语法格式
数据类型符[][]数组名 = new 数据类型符[长度1][长度2];
或者:
数据类型符[][]数组名;
数组名=new 数据类型符[长度1][长度2];
2.二维数组的初始化
为数组元素赋初值的语法形式
数据类型符[][]数组名 = new 数据类型符[][]{{初值列表1},...,{初值列表n}}
数据类型符[][]数组名={{初值列表1},...,{初值列表n}}