新手初学Java面向对象

目录
  • java面向对象
  • 知识点
  • 总结

java面向对象

面向对象【Java语言的核心机制,最重要的内容,Java语言的特色】
    * 面向过程和面向对象的区别
        - 面向过程:主要关注点是:实现的具体过程,因果关系【集成显卡的开发思路】
            * 优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低。
            * 缺点:采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的
            方式导致软件元素之间的“耦合度”非常高,只要其中一环出问题,整个系统受到影响,
            导致最终的软件“扩展力”差。另外,由于没有独立体的概念,所以无法达到组件复用。
        - 面向对象:主要关注点是:主要关注对象【独立体】能完成哪些功能。【独立显卡的开发思路】
            * 优点:耦合度低,扩展力强。更容易解决现实世界当中更复杂的业务逻辑。组件复用性强。
           * 缺点:前期投入成本较高,需要进行独立体的抽取,大量的系统分析与设计。
                - C语言是纯面向过程的、C++半面向对象、Java纯面向对象
        - 现在出现的一些新的编程语言多数都是面向对象的。人在认识现实世界的时候以面向对象的方式。
        - 面向对象更符合人的思维方式。
    * 面向对象的三大特征【先背会】
        - 封装
        - 继承
        - 多态
        所有面向对象的编程语言都有这三大特征。
           采用面向对象的方式开发一个软件,生命周期当中:【整个生命周期中贯穿使用OO面向对象方式】
            * 面向对象的分析:OOA
            * 面向对象的设计:OOD
            * 面向对象的编程:OOP
    * 类和对象的概念
        * 什么是类?
            - 类在现实世界当中是不存在的,是一个模板,是一个概念。是人类大脑思考抽象的结果。
            - 类代表了一类事物。
            - 在现实世界当中,对象A与对象B之间具有共同特征,进行抽象总结出一个模板,这个模板被称为类。
       * 什么是对象?
            - 对象是实际存在的个体。现实世界当中实际存在。
               * 描述一下整个软件开发的过程:
            * 程序员先观察现实世界,从现实世界当中寻找对象
            * 寻找了N多个对象之后,发现所有的对象都有共同特征
            * 程序员在大脑中形成了一个模板【类】
            * Java程序员可以通过java代码来表述一个类
            * Java程序中有了类的定义
            * 然后通过类就可以创建对象
            * 有了对象之后,可以让对象直接协作起来形成一个系统。
                * 类--【实例化】->对象
        * 对象又被称为实例/instance
        * 对象--【抽象】-->类
        * 重点:
            类描述的是对象的共同特征。
            共同特征例如:身高特征
            这个身高特征在访问的时候,必须先创建对象,通过对象去访问这个特征。
            因为这个特征具体的某个对象上之后,值不同。有的对象身高1.80,有的
            对象身高2.80。
                * 一个类主要描述什么信息呢?
            一个类主要描述的是 状态 + 动作。
            状态信息:名字、身高、性别、年龄
            动作信息:吃、唱歌、跳舞、学习
            状态--> 一个类的属性
            动作--> 一个类的方法
               *
            类{
                属性; //描述对象的状态信息
                方法; //描述对象的动作信息
            }
            注意:
                状态和动作当具体到某个对象上之后,发现最终的结果可能不一样。
                对象和对象之间有共同特征,但是具体到对象之后有数据的差异。
    * 类的定义【从这里开始编写代码】
        语法结构:
            [修饰符列表] class 类名{
                属性;
                方法;
            }
                学生类,描述所有学生对象的共同特征:
            学生对象有哪些状态信息:
                * 学号【int】
                * 名字【String】
                * 性别【boolean】
                * 年龄【int】【年龄是一个属性,年龄是一个数据,是数据就应该有数据类型】
                * 住址【String】
                .....
            学生对象有哪些动作信息:
                * 吃饭
                * 睡觉
                * 学习
                * 玩
                * 唱歌
                * 跳舞
                ....
                    重点:属性通常是采用一个变量的形式来完成定义的。
            int no;
            int age;
            String name;
            String address;
            boolean sex;
       * java语言中包括两种数据类型:
        - 基本数据类型
            byte
            short
            int
            long
            float
            double
            boolean
            char
        - 引用数据类型
            String.class SUN提供的
            System.class SUN提供的
           Student.class 程序员自定义的
            User.class 程序员自定义的
            Product.class 程序员自定义的
            Customer.class 程序员自定义的
            ......
                - java语言中所有的class都属于引用数据类型。
