【慕课学习】JAVA核心技术-初级课程

JAVA已经隶属于Oracle公司

JAVA的优点:
1、将源码编译为字节码
2、依赖各种平台上的虚拟机来解释执行字节码
3、实现了一次编写、到处运行的特性
4、能够接纳、兼容、和运行其他程序语言产生的字节码

JAVA是程序语言
java规范规定了语法和功能
JCP:掌管java规范
JDK:实现Java规范

通过搜索 java achieve下载各种版本的JDK

课程目录:
1、基本语句和结构
2、面向对象思想(重点)
3、继承和多态(重点)
4、异常处理
5、数据结构
6、文件处理

一、JAVA环境搭建

安装JDK

1、搜索Java Archive,下载JDK版本
2、配置JAVA_HOME环境变量
【慕课学习】JAVA核心技术-初级课程_第1张图片

3、配置Path环境变量
【慕课学习】JAVA核心技术-初级课程_第2张图片

JAVA编译原理

【慕课学习】JAVA核心技术-初级课程_第3张图片
在IDE输入程序在JDK上编译为.class文件,然后再JRE通过java.exe在虚拟机JVM上运行
其中:
JDK:主要负责编译
JRE:主要负责运行

二、JAVA类基础知识

JAVA中所有的东西都放在类里面
JAVA的项目是由一个一个class构成

类的构成:变量和方法

运算符:
a<<1左移乘2
a>>1右移除2

类基础:
重载:函数名相同,形参列表必须不同,如果调用则系统会选择合适的方法调用
构造函数就是一种重载

类:
同一个对象不同引用,在内存中有不同的存放地址
定义变量需要给一个初始化的值
基本类型赋值是拷贝赋值、对象赋值是reference赋值

构造函数:
构造函数的作用:在实例化类到时候就开始赋值

面向对象的法则:
1、类的成员属性是私有的
2、类的方法是公共public,通过方法修改成员属性值

this关键词的两个作用:
1、负责指向本类的成员方法
2、代替本类的构造函数

三、继承、接口、抽象类

  1. 继承:
    1、类别内的对象属性和方法都有一定的共同点
    2、子类继承父类的所有属性和方法(不能继承private)
    3、单根继承原则:每个类只能继承一个类
    所有类默认是继承于Object,所以会有一些公用的方法:
    clone、equals、finalize、getClass、hashCode、toString、wait、notify等

  2. 抽象类:
    1、抽象类关键字abstract
    2、一个类继承抽象类就不能继承其他抽象类

  3. 接口:
    1、一个类可以实现多个接口,继承和实现可以同时进行。
    2、接口可以继承多个接口
    3、类实现接口就要实现所有接口的方法

抽象类和接口的相同点:
两者不能被实例化不能被new出

不同点:
1、抽象类abstract、接口interface
2、抽象类有构造函数,接口无
3、抽象类可以有main并运行,接口无
4、抽象类可以有private和protected,接口只有public

  1. 转型、多态、契约设计
    1、类型可以互相转化
    子类可以转化为父类、父类不能转化为子类
    2、子类继承父类的所有方法

四、Static、final和常量设计

static

作用在:类、变量、方法、匿名方法块

static变量
只依赖于类实现,可以用类.变量名
多个对象调用的值只储存在一个共同的栈中
static方法
直接通过类名应用
静态方法中只能使用静态变量
静态方法禁止引用非静态方法

static修饰的内部类使用较少,可忽略

static块
在类被一次加载时调用
static块只执行一次,顺序为static块>匿名块>构造函数

单例模式

  • 限定某一个类在整个运行过程中,只能保留一个实例对象在内存空间。
单例模式:保证一个类只有一个对象
采用static共享对象实例
采用private构造函数,防止外界new

final

final
修饰的类不可继承
修饰的父类方法子类不可改写
修饰的基本类型字段

五、package、import、classpath

package

  • 常用域名当做包名、逆序
  • 类的完整名称为包名+类名

import

import作用:引入其他类

import原则
位置放在package后、类定义前
通过*来引入一个目录下的所有类【不推荐】
Jar文件的导入和导出
jar文件是java特有的一种文件格式,便于程序文件的传播
jar文件是class文件的压缩包
java访问权限

六、JAVA常用类

String类

【慕课学习】JAVA核心技术-初级课程_第4张图片

StringBuffer和Stringbuilder【不同步】

  • 方法一致,区别在同步上
  • 属于可变对象,对象赋值后共享一个内存空间

时间相关类

java.sql.Date

使用数据库时用

Calender

是抽象类
【慕课学习】JAVA核心技术-初级课程_第5张图片

注意
获取月,记住默认是0-11,要加上1
获取星期,英语国家是从周日开始算

格式化

【慕课学习】JAVA核心技术-初级课程_第6张图片
学会查看以上类的API

七、JAVA异常及异常处理

异常:程序不正常的行为或状态
【慕课学习】JAVA核心技术-初级课程_第7张图片

