字符
标识符
命名规则
可以包含数字,但不能以数字开头
除了下划线_,和$符之外,不能有其它特殊字符,如空格
区分字母大小写
不能使用Java关键字
换行符\n要加双引号
System.out.println(“名字”+“\n”);
注释
单行注释://
多行注释:从“/”开始到“/”结束,
文档注释:从“/**”开始到“*/”结束
文档注释可以用javadoc命令提取出来,生成类似于jdk文档的网页文件,以便于他人了解一个类的功能。
变量
变量基本结构:类型 变量名 =值
前面不可以有访问符
数据类型
8种基本数据类型
数值型
- 整数
short型(短整型)数据在内存中占用2个字节
long型(长整型)数据在内存中占用8个字节。
int型(整型)数据在内存中占用4个字节。
byte型(字节型)数据在内存中占用1个字节,表示的存储数据范围为:-128~127。 - 浮点数
float型(单精度浮点型)数据在内存中占用4个字节。
float t = 3.1f
f转为double型
double型(双精度浮点型)数据在内存中占用8个字节。
一般小数默认是double型
字符型
char每个字符占2个字节,定义时用单引号’ ’
布尔型
boolean:数据值只有true或false,适用于逻辑计算。
引用数据类型
类
字符串类型String
最常用的一种存储文本的数据类型,用双引号“”
任何数据+字符串操作结果都是字符串
使用关键字和构造方法来创建 String 对象。
String str2=new String(“Runoob”);
有内置方法
hashCode() 方法用于返回字符串的哈希码。
length() 方法,它返回字符串对象包含的字符数。
流程控制
判断语句
if条件语句
switch多重选择
循环语句
while循环
do while循环
for循环
for (初始条件; 循环检测条件; 循环后更新计数器) {
// 执行语句
}
break语句通常都是配合if语句使用。要特别注意,break语句总是跳出自己所在的那一层循环
continue则是提前结束本次循环,直接继续执行下次循环
for each循环能够遍历所有“可迭代”的数据类型,包括后面会介绍的List、Map等。
数组
遍历数组
for循环通过索引来访问
int[] ns = { 1, 4, 9, 16, 25 };
for (int i=0; i<ns.length; i++) {
int n = ns[i];
System.out.println(n);
}
for each循环直接迭代数组的每个元素
第七章异常
Error严重的错误
OutOfMemoryError:内存耗尽
NoClassDefFoundError:无法加载某个Class
StackOverflowError:栈溢出
Exceptio是运行时的错误,它可以被捕获并处理。
RuntimeException以及它的子类;
非RuntimeException
(包括IOException、ReflectiveOperationException等等)
异常类分为两种
1.错误。一般指与虚拟机相关的问题,这些错误无法恢复和捕获
2.异常(Exception),因编码错误或外在因素导致的问题
两种异常处理机制
1.使用try catch捕获异常
存在多个catch的时候,catch的顺序非常重要:子类必须写在前面
2.trrows抛出异常
三.复习题
简答题
1、java源程序在控制台环境下编译和运行的命令是什么?编译之后生成了什么文件?
编译Javac name.java 生成.class文件
运行Java name
2.Java的数据类型分为哪几种?请列举出8个Java的基本数据类型。
byte short int long double float
char
boolean
- 继承的主要作用是什么?如何使用一个子类继承一个父类?
通过继承,子类可以使用父类的非私有属性和非私有方法,从而提高代码重用性,提高开发效率
4、continue的功能是什么?break的功能是什么?两者的区别?
continue跳出本次循环,直接执行下一次循环
break直接跳出本层循环
- toString 方法的功能是什么?如何使用toString 来实现方法重写?
toString()将对象的内容转换为字符串
当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法
默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名和此对象对应内存的首地址 如果想自定义输出信息必须重写toString()方法
/*注意事项
1.必须被声明为public
2.返回类型为String
3.方法的名称必须为toString,且无参数
4.方法体中不要使用输出方法System.out.println()
语法格式为*/
public String toString(){ }
6、构造方法的作用是什么?
在创建对象时,初始化对象的属性
- 什么是抽象方法?什么是抽象类?
抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类
抽象方法:抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型,方法名称和所需要的参数,没有方法体,这个方法必须被子类的方法所重写
8 什么是类间的依赖关系?什么是类的关联关系?什么是类的聚合关系?什么是类的组成关系?
依赖关系
在一个类的方法中操作另一个类的对象,则称其依赖于第二个类
例如方法的参数时某个类的对象
关联关系体现为一个类中使用另一个类的对象作为该类的成员变量
聚合关系是关联关系的一种特例,表现为一个类(整体)由多个其他类的对象(部分)作为该类的成员变量
-
super关键字的主要作用是什么?
对于有继承关系的类,子类可以通过这个关键字调用父类中的方法
写法,即 super(构造方法名),而且必须是这个构造方法的第一句。
在子类的构造方法中调用父类的构造方法
在子类方法访问父类的属性和方法 -
this代表什么?this大部分情况下是可以省略的,请说明什么时候不能省略this。
this是一个变量,保存了当前对象的内存地址,指向这个对象自身。this代表的就是 “当前对象”
在实例方法或者构造方法当中,为了区分同名的局部变量和实例变量,this不能省略 -
Java中包含哪几种内部类?什么是成员内部类?什么是局部内部类?什么是最终类?
包含:成员内部类、局部内部类、静态内部类、匿名内部类
成员内部类:在“外部类”的内部定义一个类,作为一个成员存在,与外部类的属性、方法并列
局部内部类:在方法中定义的内部类称为局部内部类,不仅可以访问包含它的外部类成员,还可以访问局部变量
最终类:最终类有final关键字修饰,最终类不可被继承 -
什么是类?类里面包含什么?什么是对象?两者之间的区别是什么?
类:类是具有相同属性和方法的一组对象的集合
类包含字段和方法
对象:对象是一具体事物
区别:对象是类的一个实例,拥有类定义的属性和方法 -
java中有哪几种注释?分别用什么符号表示?
单行注释://
多行注释:从“/”开始到“/”结束,
文档注释:从“/**”开始到“*/”结束
文档注释可以用javadoc命令提取出来,生成类似于jdk文档的网页文件,以便于他人了解一个类的功能。 -
什么是缺省构造器?它的作用是什么?缺省构造器什么时候无法产生作用?
如果一个类没有定义构造方法,编译器会自动创建一个缺省构造器
作用在创建对象时初始化对象的属性
如果你已经定义了一个无参构造方法, -
public、private、protected三个访问控制符代表了不同的访问级别,请分别进行说明。
public公共访问权限,可被同一包或不同包的所有类访问
protected子类访问权限,可以被同一包的其它类访问,也可以被其他包的子类访问
friendly包访问权限,如果没设置访问符则默认friendly包访问权限,可被同一包中所有类访问
private 当前类访问权限,只能被当前类的其它成员访问 -
什么是多态?多态在代码中的表现形式是什么?多态的作用?
同一个对象在不同阶段,多种状态
表现形式:继承、重写、父类引用指向子类对象
作用:可以将子类对象直接赋值给一个父类引用变量,无须任何类型转换 -
一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以,但只能有一个public类,并且public的类名必须和文件名一致 -
final关键字的主要作用是什么?
被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被覆盖(重写); -
什么是接口?接口如何定义?接口中能够包含哪些方法?接口和类在继承方面的区别。
接口可以定义抽象方法,默认方法,类方法
接口可以多继承,即一个接口可以继承多个接口
类只能单继承,一个子类只能有一个直接父类 -
什么是方法重载?什么是方法重写?两者的区别?
方法重载是指在同一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或者参数个数
方法重写是指在子类创建一个与父类中除了方法体的实现不同外,其它都相同的方法,以便实现不同于父类的功能