// 定义一个类,类名Student
// Student是一个类,代表了所有的学生对象,是一个学生的模板。
public class Student{    // 定义一个公开的类,起名Student
    // 属性【描述的是对象的状态信息】
    // 熟悉通常采用变量的方式来定义
    // 在类体当中,方法体之外定义的变量被称为“成员变量”
    // 成员变量没有赋值,系统赋默认值:一切箱0看齐。
    // 学号
    int no;
    // 姓名
    String name;
    // 性别
    boolean sex;
    // 年龄
    int age;
    // 住址
    String address;
    // 方法
    // 方法描述的是对象的动作信息
    // 当前例子就只描述属性了
}
// 学生类
// 学生类是一个模板
// 描述了所有学生的共同特征【状态+行为】
// 当前类只描述学生的状态信息【属性】
// Student是类,属于引用数据类型,这个类型名就是:Student
public class Student{
    // 类体-属性+方法
    // 属性【存储数据采用变量的形式】
    // 由于变量定义在类体当中,方法体之外,这种变量称为成员变量
    // 所有学生都有学好信息
    // 但是每一个学生的学号都是不同的
    // 所以要访问这个学号必须先创建对象,通过对象去访问学号信息
    // 学号信息不能直接通过“类”去访问,所以这种成员变量又被叫做:实例变量
    // 对象又被称为实例,实例变量又成为对象变量。【对象级别的变量】
    // 不创建对象,这个no变量的内存空间是不存在的,只有创建了对象,这个no变量内存空间才会创建
    int no;
    // 姓名
    String name;
    // 年龄
    int age;
    // 性别
    boolean sex;
    // 住址
    String addr;

}
// 成员变量没有手动赋值的话,系统赋默认值
// 默认值
/*
    数据类型                      默认值
    ---------------------------------
    byte,short,int,long        0
    float,double                0.0
    boolean                        false
    char                        \u0000
    引用数据类型                null 空值
*/
// -----------------------------------------------------------------------------------------------------
/*
    对象的创建和使用
*/
public class OOTest01
{
    public static void main(String[] args){
        // int 是基本数据类型
        // i 是一个变量名
        // 10是一个int类型的字面值
        int i = 10;
        // 通过一个类可以实例化N个对象
        // 实例化对象的语法:new 类名();
        // new是java语言当中的一个运算符
        // new运算符的作用是创建对象,在JVM堆内存当中开辟新的内存空间
        // 方法区内存:在类加载的时候,class字节码片段被加载到该内存空间当中
        // 栈内存(局部变量):方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈
        // 堆内存:new的对象在堆内存中存储
        // Student是一个应用数据类型
        // s 是一个变量名
        // new Student()是一个学生对象
        // s是一个局部变量【在栈内存中存储】
        // 什么是对象?new运算符在堆内存中开辟的内存空间称为对象
        // 什么是引用?引用是一个变量,只不过这个变量保存了另一个java对象的内存地址
        // java语言当中,程序员不能直接操作堆内存,java中没有指针,不像c语言
        // java语言当中,程序员只能通过“引用”去访问堆内存当中对象内部的示例变量
        Student s = new Student();
        // 访问实例变量的语法格式:
        // 读取数据:引用.变量名
        // 修改数据:引用.变量名 = 值
        /*
        int stuNo = s.no;
        String stuName = s.name;
        int stuAge = s.age;
        boolean stuSex = s.sex;
        String stuAddr = s.addr;
        System.out.println("学号 = " + stuNo);
        System.out.println("姓名 = " + stuName);
        System.out.println("年龄 = " + stuAge);
        System.out.println("性别 = " + stuSex);
        System.out.println("地址 = " + stuAddr);
        */
        s.no = 10;
        s.name = "jack";
        s.age = 20;
        s.sex = true;
        s.addr = "深圳";
        System.out.println("学号 = " + s.no);    // 10
        System.out.println("姓名 = " + s.name);    // jack
        System.out.println("年龄 = " + s.age);    // 20
        System.out.println("性别 = " + s.sex);    // true
        System.out.println("地址 = " + s.addr);    // 深圳
        // 编译报错,no这个实例变量不能直接采用”类名“的方式访问
        // 因为no是实例变量,对象级别的变量,变量存储在java对象的内部,必须先有对象
        // 通过对象才能访问no这个实例变量,不能直接通过"类名"访问
        // System.out.println(Student.no);
        // 在通过类实例化一个全新的对象
        // stu是一个引用类型
        // stu同时也是一个局部变量
        // Student是变量的数据类型
        Student stu = new Student();
        System.out.println("学号 = " + stu.no);        // 0
        System.out.println("姓名 = " + stu.name);    // null
        System.out.println("年龄 = " + stu.age);    // false
        System.out.println("性别 = " + stu.sex);    // 0
        System.out.println("地址 = " + stu.addr);    // null
    }
}

