java基础篇

1、封装、继承、多态

     封装:将私有属性私有化,并提供外面访问的犯法。有些属性不想被外界访问,则可不提供访问方法。

     继承:在已存在的类的基础上衍生子类,拥有除父类除private修饰的方法、属性和构造方法外自己的特有的属性和方法。

     多态:一个方法的不同实现就是多态。

2、重载和重写

     重载:使用场景在同一个类中,方法名相同,但是参数类型、个数、顺序不相同,返回类型、访问修饰也不相同。

     重写:使用场景在父子类中,方法名、参数列表相同,但是返回的内容要小于父类,访问修饰要大于父类、发生的异常范围要

                小 于父类。

3、抽象和接口

     抽象:对类的抽象,非抽象方法、单实现、有构造器、方法选择实现、类不能被实例化,方法多种访问、是一种模板设计,更

               多的是为了代码的复用。

     接口:对行为的抽象,无具体实现、实例变量final修饰、多实现、无构造器、方法全实现、方法必须是public、不能new但可

                以引用(这个类必须实现该接口),是一种行为的规范,更多的体现了多态的特性。(jdk1.8允许有默认实现)

4、字符常量和字符串常量

    字符常量:单引号、是一个整型值可计算、一个字符占两个字节。

    字符串常量:双引号、是一个内存地址、最少一个字符。

5、基础数据类型和封装类

    基础数据类型:byte、short、int、long、double、float、char、boolean

    封装类型:提供更多的操作的方法。

6、按值传递和按引用传递

      按值传递:基本数据类型被创建时,在栈中分配内存,数值直接存储在栈分配的内存中。传递时,值是不可逆向传递,每次

                        修改都是新建一个类型,不会影响原来的值。

     按引用传递:当对象被创建时,其引起(即句柄)先在栈中分配内存,然后其对象具体信息存存储在堆内存当中,最后引用指

                         向堆中对象的内存地址。由于是传递的是引用指向,所以每次修改都会影响原来的值。

7、Object

      所有对象的基类,提供12种方法,常用的有九种。即toString()、clone(克隆一个对象)、getClass(获得class对象) 、

     equals(Object)(判断两个对象是否相等)、finalize() (当对象满足回收条件时调用)、hashCode()(哈希吗)、

     notify()(随机唤醒一个持有锁的线程)、notifyAll()(唤醒所有持有锁的线程)、wait()(放弃持有的锁,重新回到等待队列)

8、反射

     反射是基于class类,每一个被jvm加载的类都会成一个class类。可以通过Object提供的getClass()方法获取。

     可以动态获去任意的一个类和对象的属性和方法

9、String、StringBuffer、StringBuilder

      String:底层是final修饰的不可变的数组,线程安全。每次修改都是新建一个对象。

      StringBuffer:底层数组,但是所有的方法都加上了同步锁,因此是线程安全。

      StringBuilder:底层数组,但是所有的方法没有同步锁修饰,非线程安全。

10、== 与 equals

      ==:比较两个对象的内容是否相等。基础类型比较的是栈中存储的值,引用数据类型比较的是内存地址。

      equals:当类中没有覆盖equals,等同于==;

                    当类中覆盖了equals,则比较的是两个对象的内容。

     Object中的equals比较的是内存地址,String由于重写过,则比较的是对象的值。

11、hashCode 与 equals

     hashCode:哈希码,确定对象在哈希表中位置。当对象放入哈希表中会计算出一个特定的哈希码,同时与其他对象的哈希吗

                         进行判断,如果没有,则放入成功。如果有,则调用equals进行判断,相等则拒绝放入,不相等则允许放入。

    equals:详解看10

    两者之间的规则:两个对象相等,则hashcode一定相等。

                                 两个对象hashcode相等,则两个对象不一定相等。

   结论:如果一个类的equals被覆盖,那么hashcode一定要覆盖,否则两个对象的永远不可能相等。

12、对象的相等与指向他们的引用相等

      对象的相等:指的是对象的内容相等。

     指向引用相等:指的是内存地址相等。

13、static、final、abstract

      static:修饰方法则是静态方法、修改变量则是静态变量,修饰修饰初始代码块则是静态初始化代码块,无论方法还是变量都属于类,在类被jvm加载时完成初始化并在栈

                 中分配内存空间。并且要赋初始值。

    final:修饰类,则类不能被继承,修饰方法,则方法不能被覆盖。修饰变量,则变量不能被改变。

abstract:修饰的类就是抽奖类,不能生成对象实例。

备注:final和abstract,private和abstract,static和abstract

14、序列化

      场景:当你想把的内存中的对象保存到一个文件中或者数据库中时候;
            当你想用序列化在网络上传送对象的时候;
            当你想通过RMI传输对象的时候;

     好处:方便传输、可以还原。

15、四种访问修饰

       private:同类

      default :同类、同包

   protected:同类、同包、子类

         public:同类、同包、子类、其他包

   

                              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值