java基础知识串讲

JDK的安装
1:下载,安装
2 :配置环境变量
a) path: ,;%Java_HOME%bin;
b)JAVA_HOME: JDK安装目录
c)classpath
3:JDK和JRE和JVM
JDK:JAVA开发工具包
JRE:运行环境
JVM:虚拟机 
1:编译 :把java源文件编译成class字节码文件
2:运行java:运行calss文件。

标识符:给我们的类方法 变量起名 ;
1:以字母(采用Unicode字符集),下划线,¥开头;
2:其余部分可以使:字母(数字等,下划线)
3: 不能为关键字

变量:内存里内存块
1:局部变量
定义在方法内,或语句块内。
使用之前必须初始化!
2:成员变量(实例变量 field)定义在类里面  ,方法外面。从属于对象!
如果我们没有手动初始化成员变量,系统会自动初始化。初始化规则如下:
数字:0.0.0  布尔:false char:/0000  引用类型:null
3:静态变量(类变量)
定义在类里面 ,方法外面,使用static修饰。从属于类!
系统自动初始化

基本数据类型:
1:基本数据类型:
    a)数字:
        整数:byte (一个字节)short(两个字节) int(四个字节) long(8个字节)
        浮点数:float (四个字节) double(8个字节  默认);
    b)字符:char(2个字节  )
    c)布尔:boolean(一位)
2:引用类型
    a)数组
    b)普通对象
    c)接口不能new
3:表达式:
    a)类型的自动提升:如果有long,结果就是long,  如果有double 结果就是double。
运算符:1:算术运算符
             2:关系运算符   1<a<3 常见错误 1<a&&a<3
             3:逻辑运算符
    && ||  
4:控制语句
    1:顺序结构
    2:选择结构
        a)  if
        b) if else
        c) if else if .....
        d)switch 多值选择  表达式:int 或 char short byte 枚举
    3:循环结构
        a)while 先判断后执行
        b)for
        c)do while 限制性后判断
            break  强制终止整个循环
            continue:结束本次循环,继续下一次!
5:面向对象基础:
    1:对象的进化史
        a) 基本数据类型阶段  数据少   无数据管理时代
        b)数组  数据多了 ,将同类型的数据放到一起  弱管理
        c) 结构体   数据多了 复杂了  将不同的类型数据放到一起  强管理
        d) 对象       数据多了  类型复杂了 行为复杂了。将不通过类型的数据放到一起  超强管理时代

    2:对象和类:
        对象是具体的,类是抽象的。类也是一个模板,通过类的模板我们也可以new对象
定义类:public  class (类名){
    //属性
    private 数据类型  属性名;//增加相应地getter、setter方法
    //方法
    //构造方法(构造器)
    构造方法:
    1:方法名必须跟类名保持一致
    2:无返回类型
    3:通过new来调用
    4:无参构造器
        a)如果我们没有手动定义构造器,系统会自动为我们添加一个无参构造器
        b)如果我们自己定义了构造器,系统就不会为我们添加无参构造器
    5:构造方法的第一句总是:super,即直接调用父类的构造方法
        a)有继承关系的构造方法调用的顺序
    6:方法的重载(Overload):
    两同(同一个类,同一个方法名)三不同(参数列表不同,类型,个数,顺序)
    形参名称不同构成重载吗?no
    返回值类型不同构成重载吗?no
    this: 
    普通方法中:调用本方法的对象
    构造器方法中:正要初始化的对象
    还可以用来调用其他的构造方法
    static:用它修饰的变量和方法,就变成了静态变量和静态方法。从属于类,通过类名即可调用。实际储存于方法中
    package:必须位于第一句。
    包名: 域名倒着写
    import:引入外部的类
    statc import :导入类的静态属性
    final:修饰变量:常量  命名规范:全部大写  多个单词之间通过下划线隔开
              修饰方法:不能被继承
             修饰类:  不能被继

    }