/*
    局部变量在栈内存中存储
    成员变量中的实例变量在堆内存的java对象内存存储
    实例变量是一个对象一份,100个对象有100份。
*/

// 用户类
public class User{
    // 属性【以下都是成员变量之实例变量】
    // 用户编号
    // int 是一种基本数据类型:整数型
    // no是一个实例变量
    int no;
    // 用户名
    // String 是一种引用数据类型:代表字符串
    // name是一个实例变量
    // name是一个引用
    String name;
    // 家庭住址
    // Adddress是一种引用数据类型:代表家庭住址
    // addr是一个实例变量
    // addr是一个引用
    Address addr;
}
// ----------------------------------------------------------------------
// 家庭住址类
public class Address{
    // 属性成员变量之实例变量】
    // 城市
    // String是一种引用数据类型,city是一个变量名,属于实例变量
    // oity是一个引用:保存内存地址的一个变量,该变量保存内存地址指向了堆内存当中的对象
    String city;
    // 街道
    String street;
    // 邮编
    String zipcode;
}
// ----------------------------------------------------------------------
// 测试类
public class OOTest02{
    public static void main(String[] args){
        // 创建User对象
        // u是局部变量
        // u是一个应用
        // u保存内存地址指向堆内存的User对象
        User u = new User();
        // 输出User对象内部实例变量的值
        System.out.println(u.no);    // 0
        System.out.println(u.name);    // null
        System.out.println(u.addr);    //  null
        // 修改User对象内部实例变量的值
        u.no = 110;
        u.name = "jack";    // "jack" 是一个java对象,属于String对象
        u.addr = new Address();
        // 在main方法当中目前只能看到一个引用“u”
        // 一切都是只能通过u来进行访问
        System.out.println(u.name + "居住在那个城市:" + u.addr.oity);
        System.out.println(u.name + "居住在那个街道:" + u.addr.street);
        System.out.println(u.name + "居住在那个邮编:" + u.addr.zipcode);
        u.addr.oity = "深圳";
        u.addr.street = "福田";
        u.addr.zipcode = "516600";
        System.out.println(u.name + "居住在那个城市:" + u.addr.oity);
        System.out.println(u.name + "居住在那个街道:" + u.addr.street);
        System.out.println(u.name + "居住在那个邮编:" + u.addr.zipcode);

    }
}

public class OOTest03{
    public static void main(String[] args){
        // u是引用
        // u是局部变量
        User u = new User();
        // 上一个版本中编写的
        // u.addr = new Address();
        // a是引用
        // a是局部变量
        Address a = new Address();
        u.addr = a;

        System.out.println(u.addr.city); // null
        a.city = "天津";
        System.out.println(u.addr.city);  // 天津
        u.addr.city = "深圳";
        System.out.println(u.addr.city);    // 深圳
    }
}

// 丈夫类
public class Husband{
    // 姓名
    String name;
    // 丈夫对象当中含有妻子引用
    Wife w;
}
// -----------------------------------------------------------------

// 妻子类
public class Wife{
    // 姓名
    String name;
    // 妻子对象当中含有丈夫引用
    Husband h;
}
// -------------------------------------------------------------------
public class OOTest04{
    public static void main(String[] args){
        // 创建一个丈夫对象
        Husband huangXiaoMing =  new Husband();
        huangXiaoMing.name = "黄晓明";
        // 创建一个妻子对象
        Wife baby = new Wife();
        baby.name = "baby";
        // 结婚【能通过丈夫找到妻子,通过妻子也可以找到丈夫】
        huangXiaoMing.w = baby;
        baby.h = huangXiaoMing;
        // 得到以上“黄晓明”的妻子的名字
        System.out.println(huangXiaoMing.name + "的妻子名字叫:" + baby.name);
        System.out.println(huangXiaoMing.name + "的妻子名字叫:" + huangXiaoMing.w.name);
    }
}

