Java学习(一)

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 .zshrcjava -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开发的基础知识,包括环境的搭建,基础数据类型、数组、表达式,类与对象的声明引用创建方法等。对于具体的方法实现扩展还需要进一步的练习和总结。

你可能感兴趣的:(Java学习(一))