• java 基础笔记


    JDK的安装:

    1. 下载、安装
    2. 配置环境变量

    a)         path:.;%JAVA_HOME%in;

    b)        JAVA_HOME:JDK的安装目录

    c)         classpath

    JDK和JRE和JVM:

    JAVA程序运行过程:

    1. 编译javac :把java源文件编译成class字节码文件
    2. 运行java :运行class文件

    标识符(给类、方法、变量起名)

    1. 字母(采用Unicode字符集)、下划线、$ 开头
    2. 其余部分可以是:字母(采用Unicode字符集)、下划线、$、数字
    3. 不能为关键字

    变量:

    1. 局部变量

    定义在方法内或语句块内。 从属于方法或语句块。

    使用之前,必须要手动初始化!

    1. 成员变量(实例变量 field)

    定义在类里面、方法外面。   从属于对象!

    如果我们没有手动初始化成员变量,系统会自动初始化。初始化的规则如下:

    数字:0,0.0   布尔:false  char:u0000   引用类型:null

    1. 静态变量(类变量)

    定义在类里面、方法外面、使用static修饰。  从属于类!

    如果我们没有手动初始化静态变量,系统会自动初始化。初始化规则同成员变量。

    数据类型:

    1. 1.       基本数据类型

    a)         数字

                             i.              整数:byte(1个字节)  short(2个字节)   int(4个字节,整型常量默认该类型)   long(8个字节)

                           ii.              浮点数:float(4个字节)  double(8个字节,浮点常量默认为该类型)

    b)        字符 char(2个字节)

    c)         布尔  boolean(1位)

    1. 2.       引用类型(4个字节)

    a)         数组

    b)        对象

    c)         接口

    表达式:

    1. 1.       类型的自动提升

    如果有long,结果就是long

    如果有double,结果就是double

    1. 2.       强制转型

     

    运算符:

    1. 1.       赋值运算符(=)

    if(b=true)  if(b)       if(c=3)  if(3==c)

    1. 2.       算术运算符
    2. 3.       关系运算符(==)

    常见错误写法: 1<a<3    1<a&&a<3

    1. 4.       逻辑运算符

    &&, ||, !   

    &,|    3&4

    1. 5.       位运算符

    &,|, <<(左移一位相当于乘以2),>>>(右移一位相当于除以2)

    3*4

    1. 6.       扩展运算符

    +=,-=,*=,/=,%=

    1. 7.       三目运算符

    (布尔表达式)?A:B

    控制语句:

    1. 顺序结构
    2. 选择结构

    a)         If

    b)        If else

    c)         If else if … else

    d)        switch  多值选择  表达式:int或char/short/byte, 枚举

    break问题

    1. 循环结构

    a)         while  先判断后执行

    b)        for

    c)         do  while  先执行后判断

    break: 强制终止整个循环

    continue:结束本次循环,继续下一次!

    面向对象基础:

    1. 对象的进化史

    a)         基本数据类型阶段       数据少     无数据管理时代

    b)        数组                数据多了,将同类型的数据放到一起     弱管理

    c)         结构体          数据多了,数据复杂了。将不同类型的数据放到一起    强管理

    d)        对象    数据多了、类型复杂了、行为复杂了。将不同类型的数据放到一起 超强管理

    对象和类:

    对象是具体的,类是抽象的。  类也是一个模版,通过类这个模版我们也可以new

    对象。

    定义类:

    public[微软用户1]   class  类名[微软用户2]  {

            

             //属性

             private  数据类型  属性名;   //建议增加相应的getter、setter方法

            

             //方法

            

             //构造方法

    }

    构造方法:

    1. 方法名必须跟类名保持一致
    2. 无返回类型
    3. 通过new来调用
    4. 无参构造器问题:

    a)         如果我们没有手动定义构造器,系统会自动为我们添加一个无参的构造器

    b)        如果我们自己定义了构造器,系统就不会为我们添加无参构造器

    1. 构造方法的第一句总是:super,即调用直接父类的构造方法。

    a)         有继承关系的构造方法调用的顺序

    方法的重载(Overload)

    两同(同一个类、同一个方法名)三不同(参数列表不同:;类型、个数、顺序)

    返回值不同,构成重载吗?  No

    形参名称不同,构成重在吗?  No

    this:

             普通方法中,调用本方法的对象。

             构造方法中,正要初始化的对象。

             还可以用来,调用其他的构造方法

    super:

    static:

             用它修饰的变量和方法,就变成了静态变量和静态方法。从属于类。通过类名即可调用。实际存储于方法区中。

    package:

             package必须位于非注释行第一句。

             包名:域名到这写

    import:

             引入外部的类

    Import  static :导入类的静态属性

    final:

             修饰变量:常量(命名规范:全部大写,多个单词之间通过下划线隔开)

             修饰方法:不能被重写

             修饰类: 不能被继承

    面向对象的三大特征:

    封装

             通过private、default 、protected、public关键字实现属性或方法的封装。

             “高内聚,低耦合”

    继承

             通过extends 。两个好处:

    1. 代码重用
    2. 通过继承实现对现实世界更加准确的建模

    类只有单继承,没有像C++那样的多继承

    方法重写(Override)的要点:

    =:方法名保持一致

    >=: 子类权限修饰符可以大于等于父类的。

    <=, <=: 子类的返回值类型小于等于父类的类型。 子类声明异常类型不能超过父类的类型。

    Object类:

    1. 1.       是我们所有类的根基类
    2. 2.       toString
    3. 3.       equals、hashcode
    4. 4.       wait、notify、notifyAll

    多态(polymorphism)

             三个必要条件:继承、方法的重写、父类引用指向子类对象

    动态绑定、静态绑定:

    抽象类:

    1. 包含抽象方法[微软用户3] 的类,一定是抽象类。
    2. 抽象类不能被new。
    3. 抽象类可以包含:普通方法、成员变量、构造方法。

    接口:

    1. interface
    2. 类实现接口:implements    可以实现多个接口
    3. 接口可以多继承
    4. 接口定义的一组规范!实现现实世界中这样的逻辑::如果你是…则必须能…

    内存机制:

    1. 存放局部变量
    2. 不可以被多个线程共享
    3. 空间连续,速度快

    1. 存放对象
    2. 可以被多个线程共享
    3. 空间不连续,速度慢。但是灵活

    方法区

    1. 存放类的信息:代码、静态变量、字符串常量等
    2. 可以被多个线程共享
    3. 空间不连续,速度慢。但是灵活

    垃圾回收器(GC   Garbage  Collection):

    1. 程序员不能调用垃圾回收器。但是可以通过System.gc()建议回收。
    2. finallize:一般也不用的调

     [微软用户1]public class类名需要跟我们文件名相同

     [微软用户2]首字母大写

     [微软用户3]抽象方法必须被子类重写!

  • 相关阅读:
    实现Echarts折线图的虚实转换
    解决Webpack 安装sass时出现的错误
    Videojs视频插件在React中的应用
    overflow应用场景
    【JS Note】字符串截取
    【JS Note】undefined与null
    Web 网页常见问题集锦
    微信内置浏览器中,点击下拉框出现页面乱跳转现象(iphone)
    input美化 checkbox和radio样式
    Discuz!图片查看插件(支持鼠标缩放、实际大小、旋转、下载)
  • 原文地址:https://www.cnblogs.com/duzun/p/5658229.html
Copyright © 2020-2023  润新知