知识点

// 顾客类
public class Customer
{
    // id
    int id;
}
// ------------------------------------------------------------------------
// 测试程序
public class OOTest05
{
    public static void main(String[] args){
        Customer c = new Customer();
        System.out.println(c.id); // 0
        c = null;
        // 以下程序编译可以通过,因为符合语法
        // 运行出现空指针异常
        // 空应用访问“实例”相关的数据一定会出现空指针异常
        // java.lang.NullPointerException
        System.out.println(c.id);
    }
}

// “实例”相关的数据表示:这个数据访问的时候必须有对象的参与,这种数据就是实例相关的数据

/*
    Java语言是面向对象
    要想创建对象必须先定义类
    定义类的语法:
        [修饰符列表] class 类名{
            属性:
            方法:
        }
    属性通常采用变量来表示,既然是变量那么变量肯定有数据类型。【数据类型包括:基本数据类型 + 引用数据类型】
    属性对应的是状态信息。
    观察现实世界当中超市中的商品,发现这所有的商品都有一些共同的特征,例如,每一个商品都有编号,每一个商品都有单价,所以定义以下的类,来代表所有的商品
*/

public class Product{
    // 编号 【通常是一个数字,而且该数字通常是整数型的】
    // productNo 是基本数据类型
    // 实例变量
    int productNo;
    // 单价 【通常是一个数字,但是数字可能带有小数,所以采用浮点型数据double表示】
    // price 是基本数据类型
    // 实例变量
    double price;
// ----------------------------------------------------------------------
/*
    每一个类中都可以编写主方法,但是一般情况下
    一个系统只有一个入口,所以主方法一般写一个
*/
public class ProductTest{    // 商品测试类
    // 程序入口
    public static void main(String[] args){
        // 创建对象,商品对象
        // iphone7 局部变量
        // iphone7 应用
        // iphone7 变量中保存内存地址的指向堆内存当中的商品对象
        Product    iphone7 = new Product();
        // 访问实例变量的语法:引用.变量
        // 读取:引用.变量名
        System.out.println("商品的编号:" + iphone7.productNo);
        System.out.println("商品的单价:" + iphone7.price);
        // 修改:引用.变量名 = 值;
        iphone7.productNo = 111;
        iphone7.price = 68000;
        System.out.println("商品的编号:" + iphone7.productNo);
        System.out.println("商品的单价:" + iphone7.price);

    }
}
// 人类
public class Ren{
    // 身份证号
    String id;
    // 名字
    String name;
    // 性别
    boolean sex;
    // 年龄
    int age;
}
// -------------------------------------------------------------------------
/*
    别墅类
        * 面积
        * 主人
*/
public class BieShu{
    // 面积
    double mianJi;
    // 主人【人类】
    // 变量/应引用
    // 变量怎么声明:数据类型 变量名;
    // 关联关系: A has a B 关系【A对象中含有B对象的引用】
    // BieShu对象含有Ren对象的引用
    Ren zhuRen;
}

// ----------------------------------------------------------------------
public class Test{
    public static void main(String[] args){
        // 思路:先创造人物对象,再创造别墅对象,让别墅有主人
        Ren zhangsan = new Ren();    // 初始化
        // 不采用系统默认值
        // 手动赋值
        zhangsan.id = "45682110";
        zhangsan.name = "张三";
        zhangsan.sex = true;
        zhangsan.age = 100;
        // 创建别墅对象
        BieShu fangzi = new BieShu();
        fangzi.mianJi = 150.0;
        fangzi.zhuRen = zhangsan;
        // 想知道房子主人的名字是什么?
        System.out.println(fangzi.zhuRen.name);
        // 房子换主人
        // 创建一个新的主人对象
        Ren lisi = new Ren();
        lisi.name = "李四";
        // 换主人
        fangzi.zhuRen = lisi;
        System.out.println(fangzi.zhuRen.name);
    }
}
// 学生类
class Student{
    String name;
    int no;
    // 笔记本
    Notebook book;
}

// ----------------------------------------------------------------------

// 笔记本类
class Notebook{
    // 品牌
    String brand;
    // 型号
    String model;
    // 颜色
    String color;
}

// ----------------------------------------------------------------------
/*
    需求:
        定义一个计算机类【电脑/笔记本】,计算机类有那些属性
            * 品牌  * 型号  * 颜色
        定义一个学生类,学生类有那些属性:
            * 姓名  * 学号  * 学生有一台笔记本电脑
        请编写程序来表示以上的类,然后分别将类创建为对象,对象数量不限,然后让其中的一个学生去使用其中的一台笔记本电脑
        然后编译并运行,并且将整个执行过程采用图形的方式描述出来。
*/

// 测试类
public class OOTest06{
    public static void main(String[] args){
        // 创建笔记本对象
        Notebook BiJiBen = new Notebook();
        // 手动赋值
        BiJiBen.brand = "华为";
        BiJiBen.model = "KX100";
        BiJiBen.color = "黑色";

        // 创建学生对象
        Student s = new Student();
        // 手动赋值
        s.no = 111;
        s.name = "jack";
        s.book = BiJiBen;
        System.out.println(s.name);
        System.out.println(s.no);
        System.out.println(s.book.brand);

        // 让这个学生和笔记本对象产生关系【通过学生能找到他的笔记本】
        System.out.println("学号:" + s.no + " 名字叫 " + s.name + " 的电脑品牌是:" + s.book.brand);
        System.out.println("学号:" + s.no + " 名字叫 " + s.name + " 的电脑品牌是:" + s.book.model);
        System.out.println("学号:" + s.no + " 名字叫 " + s.name + " 的电脑品牌是:" + s.book.color);

        // 修改品牌
        s.book.brand = "苹果";
        System.out.println("学号:" + s.no + " 名字叫 " + s.name + " 的电脑品牌是:" + s.book.brand);
    }
}

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Java面向对象基础教学(一)

