Java基础语法
一. 认识Java
-
- 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的。从pc到手机,都有Java开发的程序和游戏,Java程序可以在任何计算机,操作系统和支持的Java的硬件设备上运行。
***
- 2. Java语言
- java 是1995年,[sun公司](https://www.cnblogs.com/gemuxiaoshe/p/10607968.html)推出的一种面向对象的程序设计语言。
- 由詹姆斯.戈士林设计完成,并完成了Java的原始编译器和虚拟机。Java原名oak,在1995年被正式以Java命名发布。詹姆斯.戈士林被称为Java之父。
- Java语言是一种通过解释来执行的语言,其语法与c语言相似。同时其也是一种跨平台的程序设计语言。
- 与c语言相比,Java语言简洁,且提高了可靠性,除去了最大的程序错误根源。并且Java具有较高的安全性。
- Java程序既是编译型的,又是解释型的。**Java程序经过编译转换为一种Java字节码的中间语言,通过Java虚拟机(JVM)将字节码进行解释和运行。编译只进行一次,而解释,在每次运行时都会进行。**
Java程序的编译运行过程图解:
借助Java,程序开发人员可以自由的使用现有的硬件和软件系统平台。Java是独立于平台的,它还可以应用于计算机之外的领域。Java主要在桌面应用开发,嵌入式系统开发,电子商务应用,企业级应用开发,交互式系统应用开发,多媒体系统开发,分布式系统开发,web应用系统
1. **java SE**Java SE是Java的标准版,主要用于企业级分布式的网络程序。包含Java语言基础,JDBC(Java数据库连接性)操作,I/O(输入/输出),网络通信,多线程技术。
java SE结构图:
2.java EE
java EE是Java的企业版,主要用于开发企业级分布式网络程序。其核心是EJB(企业Java组件模型)。
java EE结果图:
3.Java ME
java ME 主要应用于嵌入式系统开发
API(application programming interface,缩写作 API),即应用程序编程接口,JavaAPI文档是java程序开发不可或缺的编程词典。记录了Java中海量的API,主要包括类的继承结构,成员变量和成员方法,构造方法,静态成员的详细和描述信息。
参考文档:
简单,面向对象,分布性,可移植性,解释型,安全性,健壮性,线程性,高性能,动态。
面向对象的:
面向对象是Java语言的基础,也是Java语言的重要特性,它本身就是一种纯面向对象的程序设计语言。Java提出万物皆对象。语法中不能在类外面定义单独的数据和函数。即Java语言的最外部数据类型就是对象,所有的元素都要通过类的对象来访问。
分布性:
Java的分布性包括操作的分布和数据的分布,其中操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别存在不同的主机上面。Java可以通过URL(统一资源定位符)对象访问网络对象,访问方式于访问本地系统相同。
可移植性:
Java 程序具有于体系结构无关的特性,可以方便的移植到网络上的不同计算机中。同时,Java的类库也实现了针对不同平台的接口,使这些类库可以移植。
多线程:
多线程机制能够使应用程序在同一时间并行执行多项任务,而且相应的同步机制可以保证不同线程能够正确地共享数据,使用多线程,可以带来更好的交互能力和实时行为。
详细见 https://cloud.tencent.com/developer/article/1448094
基本数据类型
**整型**
byte(1个字节 表示范围:-2^7 ~ (2^7)-1)
short(2个字节 表示范围:-2^15~(2^15)-1)
int(4个字节 表示范围:-2^31 ~ (2^31)-1)
long(8个字节 表示范围:-2^63 ~ (2^63)-1)
**浮点型**
floot(32位 4个字节)
double(64位 8个字节)
**字符型**
char(16位,2个字节)
**布尔型**
boolean(两个值:true和false)
引用数据类型
数组
类
接口
隐式转换
小类型的数据赋进大类型的变量
**例如:**
byte、short、int、char运算时都转换为int
short s = 1;
s= s+1;`这是错误运算应改成s+=1;
显示转换
小类型的变量=(小类型)大的数据会造成精度的丢失
3.运算符
算数运算符
+
加法 、-
减法、\*
乘法、/
除法
%
取余 ++
自增 --
自减 +
字符连接符(当操作数中只要有一个是String类型,系统会自动将另一个操作数转换成字符串类型,然后进行连接)
赋值运算符
=
关系运算符(结果为boolean类型)
逻辑运算符
位运算
4、标识符
标识符的命名规则
必须以字母、下划线(_)或美元符号($)开头
余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限。标识符中不能有空格。
不能使用Java中的关键字或者保留字做为标识符
类名: Pascal规则 eg:Person StudentDemo
方法名: Camel规则 eg:getAge setUserName
包名: 全部小写 eg:com.neusoft
常量名: 全部大写 eg:MAX_VALUE
1、流程控制语句
条件控制 if-else
if(布尔表达式)
{
//如果布尔表达式为true将执行的语句
}
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}
switch-case
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
循环控制 for
for(初始化; 布尔表达式; 更新) {
//代码语句
}
//增强型 for 循环
for(声明语句 : 表达式)
{
//代码句子
}
while
while( 布尔表达式 ) {
//循环内容
}
do-while
do {
//代码语句
}while(布尔表达式);
6. 数组
详见 https://cloud.tencent.com/developer/article/1448095
1. 数组:数组可以看成多个相同类型的数据的组合,实现对这些数据统一管理
2. 数组的长度:数组中元素的个数
3. 数组的其他基本概念
数组的索引 -- index
数组的类型 -- type
数组的名称 – name
数组的声明
数组类型 数组名
4. 数组的创建
数组名 = new 数据元素类型元素个数
5. 数组的初始化
数组类型 数组名 = { 元素1 ,元素2 ,…}
数组类型 数组名 = new 数据类型 { 元素1 ,元素2 ,…}
6. 数组的访问
Java中,数组元素的下标从0开始
元素的下标可以是整型常量或整型表达式
赋值:数组名[元素下标] = 元素值
取值:数据元素类型 变量名 = 数组名[元素下标]
7. 数组的遍历
for(int i = 0;i<数组长度;i++){
数组名[i];
}
8. 多维数组创建
数组类型[ ] [ ] 数组名
9. 数组的复制
System.arraycopy(source,srcPos,dest,destPos,length)
复制source数组中从下标srcPos开始的length个元素到目标数组dest,并从目标数组的下标为destPos的位置开始储存
source: 源数组
srcPos: 源数组中的起始位置
dest: 目标数组
destPos:目标数组中的起始位置
length: 要复制的数组元素的个数
10. 数组的排序
Arrays.sort(数组名)
11. 对数组排序
Arrays.sort(数组名,fromIndex,toIndex)
对数组从下标为fromIndex到toIndex的数组排序(不包括下标为toIndex的元素)
7. 方法的创建和调用
1. 什么是方法
方法是完成某个功能的一组语句,通常将常用的功能写成一个方法
2. 方法的定义
访问控制符 返回值类型 方法名(参数列表){
方法体
}
3.修饰符:
public 、static 被称为修饰符(详见 https://cloud.tencent.com/developer/article/1482554)
4.返回值类型:
用来说明该方法运算结果的类型。如果返回其他类型,编译就可能出错
5.方法名:
它作为调用时引用方法的标识
6.参数列表:
方法的参数个数可以是0个到多个,每个参数前面要声明参数的数据类型;每个参数要用逗号分开。也可以一个参数都没有。
7. 方法体:
它是一个语句块,执行特定的功能操作。对于有返回值类型的方法,方法体当中最后一个语句是return关键字,它的作用是把方法的执行(运算)结果返回到方法外部。
8.return 表达式 :
这里,进一步分析,return后面的表达式就是方法的返回值。需要注意表达式的类型,必须与方法头中声明的“返回类型”相 匹配。
形式参数:在方法被调用时用于接受外部传入的变量
9.参数类型:
就是该形式参数的数据类型
10. 返回值:
方法在执行完毕后返回给调用它的程序的数据
11. 返回值类型:
方法要返回的结果的数据类型
12. 方法的分类
根据参数个数
无参方法
有参方法
根据返回值类型
有返回值方法
返回值类型可以是基本数据类型,也可以是引用数据类型
无返回值方法
void(void不可以省略,必须要写,用来占位)
13. 方法的调用
方法只有在被调用后才能生效
14. 方法的调用方法
无参方法的调用
方法名()
有参方法的调用
方法名(实参列表)
注:实参列表与定义方法时的形参列表需一致
15. 使用方法时的注意问题
形参必须注明数据类型
实参直接写,不需要类型声明
return只能返回一次
遇到return语句,方法执行结束,后续语句不执行
方法的返回值必须与声明中的返回值类型匹配
方法不能嵌套定义,但可以嵌套调用
16. 方法的重载
方法的重载就是在同一个类中允许同时存在一个以上同名的方法
17. 方法重载的规则
重载发生在一个类中
方法名称相同
方法的参数列表不同
参数个数不同或者
参数类型不同
与返回值类型无关,可相同,也可以不同
18. 方法的重写
重写(rewrite)
对从父类中继承来的方法进行改造
在子类继承父类时发生
19. 方法重写的规则
方法名称相同
方法的参数列表相同(参数数量、参数类型、参数顺序都要相同)
方法的返回值类型相同
子类重写方法的访问权限要不小于父类中被覆盖方法的访问权限