面向对象三大特征:
    封装:
    通过 private  default  protected  public 关键字实现属性或方法的封装,“高内聚, 低耦合”
    继承:
    通过:extends  两个好处:
    1)代码重用
    2) 通过继承实现对现实世界更加准确的建模
    多态(polymorphism):
    三个必要条件:继承  方法的重写 父类的引用只想子类对象。
    类只有单继承
    方法的重写Override:
    =: 方法名保持一致
    >=: 子类权限修饰符可以大于等于父类的
    <=: 子类的返回值类型小于等于父类的类型。子类声明异常不能超过父类的类型
    Object:
    1:使我们所有类的根基
    2:toString
    3:equals、hashcode
    4:wait、 notify、 notifyAll;
    动态绑定、静态绑定
    抽象类 abstract:
    1:包含抽象方法的类,一定是抽象类;
    2:抽象类不能被new
    3:抽象类可以包含:普通方法、成员变量 构造方法
    接口:
    1:interface
    2:类实现接口:implements 可以实现多个接口
    3:接口可以多继承
    4:接口定义了一组规范:实现现实世界中这样的逻辑:如果你是....必须是....
    内存机制:
    栈:
    1:存放变量
    2:不可以多个线程共享
    3:空间连续,速度快
    堆:
    1:存放new出的对象
    2:可以被多个线程共享
    3:空间不连续 速度慢  但是灵活
    方法区:
    1:存放类的信息:代码、静态变量、字符串常量
    垃圾回收机制(GC Garbage Collection):
    1:程序员不能调用垃圾回收器。但是可以通过System.gc()建议回收、
    2:finalliza:一般也不用去调用。
    
    递归算法:
    1:递归头:什么时候不调用自己
    2:递归体:什么时候调用自己
异常机制:
    1:try catch  finally
    2:声明抛出异常:throws 
    3: 手动抛出异常: throws\
    4:自定义异常
        a)extends Exception或者其他的子类

数组:
    1:长度固定,不可变
    2:所有元素的类型一致
    3:元素的类型可以为任意元素
    4:通过下标来引用相关元素。下标不能超过lenth-1
    5:数组也是对象,数组的元素可以看做对象的成员变量,所以,成员变量自动初始化的规则也适用于数组元素。
    6:多维数组:数组的元素是数组。
    7:数组的三种初始化的方式:
        a)动态初始化
        b)静态初始化 int【】 a = {2,3,5};
        c)默认初始化
    8:Arrays类,包含了对输出元素的排序,查找。
    9:算法:
        a)冒泡排序
        b)二分法
    
容器:
    1:Collection
        a)List(有序可重复)
            ArrayList:底层用数组实现,线程不安全,效率高
            Linkedlist:底层用双向链表实现。线程不安全,效率高
            Vector:底层用数组实现,线程安全,效率低
        b)Set(无序,不可重复) HashSet(内部的使用HasMap实现)
    2:Map:
        采用“Key-value”来储存我们的数据
        a) HashMap线程不安全,效率高
        b)HasTtable 线程安全,效率低
    3:lterator
        通过他,可以实现遍历元素中元素
    4:泛型
    5:Collection个 工具类
常用类:
    1:包装类:
        实现了基本数据类型和对象的互相转化,自动装箱,自动拆箱
    2:String/StringBuilder/StringBuffer
         StringBuilder:可变字符序列,线程不安全
         StringBuffer:可变字符序列,线程安全
    3:时间:
        Date,DateFormat,Calendar
    Date:使用毫秒数来表示我们的时间概念
    DateFormat:实现Date对象跟String对象的相互转换(跟定指定格式相互转化)
    Calender:日期类、实现了将人的日期的概念跟Date的相互转换
    4:file
    代表文件或者目录的一个抽象
    5:Math
    数学类
    6:枚举
    如果我们要定义一族常量,建议使用枚举
    不要学习和使用枚举的高级特性