    目录 1.如何定义类 2.如何定义属性 3.如何定义普通方法 4.如何创建对象 5.如何定义构造方法 6.什么是可变参数,怎么用? 总结 1.如何定义类 语法: 访问修饰符 class 类名{ } public class skills{ } 2.如何定义属性 语法: 属性写在类里面 数据类型  变量名; public class hero{ String sex; String name; } 3.如何定义普通方法 语法: 访问修饰符 返回值 方法名(参数){ } public void at

  • 浅谈Java面向对象之内部类

    目录 内部类 访问外部对象 访问内部对象 局部内部类 匿名内部类 静态内部类 内部类 内部类是定义在另一个类中的类,例如 TalkingClock 类中内嵌了 TimePrinter 类: class TalkingClock{ private int interval; private boolean beep; public TalkingClock(int interval, boolean beep){} public void start(){} public class TimePr

  • Java面向对象基础教学(二)

    目录 1.使用访问修饰符: 2.static关键字: 3.this关键字 总结 1.使用访问修饰符: 访问修饰符 同一个类中 同一个包中 子类中 所有类中 private √ -- -- -- default √ √ -- -- protected √ √ √ -- public √ √ √ √ 注释:private:私密的    default:默认值    protected:受保护的    public:公共的 访问控制级别:private→default→protected→public

  • 带你轻松搞定Java面向对象的编程--数组,集合框架

    目录 一.数组 1.数组的定义 2.数组的声明 3.数组的初始化 二.集合概述 三.Collection接口 1.Collection接口概述 2.集合框架的三个组件 3.Iterator接口 四.List接口 1.ArrayList类 2.LinkedList类 五.Set接口 1.HashSet类 六.Map接口 1.HashMap类 七.泛型 总结 一.数组 1.数组的定义 数组是为了解决同类数据整合摆放而提出的,可以理解为一组具有相同类型的变量的集合,它的每个元素都具有相同的数据类型.

  • Java面向对象基础教学(三)

    目录 1.包是什么: 2.Java面向对象程序设计三大重要特征: (1)封装: (2)继承extends: (3)多态 3.instanceof 运算符 总结 1.包是什么: 包相当于文件夹,把不同类型的文档归类,分别放到不同的文件夹中 语法: package <包名>; 声明一个包的语句必须放在类中的第一行 包的导入:import <包名>.<类名>:也可以 import <包名>.*: 2.Java面向对象程序设计三大重要特征: (1)封装: 将类的某些

  • 新手初学Java面向对象

    目录 java面向对象 知识点 总结 java面向对象 面向对象[Java语言的核心机制,最重要的内容,Java语言的特色] * 面向过程和面向对象的区别 - 面向过程:主要关注点是:实现的具体过程,因果关系[集成显卡的开发思路] * 优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低. * 缺点:采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的 方式导致软件元素之间的"耦合度"非常高,只要其中一环出问题,整个系统受到影响, 导致最终的软件"

  • 新手初学Java基础

    目录 1.Java的基本数据类型有哪些? 2.如何理解面向对象和面向过程? 3.如何理解多态 4.封装举例? 5.继承? 6.char可不可以存储一个中文汉字,为什么? 7.自动拆装箱?int和integer有什么区别? 8. == 和 equals 的区别? 9.String可以被继承吗? 10.String buffer和String Builder的区别? 11.final.finally.Finalize有什么区别? 12.Object中有哪些方法? 13.集合框架简单体系图 14.Ar

  • 新手初学Java继承、封装与多态

    目录 面向对象的三大核心特性 封装 继承 单继承 继承的优缺点 super关键字 super调用父类构造方法 super访问父类成员 super和this的区别 多态 instanceof关键字 方法重载 方法重写 抽象类 接口 定义接口 实现接口 总结 面向对象的三大核心特性 面向对象开发模式更有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率.面向对象程序设计有以下优点. 可重用性:代码重复使用,减少代码量,提高开发效率.下面介绍的面向对象的三大核心特性(

  • 新手初学Java List 接口

    目录 源码展示 总结 源码展示 package java.util; import java.util.function.UnaryOperator; public interface List<E> extends Collection<E> { /** * 返回 list 中元素的个数. */ int size(); /** * list 是否为空. */ boolean isEmpty(); /** * list 是否包含某个对象. */ boolean contains(O

  • 新手初学Java流程控制

    目录 Java流程控制 用户交互Scanner next() nextLine() 选择结构 if单选择结构 if双选择结构 if多选择结构 嵌套if结构 Switch多选择结构 while循环 do while 循环 For循环 增强for循环 break和continue 总结 Java流程控制 用户交互Scanner java.util.Scanner是Java5的新特征,可以通过Scanner类来获取用户的输入 基本语法 Scanner sc = new Scanner(System.i

  • 新手初学Java网络编程

    目录 运行线程 回调 同步方法 同步块 死锁 优先级 暂停 可以对IO阻塞 可以对同步对象阻塞 可以放弃 可以休眠 可以连接另一个线程 可以等待一个对象 可以结束 可以被更高优先级线程抢占 总结 运行线程 创建Thread的子类 public class ThreadChild extends Thread { @Override public void run() { while (true) { System.out.println("run"); } } } public cla

  • 新手初学Java的内部类

    目录 Java的内部类 成员内部类 静态内部类 局部内部类 总结 Java的内部类 概念: 内部类就是在一个类的内部定义一个类,比如,A类中定义一个B类,那么B类相对于A类来说就是称为内部类,而A类相对于B类来说就是外部类. 成员内部类 静态内部类 局部内部类 匿名内部类 特点: 内部类编译之后可以生成独立的字节码文件. 内部类可以直接访问外部类的私有成员,而不破坏封装. 内部类可为外部类提供必要的内部功能组件. 外部类要访问内部类的成员,必须要建立内部类的对象 成员内部类 在内的内部定义,与实

  • 新手初学Java集合框架

    目录 Java集合框架 集合 List接口 ArrayList Vector LinkedList: 泛型: Set接口 HashSet TreeSet Map接口 特点: 遍历: HashMap Hashtable TreeMap 总结 Java集合框架 集合 概念:对象的容器,定义了对多个对象进行操作的常用方法.可实现数组的功能. 集合和数组的区别: 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型. 测试 /* 1.添加 2.删除 3.遍历 4.判断 */

  • 新手初学Java对象内存构成

    目录 Java对象内存构成 对象内存构成 对象头 Mark Word Klass Pointer# 实例数据 对齐数据 Talk is cheap, show me code 普通对象# 数组对象 总结 Java对象内存构成 今天来讲些抽象的东西 -- 对象头,因为我在学习的过程中发现很多地方都关联到了对象头的知识点,例如JDK中的 synchronized锁优化 和 JVM 中对象年龄升级等等.要深入理解这些知识的原理,了解对象头的概念很有必要,而且可以为后面分享 synchronized 原

  • 新手初学Java数组

    什么是数组 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成. 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 数组的声明创建 首先必须声明数组变量,才能在程序中使用数组.下面是声明数组变量的语法: dataType[] array;//例: int[] nums; 推荐使用这种写法 或者 dataType array[];//例: int nums[]; 使用new来创建数组的语法: dataType[] array =

随机推荐