1、java语言特点(有*的为必须知道的,其他选答)
*1. 跨平台
*2. 半编译半解释
*3. 面向对象
4. 简单
5. 分布式
6. 健壮
7. 多线程
2、数据类型
基本数据类型
整型
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)
引用数据类型
数组
类
接口
1、数据类型转换
隐式转换
小类型的数据赋进大类型的变量
eg:
byte、short、int、char运算时都转换为int
`short s = 1;
s= s+1;`这是错误运算应改成s+=1;
显示转换
小类型的变量=(小类型)大的数据`会造成精度的丢失`
2、运算符
算数运算符
`+` 加法 、`-` 减法、`*` 乘法、`/` 除法
`%` 取余 `++` 自增 `--` 自减 `+` 字符连接符(当操作数中只要有一个是String类型,系统会自动将另一个操作数转换成字符串类型,然后进行连接)
赋值运算符
`=`
关系运算符(结果为boolean类型)
逻辑运算符
位运算
3、标识符
标识符的命名规则
必须以字母、下划线(_)或美元符号($)开头
余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限。标识符中不能有空格。
不能使用Java中的关键字或者保留字做为标识符
类名: Pascal规则 eg:Person StudentDemo
方法名: Camel规则 eg:getAge setUserName
包名: 全部小写 eg:com.neusoft
常量名: 全部大写 eg:MAX_VALUE
1、流程控制语句
条件控制
if……else……
switch
循环控制
for
while
do……while
数组:数组可以看成多个相同类型的数据的组合,实现对这些数据统一管理
数组的长度:数组中元素的个数
数组的其他基本概念
数组的索引 -- index
数组的类型 -- type
数组的名称 – name
数组的声明
`数组类型[ ] 数组名`
数组的创建
`数组名 = new 数据元素类型[元素个数]`
数组的初始化
`数组类型 数组名[ ] = { 元素1 ,元素2 ,…}`
`数组类型 数组名[ ] = new 数据类型[ ]{ 元素1 ,元素2 ,…}`
数组的访问
Java中,数组元素的下标从0开始
元素的下标可以是整型常量或整型表达式
赋值:数组名[元素下标] = 元素值
取值:数据元素类型 变量名 = 数组名[元素下标]
数组的遍历
`for(int i = 0;i<数组长度;i++){
数组名[i];
}`
多维数组创建
数组类型[ ] [ ] 数组名
数组的复制
`System.arraycopy(source,srcPos,dest,destPos,length)`
复制source数组中从下标srcPos开始的length个元素到目标数组dest,并从目标数组的下标为destPos的位置开始储存
source: 源数组
srcPos: 源数组中的起始位置
dest: 目标数组
destPos:目标数组中的起始位置
length: 要复制的数组元素的个数
数组的排序
Arrays.sort(数组名)
对数组排序
Arrays.sort(数组名,fromIndex,toIndex)
对数组从下标为fromIndex到toIndex的数组排序(不包括下标为toIndex的元素)
什么是方法
方法是完成某个功能的一组语句,通常将常用的功能写成一个方法
方法的定义
`[访问控制符] [修饰符] 返回值类型 方法名(参数列表){
方法体
}`
修饰符:public 、static 被称为修饰符(后续会详细讲解它们);
返回值类型:用来说明该方法运算结果的类型。如果返回其他类型,编译就可能出错;
方法名:它作为调用时引用方法的标识;
参数列表:方法的参数个数可以是0个到多个,每个参数前面要声明参数的数据类型;每个参数要用逗号分开。也可以一个参数都没有。
方法体:它是一个语句块,执行特定的功能操作。对于有返回值类型的方法,方法体当中最后一个语句是return关键字,它的作用是把方法的执行(运算)结果返回到方法外部。
return 表达式 :这里,进一步分析,return后面的表达式就是方法的返回值。需要注意表达式的类型,必须与方法头中声明的“返回类型”相 匹配。
*形式参数:在方法被调用时用于接受外部传入的变量
*参数类型:就是该形式参数的数据类型
*返回值:方法在执行完毕后返回给调用它的程序的数据
*返回值类型:方法要返回的结果的数据类型
方法的分类
根据参数个数
无参方法
有参方法
根据返回值类型
有返回值方法
`返回值类型可以是基本数据类型,也可以是引用数据类型`
无返回值方法
void`(void不可以省略,必须要写,用来占位)`
方法的调用
方法只有在被调用后才能生效
方法的调用方法
无参方法的调用
`方法名()`
有参方法的调用
`方法名(实参列表)`
`*注:实参列表与定义方法时的形参列表需一致`
使用方法时的注意问题
形参必须注明数据类型
实参直接写,不需要类型声明
return只能返回一次
遇到return语句,方法执行结束,后续语句不执行
方法的返回值必须与声明中的返回值类型匹配
方法不能嵌套定义,但可以嵌套调用
方法的重载
方法的重载就是在同一个类中允许同时存在一个以上同名的方法
方法重载的规则
重载发生在一个类中
方法名称相同
方法的参数列表不同
`参数个数不同`或者`参数类型不同`
与返回值类型无关,可相同,也可以不同
方法的重写
重写(rewrite)
对从父类中继承来的方法进行改造
在子类继承父类时发生
方法重写的规则
方法名称相同
方法的参数列表相同(参数数量、参数类型、参数顺序都要相同)
方法的返回值类型相同
子类重写方法的访问权限要不小于父类中被覆盖方法的访问权限
1、面向对象的基本概念:
对象(object):
是系统中用来描述客观事物的一个实体。
可以是有形的,也可以是无形的(如一个客户,一张银行卡,窗体中的一个按钮等等)
对象是构成世界的一个独立单位
具有自己的静态结构(属性)和动态行为(方法)
每个对象有自己的唯一标识
类(class):
类是一组具有相同属性和行为的对象的抽象,类的作用是用来创建对象,对象是类的一个实例
类和对象的关系
抽象和具体的关系。
每一个类在某一时刻都有零个或更多的实例, 类是生成对象的模板
一个类定义了使用哪些数据来描述属性,每一个对象都有相应的属性值数据,一个类通过一系列方法来定义行为,这些方法能在每个对象中被激活
2、面向对象的主要特征:
封装
所谓封装是把对象的属性和行为结合在一个独立的系统单位内部
尽可能隐蔽对象的内部细节,只向外部提供接口
降低对象间的耦合度
封装的重要意义:
使对象能够集中而完整地描述并对应一个具体事物
体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据
继承
也称泛化
是子类自动共享父类属性和方法的机制
除了继承父类属性和方法,还可以加入自己的新的内容
有益于软件复用
是类之间的一种关系
多态
指同一个命名可以具有不同的语义
常指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为,对于子类,可用不同的方法替代实现父类的服务的方法
3、类
什么是类
把相似对象划成一个类
类的格式
`[类修饰符] class 类名{
类的成员
}`
修饰符一般为public,也可以没有修饰符。
注意类名的命名规范。类名首字母一般大写
类的成员
成员变量(属性)
成员方法(方法)
嵌套类
通过“.”调用属性和方法
成员变量
[修饰符] 类型 属性名 = 默认值;
4、对象的创建和使用
什么是对象
类(class) — 是对某一类事物的描述
对象(object) — 是实际存在的某类事物的个体,也称为实例(instance)
类是创建对象的模板,对象是类的实例
构造器
具有与类名相同的名称
不含返回值类型
不能在方法中用return语句返回一个值
一般访问权限是public
构造器作用
完成对象的创建,即完成对象的初始化;
一般使用构造器来完成对成员变量的初始化
注*
没有明确的写出构造方法,在编译时编译器会发现该类没有构造器,这时编译器会自动的给这个类增加一个构造器,该构造器没有任何参数,我们称之为“默认的空构造器”
相反,如果我们在编写时,手写了一个或是若干个带参的构造器,那么,这个不带参的空构造器就不会再自动产生并存在。在这样的情况下,如果在某些情况下还想使用这样的无参数默认构造器的话,最好还是养成手写出这个无参数的构造器来,以备后用
默认构造器
在Java中,每个类都至少要有一个构造器,如果程序员没有在类里定义构造器,系统会自动为这个类产生一个默认的访问权限为public且参数列表为空的构造器
对象创建的内存模型
在Java中所有的变量、数组、对象都是分配在内存中的
局部变量
实例变量
静态变量
内存的类别
栈:存取速度比堆块,效率高
堆:堆可以保存那些堆空间要求较大的变量
凡是出现关键字new的地方必定分配了一个堆内存
我们在实例化一个对象时,同时操作了栈内存和堆内存。在栈内保存对象的首地址,即 引用;
访问对象:在其他类中或main方法中,若想访问对象的属性或是方法必须先实例化这个类,然后通过对象名(引用)和点操作符来完成
如果在 类内的方法中,访问本类的属性和方法就可以 直接访问了。
匿名对象
创建完对象,在调用该对象的方法时,也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫匿名对象
使用匿名对象的情况
如果对一个对象只需要进行一次方法调用
垃圾回收机制:
finalize()关键字
变量的作用域
类变量:用static修饰的成员变量
实例变量:非static的属性
局部变量
方法体中声明的变量,方法中的参数,或代码块中声明的变量,都是局部变量
局部变量只在方法调用的过程中有效,方法调用结束后失效
5、this关键字
this关键字
代表对象自身的引用
一个引用
指向调用该方法的当前对象
通常在类的方法定义中使用
this关键字使用情况
在方法中变量与成员变量名称相同
在一个构造器中,调用其他重载器的构造器
返回当前对象的引用