IO流:
    1:InputStream
        a) FileInputStream
        b)ByteArrayInputStream
        c)ObjectInputStream
        d)DataInputStream
        e)BufferedInputStream
    2:OutputStream
        a)FileoutPutStream
        b)ByteArrayOutputStream
        c)ObjectOutPutStream
        d)DataOutputstream
        e)PrinStream
        f)BufferedOutPutStream
    3:Reader
        a)FileReader
        b)InputStreamReader:转换流,将字节流转化成字符流
        c)BufferedReader
    4:Writer
        a)File Wirter
        b)Output Stream Writer:转化流:将字节流转换成字符流
        c)BufferedWriter
多线程:
    1:定义多线程类的两种方式
        a)ExtendsThread
        b)ImplementsRunnalbe
    2:线程的状态
        a)new
        b)就绪状态(调用start方法后)
        c)运行状态
        d)阻塞状态
        i: sleep:不会释放持有的线程锁
        ii:join:等待另一个线程执行完成
        iii:wait:会释放持有的对象锁
        iiiv:synchronized。运行同步代码,但是没有多的指定对象的锁,于是进入指定对象的锁池等待
        e)终止:
        i:不建议使用,stop,destroy直接终止
        ii:建议通过boolean变量,正常终止线程运行
    3:线程的优先级:
        a)1-10默认是5
        b)优先级别低,并不是不被打调用
    4:资源同步:
        synchronized 修饰方法修饰方法块
    5:死锁
        建议不要同时持有多个对象的锁
网络编程:
    1:InetAnddress:封装了IP和DNS,没有端口
    2:InetSocketAddress:封装了IP和端口
    3:URL:代表一个网络的资源
        a)openStream
    4:TCP通讯
        a)特点:面向连接、安全、稳定
        b)ServerSocket    
        c)Socket
    5:UDP通信
        a)特点:不面向连接。可能会丢失数据。发送数据效率不高
        b)DatagramPacket:数据打包
        c)DategramSocket:数据发送和接受
GUI编程(AWT,SWING,SWT):
    1:组件
        a)Component(普通组件,容器)
    2:布局管理器
        a) FlowLayout
        b)BorderLayout
        c)CardLayout
        d)GridLayout
    3:事件
        a)事件对象
        b)事件源对象,组件
        c)监听器(一般采用匿名内部类来定义)
            i:KeyListener  KeyAdapter
               WindowListener  WindowAdapter
               MouseListener Mouseadapter
             
    4:菜单制作
        a)MenuBar
        b)Menu
        c)Memultem
        d)CheckBoxMenultem
        e)MenuShorcut:定义菜单项的快捷键
多媒体编程:
    1:字体 Font
    2:Graphics
    3:做音视频处理:JMF
    

    
    
        

    


 

    
           

    
    ·

