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
    

    
    
        

    


 

    
           

    
    ·

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值