JavaSE核心技术——知识点总结(一)

第一章:认识Java

1、java语言特点(有*的为必须知道的,其他选答)

 *1. 跨平台
 *2. 半编译半解释
 *3. 面向对象
 4. 简单
 5. 分布式
 6. 健壮
 7. 多线程

2、数据类型

基本数据类型
    整型 
        byte(1个字节     表示范围:-2^7 ~ (2^7)-1) 
        short(2个字节    表示范围:-2^15~(2^15)-1) 
        int(4个字节      表示范围:-2^31 ~ (2^31)-1) 
        long(8个字节     表示范围:-2^63 ~ (2^63)-1)
    浮点型
        floot(324个字节)
        double648个字节)
    字符型
        char(16位,2个字节)
    布尔型
        boolean(两个值:truefalse)
引用数据类型
    数组
    类
    接口

第二章、变量和运算符

1、数据类型转换

隐式转换
    小类型的数据赋进大类型的变量
    eg:
        byteshortintchar运算时都转换为int
        `short s = 1;
            s= s+1;`这是错误运算应改成s+=1;

显示转换
    小类型的变量=(小类型)大的数据`会造成精度的丢失`

2、运算符

算数运算符
    `+`  加法 、`-`  减法、`*`  乘法、`/`  除法
    `%` 取余 `++` 自增 `--` 自减 `+` 字符连接符(当操作数中只要有一个是String类型,系统会自动将另一个操作数转换成字符串类型,然后进行连接)
赋值运算符
    `=` 
关系运算符(结果为boolean类型)
逻辑运算符
位运算

3、标识符

标识符的命名规则
    必须以字母、下划线(_)或美元符号($)开头
    余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限。标识符中不能有空格。
     不能使用Java中的关键字或者保留字做为标识符

类名:   Pascal规则  eg:Person StudentDemo
方法名:  Camel规则    eg:getAge setUserName
包名:    全部小写     eg:com.neusoft
常量名:  全部大写      eg:MAX_VALUE

第三章:流程控制语言

1、流程控制语句

    条件控制
        if……else……
        switch
    循环控制
        for
        while
        do……while

第四章、数组

数组:数组可以看成多个相同类型的数据的组合,实现对这些数据统一管理
数组的长度:数组中元素的个数
数组的其他基本概念
    数组的索引 -- index
    数组的类型 -- type
    数组的名称 – name
数组的声明
    `数组类型[ ] 数组名`
数组的创建
    `数组名 = new 数据元素类型[元素个数]`
数组的初始化
    `数组类型 数组名[ ] = { 元素1 ,元素2 ,…}`
    `数组类型 数组名[ ] = new  数据类型[ ]{ 元素1 ,元素2 ,…}`
数组的访问
    Java中,数组元素的下标从0开始
    元素的下标可以是整型常量或整型表达式
    赋值:数组名[元素下标] = 元素值
    取值:数据元素类型 变量名 = 数组名[元素下标]
数组的遍历
    `for(int i = 0;i<数组长度;i++){
        数组名[i];
    }`
多维数组创建
    数组类型[ ] [ ] 数组名
数组的复制
    `System.arraycopy(source,srcPos,dest,destPos,length)`
    复制source数组中从下标srcPos开始的length个元素到目标数组dest,并从目标数组的下标为destPos的位置开始储存
        source: 源数组
        srcPos: 源数组中的起始位置
        dest: 目标数组
        destPos:目标数组中的起始位置
        length: 要复制的数组元素的个数
数组的排序
    Arrays.sort(数组名)
        对数组排序
    Arrays.sort(数组名,fromIndex,toIndex)
        对数组从下标为fromIndex到toIndex的数组排序(不包括下标为toIndex的元素)

第五章、方法的创建和调用

什么是方法
    方法是完成某个功能的一组语句,通常将常用的功能写成一个方法
方法的定义
    `[访问控制符] [修饰符] 返回值类型 方法名(参数列表){
        方法体
    }`
        修饰符:public 、static 被称为修饰符(后续会详细讲解它们);
        返回值类型:用来说明该方法运算结果的类型。如果返回其他类型,编译就可能出错;
        方法名:它作为调用时引用方法的标识;
        参数列表:方法的参数个数可以是0个到多个,每个参数前面要声明参数的数据类型;每个参数要用逗号分开。也可以一个参数都没有。
        方法体:它是一个语句块,执行特定的功能操作。对于有返回值类型的方法,方法体当中最后一个语句是return关键字,它的作用是把方法的执行(运算)结果返回到方法外部。 
        return 表达式 :这里,进一步分析,return后面的表达式就是方法的返回值。需要注意表达式的类型,必须与方法头中声明的“返回类型”相 匹配。
        *形式参数:在方法被调用时用于接受外部传入的变量
        *参数类型:就是该形式参数的数据类型
        *返回值:方法在执行完毕后返回给调用它的程序的数据
        *返回值类型:方法要返回的结果的数据类型
方法的分类
    根据参数个数
        无参方法
        有参方法
    根据返回值类型
        有返回值方法
            `返回值类型可以是基本数据类型,也可以是引用数据类型`
        无返回值方法
            void`(void不可以省略,必须要写,用来占位)`
方法的调用
    方法只有在被调用后才能生效
    方法的调用方法
        无参方法的调用
            `方法名()`
        有参方法的调用
            `方法名(实参列表)`
            `*注:实参列表与定义方法时的形参列表需一致`