目 录 第一章 JAVA入门 10 计算机语言发展史 10 机器语言 10 汇编语言 10 高级语言 10 其他高级语言 11 JAVA发展简史 12 JAVA为什么能够流行? 13 JAVA各版本的含义 13 JAVA技术体系架构 14 JAVA的特性和优势 14 JAVA应用程序的运行机制 15 JVM(JAVA VIRTUAL MACHINE) 16 Java运行时环境JRE(Java Runtime Environment) 17 JAVA语言应用范围 18 第一个JAVA程序 18 JAVA开发环境搭建 18 一个典型的JAVA程序的编写和运行过程 19 第一个程序常见错误 20 第一个JAVA程序的总结和提升 20 常用Java开发工具 20 常用dos命令 21 本章笔试作业 21 本章上机操作 21 第二章(1) 编程的基本概念 22 注释 22 标识符 22 关键字/保留字 23 变量(variable) 24 常量(Constant) 25 命名规则(规范) 25 基本数据类型(primitive data type) 26 整型变量 26 浮点型 27 字符型(2个字节): 28 boolean类型 29 运算符(operator) 29 二元运算符 29 一元运算符 30 布尔逻辑表达符 30 位运算符 30 扩展运算符 31 字符串连接符 31 三目条件运算符 31 运算符优先级的问题 31 自动类型转换 32 基本类型转化时常见错误和问题 33 方法 33 简单的键盘输入和输出 33 本章思考作业 34 上机操作 34 第二章(2) 控制语句 35 顺序结构 35 选择结构 35 if单选择结构 35 if-else双选择结构 35 If-elseif-else多选择结构 36 switch多选择结构 37 循环结构 39 While和dowhile的区别 41 For循环 42 break语句和continue语句 47 语句块 48 递归结构 49 本章作业 50 本章上机操作 51 第三章 JAVA面向对象程序开发 52 编程语言发展史 52 类和对象是如何产生发展的?如何进化的? 52 面向对象思想初步(OOP初步Object Oriented Programming) 53 面向对象编程的语言的三大特征简介 56 对象和类的概念 56 类和对象初步 57 测试类的定义方式 57 简单的学生类编写示例 58 内存分析 59 属性(field,或者叫成员变量) 59 引用类型 60 类的方法 60 对象的创建和使用 60 构造器(或者叫做构造方法,constructor) 60 垃圾回收机制(Garbage Collection) 63 方法的重载(overload),构造方法的重载 63 this关键字 65 static 关键字 66 静态初始化块(经常用来初始化类,加载类信息时执行!) 67 package 68 JDK中的主要包 68 import 68 eclipse的使用 69 继承(extend, inheritance) 70 为什么需要继承?继承的作用? 70 继承介绍 70 如何实现继承? 70 继承使用要点 71 Object类 72 toString方法 72 equals方法 73 super关键字 74 方法的重写(override) 74 隐藏/封装(encapsulation) 75 为什么需要封装?封装的作用和含义? 75 使用访问控制符,实现封装 76 封装的使用细节 76 多态(polymorphism) 76 为什么需要多态? 76 如何实现多态? 77 方法绑定(method binding) 77 静态绑定 77 动态绑定 77 多态的使用要点 78 对象的转型(casting) 79 final 81 抽象类 82 抽象类的使用要点 83 接口 83 为什么需要接口? 84 如何定义接口? 84 接口的本质探讨 84 接口使用要点 85 接口的多继承 86 面向接口编程 87 OOP更多应用 87 组合 87 内部类(innerclasses) 88 字符串(java.lang.String类)的使用 90 字符串相等的判断 92 思考作业 93 上机作业 94 第四章 异常机制 95 导引问题 95 异常(Exception)的概念 96 异常分类 96 Error 97 Error和Exception的区别 97 Exception 97 异常的处理办法之一,捕获异常 99 try块 99 catch 99 finally 100 try, catch,finally ,return 执行顺序 100 异常的处理办法之二,声明异常: throws子句 101 方法重写中声明异常原则 102 异常的处理办法之三,手动抛出异常,throw子句 103 自定义异常 103 使用异常机制建议 104 总结 105 思考作业 105 上机作业 105 第五章 数组 106 数组概述和特点 106 创建数组和初始化 106 数组常见操作 108 数组的拷贝 108 数组排序 109 多维数组 110 附录(面试前复习一下!!) 111 冒泡排序 111 二分法查找 112 命令行参数的问题 113 增强for循环 114 思考作业 114 上机作业 115 第六章 常用类的使用 117 基本数据类型的包装类 117 包装类基本知识 117 包装类的用途 118 自动装箱和拆箱?autoboxing,unboxing 119 字符串相关类(String、 StringBuffer 、 StringBuilder) 120 String类的常用方法(已讲过,不再讲!) 120 StringBuffer和StringBuilder 121 String和StringBuffer和StringBuilder使用要点 123 时间处理相关类 124 Date时间类(java.util.Date) 124 DateFormat类和SimpleDateFormat类 125 Calendar日历类 126 可视化日历的编写 128 Math类 131 File类 132 File类的基本用法 132 树状结构展现文件结构 133 枚举 133 上机作业 135 第七章 容器(Collection) 136 容器的作用和概览 136 容器中的接口层次结构 136 Collection接口 137 LIST接口 137 SET接口 138 Map接口 138 Iterator接口 139 遍历集合 140 Collections工具类 141 Comparable接口 141 equals和hashcode方法 143  泛型 144 思考作业 145 上机作业 145 第八章 IO技术 146 为什么需要学习IO技术 146 基本概念 146 数据源 146 流的概念 146 第一个简单的IO流程序及深入(将文件中的数据读入) 146 Java中流的概念细分 148 Java中IO流类的体系 149 四个IO基本抽象类 150 InputStream 150 OutputStream 150 常用InputStream和OutputStream子类用法 150 FileInputStream和FileOutputStream 150 ByteArrayInutStream和ByteArrayOutputStream 154 BufferedInputStream和BufferedOutputStream 156 DataInputStream和DataOutputStream 157 ObjectInputStream和ObjectOutputStream 158 PrintStream 158 Reader 158 Writer 159 FileReader和FileWriter 159 BufferReader和BufferWriter 159 InputStreamReader和OutputStreamWriter 161 JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 161 序列化涉及的类和接口 162 序列化/反序列化的步骤和实例 162 综合的序列化和反序列化练习 163 JAVA.IO包相关流对象用法总结(尚学堂1002班王鑫) 165 IO中其他常用类 165 File类 165 RandomAccessFile 166 思考作业 166 上机作业 166 提高课外作业 166 第九章 多线程技术 167 基本概念 167 程序 167 进程 167 线程 167 线程和进程的区别 167 进程与程序的区别 168 JAVA中如何实现多线程(重点!!) 168 通过继承Thread类实现多线程 168 通过Runnable接口实现多线程 169 线程状态和sleep/yield/join/stop/destroy方法 170 新生状态 170 就绪状态 170 运行状态 170 死亡状态 170 终止线程的典型方法(重要!!!) 171 阻塞状态(sleep/yield/join方法) 171 线程基本信息和优先级别 173 线程同步和死锁问题 175 死锁及解决方案 179 生产者/消费者模式 181 线程回顾总结 184 任务调度(补充内容,了解即可!) 184 思考作业 185 上机作业 185 第十章 网络编程 186 基本概念 186 什么是计算机网络 186 计算机网络的主要功能 186 什么是网络通信协议 186 网络通信接口 186 为什么要分层 186 通信协议的分层规定 186 数据封装 188 数据拆封 188 IP 188 端口 188 URL 189 TCP协议和UDP协议 189 区别 189 TCP协议 189 UDP协议 190 JAVA网络编程 190 InetAddress 190 InetSocketAddress 191 URL类 191 基于TCP协议的SOCKET编程和通信 193 UDP通讯的实现 201 思考作业 203 上机作业(分组完成,3人一组,周末完成) 204 第十一章 JAVA多媒体编程 205 字体 205 字体示例和效果 205 颜色 206 颜色编程示例 206 图形绘制 206 绘制各种图形示例 207 图像处理 208 加载图片示例 208 图片任意缩放并输出新图片 209 使用JMF处理音频和视频 211 JMF的下载 211 JMF的安装和配置 211 使用JMF播放音频文件 212 上机作业 213 第十二章 GUI编程之AWT 214 为什么需要GUI?GUI是什么? 214 AWT是什么? 214 AWT的优势 214 AWT的缺点 214 为什么还需要学习AWT? 215 AWT各组件的整体关系 215 组件 215 容器 216 布局管理器 218 为什么需要布局管理器? 218 FlowLayout布局管理器 218 BorderLayout布局管理器 219 CardLayout布局管理器 220 GridLayout布局管理器 220 GridBagLayout布局管理器 221 综合应用组件和容器和布局管理器 221 AWT事件处理模型 223 问题 223 事件处理模型是什么? 223 最简单的事件处理程序 224 AWT中事件处理代码编写 225 编写过程 225 处理过程 225 简化理解上面过程 225 事件和事件源对象 225 事件适配器 232 为什么需要事件适配器 232 事件监听器常见的定义形式 233 AWT其他组件 233 菜单的实现 233 特点 233 代码示例和效果 233
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值