一、Java语言特点
1、 简单
2、 面向对象
3、 分布式
4、 健壮
5、 安全
6、 中性架构跨平台
7、 超强的可移植性
8、 高性能
9、 多线程
二、java的环境变量
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_101 (到你的安装目录下)
CLASSPASH=./ (点代表当前路径)
PATH=%JAVA_HOME%;
三、环境变量详解
1、JAVA_HOME
a) Java的主目录,就是java的安装目录
b) 用来识别hava安装位置
2、PATH
a) 操作系统执行命令的搜索路径
b) Windows和linux都有
c) 当os执行命令的时候,会再PATH指定的路径中搜索
注意:WindowsXP使用“;”分号分隔路径,Linux使用“:”冒号分隔路径,都是英文下。
要保留系统原始的PATH,不然会造成OS的混乱,甚至不能引导
3、CLASSPATH
Java的类的搜索路径,类就是java的可执行文件,JVM利用CLASSPATH搜索用到的类,类似于PATH
四、第一个java程序
五、java的注释
1、注释
被java编译器忽略的部分
用于对代码进行标注,生成文档
用于临时取消部分代码段
2、 注释语法,有三种:
单行注释:由//引导,到当前行尾结束
//内容内容内容
多行注释:由/*开始到*/结束,注释多行
/*内容内容内容*/
文档注释:由/**开头,*/结束,注释多行,用于生成文档,放在被注释的对象之前
/**内容内容内容*/
注释示例
六、包
包,是java中用于对于资源进行分类的
a) 如:相关的类放在同一包下,系统包:java.io,java.swing
b) 类似于OS文件系统中,文件夹是对文件分类的。
c) 在当前类中使用其他包中的资源,需要导入进来:import java.util.*;或者import Java.util.Random;
d) 在java源文件中默认导入java.lang.*;
e) Import语句在package以后
七、标识符
1、标识符:在java语言中用来给一个类、变量或方法命名的符号标识
2、Java标识符的规则
a) 以 字母、$、_ 为开头,不能以数字开头
b) 第二个字符开始是字母、数字、$、_
c) 不限制长度
d) 不能是java的关键字
e) 带小写是敏感的
f) 字母,可以是中文
g) 例如:identifier _sys_ var1 $char userName user_name 美女
八、变量
1、 变量的声明时必须指定变量的类型。
2、 在方法中声明的变量成为局部变量。
3、 局部变量在使用前必须初始化(第一次的赋值操作称为初始化)
4、 变量不能重复定义
九、数据类型
1、 Java是强类型语言,任何数据都是有类型的
2、 计算机中一切都是数据
3、 Boolean 布尔类型
4、 Char 字符类型
5、 Byte 字节整数类型,8位有符号整数
6、 Short 短整数类型,16位有符号整数
7、 Int 整数类型,32位有符号整数
8、 Long 整数类型,64位有符号整数
9、 Float 浮点类型,32位有符号浮点数
10、 Double浮点类型,64位有符号浮点数
十、运算符
序号 | 描述 | 运算符 |
1 | 括号和引用 | () [] . |
2 | 单目运算符 | ++ -- ! ~ |
3 | 算数运算符 | * / % + - |
4 | 关系运算符 | > >= < <= == != |
5 | 逻辑运算符 | && || & | |
6 | 位运算符 | << >> >>> & | ^ |
7 | 条件运算符 | ? : |
8 | 赋值运算符 | = += -= *= /= %= >>= >>>= <<&= |= ^= |
十一、分支语句
1、if
2、If嵌套
练习1:给你5个整数,你输出最小值
练习2:计算一下出租车的车费,车费由两部分组成:
公里数:0-3公里收10元;4-15公里每公里2元;15公里以上的部分每公里3元。
等候时间:每2分半收1元,不足2分半的不收费
规则:不足1公里的按1公里计算,车费是公里数+等候时间的钱。
比如:18公里299秒,应收车费44
要求:输入公里数和秒数,输出车费。
3、 For
4、 while
5、break continue return(转向语句)
continue:终止本次循环,继续下次循环;
break:跳出最内层循环;
return:直接跳出方法体
练习3:1~100的质数
练习4:36个人搬36块砖,男人一个人搬4,女3,小孩2个人搬1块,所有人一次搬完,几男几女几小孩。
十二、数组
1、 数组的声明:
Int[]arr;
2、 数组的初始化:
Int[]arr={1,2,3};
Int[]arr=new int[4];
3、 数组的访问
Int[]arr={1,2,3};
Intx=arr[2]; //取出下标为2的元素
4、 长度 arr.length
5、 数组元素的初始化操作
Int[]arr=new int[4];
For(int i=0;i<arr.length;i++){
Arr[i]=i+1;
}
6、 打印数组
Java.util.arrays;
System.out.println(arrays.tostring(arr));
练习5:双色球,红球33选6,蓝球16选1
十三、字符串常用的方法
十四、方法
[修饰符]返回类型 方法名(参数类型 参数变量,参数类型2 参数变量2){
方法体
}
1、 修饰符可以使0~n个,但是要保证正确使用。
2、 方法的参数可以是0~n个。
3、 方法的参数是局部变量。
4、 如果方法有返回值(返回类型是void),那么该方法就必须有return语句,用来返回和返回类型相兼容的数据,此时retunrn后面必须加数据,。
5、 如果方法无返回值(返回类型是void)那么该方法中可以有retunrn语句(也可以没有),如果有return语句用来直接跳出方法体,此时retunrn后面一定不能加数据。
6、 方法中不能嵌套方法。
7、 实参:实际传入方法中的参数,相当于给变量初始化。
8、 形参:形式参数,是方法临时定义的参数,相当于只声明了变量。
十五、对象与类
世间万物,一切皆对象。
我们将一组具有相同数据和操作的对象抽象为一种类型,这个类型就是类
1、java类的语法
2、成员变量
在类体中方法外定义的变量成为成员变量
成员变量java编译器会给他们提供默认值
成员变量的作用范围比局部变量大
3、构造器
与类名相同,描述对象的创建过程,不能声明返回值,使用new运算调用
4、默认构造器
a) 每个类都有构造方法
b) 如果类没有定义构造方法,java将自动添加默认构造方法
c) 默认构造方法是公有空实现的
d) 如果定义了构造方法,就不再提供默认构造器了
例如:pbulic student(){}
5、 This
代表当前对象本身,是当前对象的引用,就像交谈对话中的带刺“我”代表说话人本身
用法:引用当前对象的成员:属性或方法,经常用来区分实例变量和局部变量,例如:
public student(string name,int age){
this.Name=name;
this.age=age;
}
6、 练习
案例描述:写一个person类代表人,包括以下属性:
String name;int age;char gender;person partner.
为person类写一个marry(person p)方法,代表当前对象和p结婚,如若可以结婚,则输出恭贺新禧,否则输出不能结婚的原因。要求在另一个类中写一个主方法,来测试以上程序(以下情况不能结婚:1同性;2未达到结婚年龄,男<22,女<20;3某一方已结婚)。
7、 继承
a)用来描述自然界中类型之间是“is a”的关系
例如:班长是学生,经理是员工
被继承类叫父类,继承类叫子类,子类可以继续继承
子类实例也是父类实例
子类默认继承父类的属性和方法
构造器不能被继承
b)java是单一继承语言
子类只能有一个父类
没有父类,默认继续与java.lang.Object
8、 重写
方法的重写一定是在子类中声明
方法名相同,参数类型相同
9、 访问权限修饰符
10、 static
静态变量和方法
直接使用类名来访问
如:integer.parseint(string str),math.sin(double v)
11、final
12、abstract
a)抽象方法
使用abstract修饰,没有方法体定义
抽象方法只能放在抽象类中
b)抽象类
使用abstract修饰的类
包含抽象方法的类一定是抽象类
一个类继承了抽象类应该重写并实现抽象类中所有的抽象方法
抽象类不能被实例化,可以用来引用子类的实例
13、 封装类
包装类可以把基本类型包装为对象类型,java一共有8种包装类,分别是:
基本类型 | 所对应的包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
14、封装类常用的API
包装类提供了对应数据类型的工具方法
常用的API有:
1>Integer.toHexString(); 以16进制的形式将int值输出
2>Integer.toString(int); 以10进制的形式将int值输出
3>Integer.toBinaryString(); 以2进制的形式将int值输出
4>Integer.parseInt(String); 将字符串转换为对应的int类型
6>Double.parseDouble(String str); 将字符串转换为对应的double类型
在java5以后支持自动装箱和解箱。
15、 ArrayList
1>底层是用数组实现的。
2>迭代和查找速度快。
3>创建 ArrayList list = new ArrayList();
4>常用的API:
A)list.add(Object obj); 将元素obj添加到集合的尾部。
B)list.remove(int index); 从集合中删除下标为index的元素,同时返回这个元素。
C)list.remove(Object obj); 从集合中删除首次出现的obj元素,如果存在则删除同时返回true,不存在返回false。
D)list.get(int index); 从集合中取出下标为index的那个元素。E)list.size(); 返回集合的大小。
F)list.isEmpty(); 验证集合是否没有元素,如果没有返回true,反之返回false。
G)list.add(int index,Object obj); 将指定的元素插入到下标为index的位置。
16、异常
软件过程运行中出现的意外错误,java提供了一套处理错误机制叫:异常控制
异常是方法运行期间出现的,发生异常,叫:异常的抛出,在代码出现意外的时候可以用throw抛出异常实例。
在方法上定义可能抛出的异常,叫异常的声明,在方法上使用throws声明异常
使用java语法处理方法抛出的异常,叫异常的捕获,使用try…catch…finally捕获处理异常