Java语言的特点
1.简单性
- Java语言的语法与C语言和C++语言很相近,使得很多程序员学起来很容易。
- Java使用接口取代了多重继承,并且取消了指针,因为多重继承和指针会使程序变得复杂。
- Java还会自动地收集内存垃圾,使得内存管理变得更为简单。
- ava还提供了丰富的类库、API文档以及第三方开发包,还有大量Java的开源项目。
2.面向对象
面向对象(OOP)就是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执行流程
- Java程序运行的过程必须先经过编译,然后解释运行.
- 任何一种可以运行Java程序的软件均可看成“Java虚拟机”(JVM ,Java VirtuaMachine),如浏览器与Java的开发工具等皆可视为一部JVM.
2.
- ”编写一次,到处运行“
- 用户使用任何一种Java编译器 将Java源程序(.java)编译成字节码文件(.class)后,无论使用那种操作系统,都可以在含有JVM的平台上运行
Java语法基础
标识符: 用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列。
合法的标识符:
- 由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且首字符不能是数字。
- 不能把java关键字和保留字作为标识符。
- 标识符对大小写敏感。
关键字:Java语言中已经赋予了特定含义的
保留字: const、goto
,Java版本中尚未使用,但以后版本可能会作为关键字使用
变量:程序运行期间可以被改变的量。在程序中使用变量,必须先创建它并为它取一个名字,并且指明它能够存储信息的类型,这称为“变量声明”,也叫容器的创建。
变量的使用:
- 变量的声明:数据类型 变量名
- 变量的赋值:变量名 = 数据;
- 变量的操作:放入打印语句进行输出或者进行运算
Java 中的注释有三种:
- 单行注释
- 多行注释
- 文档注释
数据类型
基本数据类型(8个),也称原始数据类型:
引用数据类型(3种):数组、类、接口
运算符
运算符:一种特殊符号,用以表示数据的运算、赋值和比较数与整数
运算符分类:算术运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符
1.算术运算符
2.赋值运算符
3.逻辑运算符
Java流程控制语句
选择结构
if语句: if(条件表达式){ 一条或多条语句 };
if else语句: if(条件表达式) {语句块1} else {语句块2}
循环结构
在程序中当要重复性的做某项工作时可以使用循环语句,包括:for循环、while循环、do…whil循环。
流程跳转
流程跳转语句:break,continue
- break:在switch中结束case条件判断,在循环体中结束循环
- continue:作用在循环体中,结束循环体的本次循环,而进入下次循环
数组
数组是数据的集合,一个容器,用来存储任何类型的数据,包括原始数据类型和引用数据类型,但是一旦指定了数组的类型之后,就只能用来存储指定类型的数据。
数组声明的三种方式:
- 数据类型[] 数组名 = new 数据类型[长度];
- 数据类型[] 数组名 = {数据,数据,…,数据};
- 数据类型[] 数组名 = new 数据类型长度[] {数据,数据,…,数据};
一维数组:
数组变量的声明:语法:数据类型[] 数组名;
,如:int[] num;
、double[] d;
、String[] str;
数组对象的创建:语法:数组名 = new 数据类型[长度];
,如:num = new int[4];
,数组声明其长度后不可改变
赋值:
语法:数组名[下标] = 数据;
,如:num[0] = 3;
数组元素的使用及遍历:
二维数组:
数组变量的声明:
语法:数据类型[][] 数组名;
,如:int[][] num;
、double[][] d;
、String[][] str;
数组对象的创建:
语法:数组名 = new 数据类型[外长度][内长度];
,如:num = new int[4][3];
,数组声明其长度后不可改变
赋值:
语法:数组名[外下标][内下标] = 数据;
,如:num[0][0]= 3;
数组元素的使用及遍历:
对象与类
对象:客观存在能够相互区分的个体,比如这辆汽车、这个人、这间房子、这张桌子、这株植物、这张支票、这件雨衣。概括来说就是:万物皆对象。
类:若干具有相同属性和行为的对象的群体或者抽象,类是创建对象的模板,由属性和行为两部分组成
类是对象的概括或者抽象,对象是类的实例化。
类的声明
[修饰符] class 类名{//类的声明部分
[成员变量]
[成员方法]
}
成员变量的声明: [修饰符] 数据类型 变量名 [= 初始值];
成员方法的声明:
[修饰符] 返回值类型 方法名([数据类型 参数名,……]){
//方法体,该方法完成的功能代码
}
构造器的声明:
[修饰符] 构造器名([数据类型 参数名,……]){
//构造器完成的功能代码
}
注意:
①构造器名必须和类名一致
②构造器没有返回值类型
③任何类都含有构造器。如果没有显式地定义类的构造器,
④则系统会为该类提供一个默认的无参的构造器。一旦在类中显式地定义了构造器,系统就不会再为这个类提供默认的构造器了。
类的使用
类变量的声明:类名 对象名;
类对象的创建,赋值给变量:对象名 = new 构造器([参数列表]);
对象属性的赋值:属性:对象名.属性名、对象名.属性名 = 数据;
属性和方法的调用:属性:System.out.println(对象名.属性名);方法:对象名.方法名();
成员变量与局部变量:
- 成员变量:声明在类中方法体之外、可以有缺省值、可以使用修饰符。作用域:整个类
- 局部变量:声明在方法体或代码块中、没有缺省值、只能使用final修饰。作用域:当前方法体
参数:参数的本质是特殊的局部变量,只能定义在方法的小括号中
方法的返回值类型:
- 无返回值类型:void,
return;//结束方法体
- 有返回值类型为:数据类型(基本数据类型、引用数据类型),
return 数据;//结束方法体,并且返回一条数据
抽象类
抽象类的概念:
Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。如:Shape类计算周长和面积的方法无法确定,那么就可以将这样的方法声明为抽象的,以便在具体的子类中进行实现。
抽象类的声明: [修饰符] abstract class 类名 [extends 父类名]{类体}
抽象方法的声明: [修饰符] abstract 返回值类型 方法名([参数列表]);
因为抽象方法无法确定具体执行的功能,所有抽象方法没有方法体,需要在小括号后加上分号
抽象类和普通类除了使用abstract修饰外和普通的类相似,抽象类中可以没有抽象方法,但是一旦某个有抽象方法,那么这个类必须被声明为抽象类。
抽象类的使用:
因为抽象类不是一个具体的类,所以无法实例化,但是抽象类可以用于声明变量
抽象类可以被继承,在子类中实现抽象类的所有抽象方法,以达到抽象类的具体化
上面就是我所学到的有关Java知识