macOX环境搭建
官网下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
一直点击下一步安装
Java默认安装路径 : /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/ JDK Home: /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
-
配置环境变量,在.zshrc中修改
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Conte nts/Home export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
运行
source .zshrc
,java -version
查看是否成功
基础知识
Java是面向对象的高级程序设计语言
1.思想:将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为,构成类
2.优点:可重用性、可靠性
3.基本特征:抽象和封装、继承、多态
4.跨平台:Java运行在不同平台的虚拟机(JVM)上
基本数据类型与表达式
1.变量与常量
标识符:(A-Z)(a-z)_$ + (A-Z)(a-z)_$(0-9)
2.基本数据类型
数值型
byte、short、int、long(l/L)、float(f/F)、double(d/D)、boolean
八进制:o... 十六进制:oX...
字符型
布尔类型
字符串
3.运算符与表达式
算数、赋值、关系、逻辑、条件运算符
4.类型转换
扩展转换、窄化转换
隐含转换:其中字符串转换适用于各种类型,其中一个为string类型时,适用于+运算符操作
显式转换(强制转换):(float)3.0
数组
数组是对象,需要动态初始化,可以赋值给object类型的变量,都有变量length
Type arrayName[] //声明
arrayName = new Type[componets number] //创建
初始化
arrayName[index] //使用
int a[] = {1,2,3,4,5}
数组名是一个引用 -> 如何复制一个数组
public static void arraycopy(Object src, int srcPos,Object dest,int destPos,int length)
arrayCopy( arr1, 2, arr2, 5, 10); //将arr1数组里从索引为2的元素开始, 复制到数组arr2里的索引为5的位置, 复制的元素个数为10个
流程控制语句
if、switch、for、while、 do while
类与对象
面向对象方法的特征
1.抽象
关注目标共同的属性和方法
2.封装
3.继承
Java只支持单继承,一个子类只有单一的直接超类
4.多态
超类及不同子类可以响应同名的消息,具体实现方法不同,主要通过子类对父类的覆盖实现
变量与方法
对象是类的具体实例
publick class Clock{} //类声明
Clock aclock //对象引用声明
aclock = new Clock //对象创建
数据成员表示对象的状态,可以是任意的数据类型
类变量(静态变量):变量前加了static 的变量;
实例变量(对象变量):即没加static 的变量;
类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
方法返回值可以是任意类型,不需要返回时返回类型为void,分为实例方法和类方法,参数传递分为值传递和引用传递,可变长参数传递使用String...s
,实质是数组
public static void test(String...args){
//本质上还是基于数组的实现:
for(String arg : args) {//当作数组用foreach遍历
System.out.println(arg);
}
}
public static void main(String[] args) {
test("aa", "bb", "cc");
}
包是一组类的集合,也可包括多种包
作用:将相关源码组织在一起、类名的空间管理、提供包一级的类名和存取权限
类的访问权限:public、project、private、default,如果允许访问,需要增加set和get方法,如果方法的局部变量与类的非静态成员同名需要this关键字
对象初始化
构造方法:方法名与类名相同、通常为public、不定义返回类型、可以有多个参数、主要完成对象的初始化,不能显式调用、为生命则默认构造
自定义构造方法可以重载,但是参数表不能相同 -> 使用this重载更简洁
public Student(){
this("xx",10,"xx");
}
public Student(String initName,int initAge){
this(initName,initAge,"xx");
}
public Student(String initName,int initAge,String initsex){
this(initName,initAge,initsex);
}
内存回收:finalize()方法,在类java.lang.Object中声明,自动调用,可以重写
枚举类
通过enum.values()获取枚举数组
通过enum.valueOf(name)获取枚举对象
通过Enum.valueOf(enumClass,name)获取枚举对象
学习总结
本阶段学习主要是Java开发的基础知识,包括环境的搭建,基础数据类型、数组、表达式,类与对象的声明引用创建方法等。对于具体的方法实现扩展还需要进一步的练习和总结。