Throwable
所有错误的祖先
Error
系统内部错误或资源耗尽,不管
Exception
程序有关异常,重点关注
RuntimeException程序自身错误:5/0,空指针,数组越界
非RuntimeException,外界相关错误,打开空文件,加载不存在的类
【慕课学习】JAVA核心技术-初级课程_第8张图片
异常处理:程序返回安全状态,允许用户保存结果,并以适当方式关闭程序
  • 允许用户及时保存结果
  • 抓住异常,分析异常内容
  • 控制程序返回到安全状态
try-catch-finally
catch:发生异常执行的内容,可以有多个
finally:无论是否有异常都会执行
注意
一般将小的异常写在前面,大的宽泛的写在后面
方法如何可能存在异常,但不处理,通过throws来声明异常
一个方法被覆盖,覆盖它的方法必须有相同的异常
父类的方法抛出多个异常,重写的子类必须抛出父类的那些异常,不能超出父类异常范围

自定义异常

Exception类是所有异常的父类,继承自Throwable,它的兄弟是Error【系统异常暂时不管】

自定义异常条件:
1、继承Exception
2、定义构造函数调用父类Exception的message构造函数
【慕课学习】JAVA核心技术-初级课程_第9张图片

七、JAVA数据结构

数组

数组是存放多个数据的容器

数组的特点
同一种类型、按线性排列、
通过索引快速访问数据
需明确容器的长度
length为数组大小长度,从0开始【不可越界,否则会报错】

JCF

容器框架

  • 对外的接口
  • 接口的实现
  • 算法

框架提高数据存取效率,避免重复劳动。

【慕课学习】JAVA核心技术-初级课程_第10张图片

JCF的集合接口为Collection
add、contains、remove、size、iterator
JCF的迭代器接口为Iterator
hasNext、next、remove

【慕课学习】JAVA核心技术-初级课程_第11张图片

列表

List
有序、允许重复
主要实现ArrayList【非同步】、LinkedList【非同步】、Vector【同步】
ArryList
不支持同步
利用索引快速访问
不适合指定位置插入、删除、主要用于查询
可动态调整容器大小
LinkedList
双向链表,不支持同步
当做堆栈、队列、双端队列
顺序访问高效,随机访问差,中间插入和删除高效
用于经常变化的数据

集合

集合的特点
确定性:任何对象都能判断是否属于一个集合
互异性:集合中每个元素都是不同的
无序性:集合内顺序无关

Java中的集合接口Set

  • HashSet:基于散列函数的集合,无序,不支持同步
    【慕课学习】JAVA核心技术-初级课程_第12张图片

  • TreeSet:基于树结构的集合,可排序,不支持同步
    【慕课学习】JAVA核心技术-初级课程_第13张图片
    注意:排序按从小到大排序

  • LinkedHashSet:基于散列函数和双向链表的集合,可排序,不支持同步
    【慕课学习】JAVA核心技术-初级课程_第14张图片
    注意,LinkedHashSet保持链表的顺序性,和插入顺序一致

HashSet,LinkedHashSet,TreeSet
元素必须是对象,如Integer

元素重复判断原则:
1、HashSet和LinkedHashSet

  • 判断两个元素的hashCode返回值是否相同,不同返回false
  • 相同,判定equals方法,不同返回false
  • hashCode和equals属于公共方法,因为Object类有
    【慕课学习】JAVA核心技术-初级课程_第15张图片
    【慕课学习】JAVA核心技术-初级课程_第16张图片

2、TreeSet

  • 需要元素继承自Comparable接口
  • 比较两个元素的compareTo方法【慕课学习】JAVA核心技术-初级课程_第17张图片
    【慕课学习】JAVA核心技术-初级课程_第18张图片

映射Map

【慕课学习】JAVA核心技术-初级课程_第19张图片

工具类

  • 不存储数据,在数据容器中实现高效操作

【慕课学习】JAVA核心技术-初级课程_第20张图片

八、JAVA文件读写

文件系统是由操作系统管理、文件分隔符Linux/Unix用/ ;windows用\隔开【程序汇总用“/” “\”作为转译】
文件类:java.io.File
常用方法:
在这里插入图片描述
【慕课学习】JAVA核心技术-初级课程_第21张图片

注意
File类不涉及文件的内容,是用来表示文件的属性
File是访问文件和目录的重要类
【慕课学习】JAVA核心技术-初级课程_第22张图片

【慕课学习】JAVA核心技术-初级课程_第23张图片

JAVA的IO包概述

Java读取文件,只能以数据流的形式读写
【慕课学习】JAVA核心技术-初级课程_第24张图片

文件读写

try-resource方法就是在try后跟括号写流,执行后自动关闭,优秀写法
教程中读写二进制和文本有区别:
读取二进制:字节流→装饰缓存流→转化缓存
读写文件:字节流→转化缓存→装饰缓存流

【慕课学习】JAVA核心技术-初级课程_第25张图片

你可能感兴趣的:(JAVA)