使用方法时的注意问题
    形参必须注明数据类型
    实参直接写,不需要类型声明
    return只能返回一次
    遇到return语句,方法执行结束,后续语句不执行
    方法的返回值必须与声明中的返回值类型匹配
    方法不能嵌套定义,但可以嵌套调用
方法的重载
    方法的重载就是在同一个类中允许同时存在一个以上同名的方法
方法重载的规则
    重载发生在一个类中
    方法名称相同
    方法的参数列表不同
         `参数个数不同`或`参数类型不同`
    与返回值类型无关,可相同,也可以不同
方法的重写
    重写(rewrite)
    对从父类中继承来的方法进行改造
    在子类继承父类时发生
方法重写的规则
    方法名称相同
    方法的参数列表相同(参数数量、参数类型、参数顺序都要相同)
    方法的返回值类型相同
    子类重写方法的访问权限要不小于父类中被覆盖方法的访问权限

第六章、面向对象编程

1、面向对象的基本概念:

对象(object):
    是系统中用来描述客观事物的一个实体。
        可以是有形的,也可以是无形的(如一个客户,一张银行卡,窗体中的一个按钮等等)
        对象是构成世界的一个独立单位
        具有自己的静态结构(属性)和动态行为(方法)
        每个对象有自己的唯一标识
类(class):
    类是一组具有相同属性和行为的对象的抽象,类的作用是用来创建对象,对象是类的一个实例
类和对象的关系
    抽象和具体的关系。
    每一个类在某一时刻都有零个或更多的实例, 类是生成对象的模板
    一个类定义了使用哪些数据来描述属性,每一个对象都有相应的属性值数据,一个类通过一系列方法来定义行为,这些方法能在每个对象中被激活

2、面向对象的主要特征:

封装
    所谓封装是把对象的属性和行为结合在一个独立的系统单位内部
    尽可能隐蔽对象的内部细节,只向外部提供接口
    降低对象间的耦合度
    封装的重要意义:
        使对象能够集中而完整地描述并对应一个具体事物
        体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据
继承
    也称泛化
    是子类自动共享父类属性和方法的机制
    除了继承父类属性和方法,还可以加入自己的新的内容
    有益于软件复用
    是类之间的一种关系
多态
    指同一个命名可以具有不同的语义
    常指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为,对于子类,可用不同的方法替代实现父类的服务的方法

3、类

什么是类
    把相似对象划成一个类
类的格式
    `[类修饰符] class  类名{
        类的成员
    }`
        修饰符一般为public,也可以没有修饰符。
        注意类名的命名规范。类名首字母一般大写
        类的成员
            成员变量(属性)
            成员方法(方法)
            嵌套类
        通过“.”调用属性和方法
成员变量 
    [修饰符] 类型 属性名 = 默认值;

4、对象的创建和使用

什么是对象
    类(class) — 是对某一类事物的描述
    对象(object) — 是实际存在的某类事物的个体,也称为实例(instance)
    类是创建对象的模板,对象是类的实例
构造器
    具有与类名相同的名称
    不含返回值类型
    不能在方法中用return语句返回一个值
    一般访问权限是public
构造器作用
    完成对象的创建,即完成对象的初始化;
    一般使用构造器来完成对成员变量的初始化
注*
    没有明确的写出构造方法,在编译时编译器会发现该类没有构造器,这时编译器会自动的给这个类增加一个构造器,该构造器没有任何参数,我们称之为“默认的空构造器”
    相反,如果我们在编写时,手写了一个或是若干个带参的构造器,那么,这个不带参的空构造器就不会再自动产生并存在。在这样的情况下,如果在某些情况下还想使用这样的无参数默认构造器的话,最好还是养成手写出这个无参数的构造器来,以备后用
默认构造器
    在Java中,每个类都至少要有一个构造器,如果程序员没有在类里定义构造器,系统会自动为这个类产生一个默认的访问权限为public且参数列表为空的构造器
对象创建的内存模型
    在Java中所有的变量、数组、对象都是分配在内存中的
        局部变量
        实例变量
        静态变量
    内存的类别
        栈:存取速度比堆块,效率高
        堆:堆可以保存那些堆空间要求较大的变量
        凡是出现关键字new的地方必定分配了一个堆内存
        我们在实例化一个对象时,同时操作了栈内存和堆内存。在栈内保存对象的首地址,即 引用;
        访问对象:在其他类中或main方法中,若想访问对象的属性或是方法必须先实例化这个类,然后通过对象名(引用)和点操作符来完成
        如果在 类内的方法中,访问本类的属性和方法就可以 直接访问了。
匿名对象
    创建完对象,在调用该对象的方法时,也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫匿名对象
    使用匿名对象的情况
        如果对一个对象只需要进行一次方法调用
垃圾回收机制:
    finalize()关键字
变量的作用域
    类变量:用static修饰的成员变量
    实例变量:非static的属性
    局部变量
        方法体中声明的变量,方法中的参数,或代码块中声明的变量,都是局部变量
        局部变量只在方法调用的过程中有效,方法调用结束后失效

5、this关键字

this关键字
    代表对象自身的引用
        一个引用
        指向调用该方法的当前对象
    通常在类的方法定义中使用
this关键字使用情况
    在方法中变量与成员变量名称相同
    在一个构造器中,调用其他重载器的构造器
    返回当前对象的引用

你可能感兴趣的:(Java)