JAVA学习笔记Day03__JAVA入门小知识点

来源:互联网 发布:js filereader 编辑:程序博客网 时间:2024/05/18 21:41

1、面向对象

1、面向对象    在构造方法中就近原则;    如果第一个size没有this.,则表示参数size    public A(int size) {        this.size = size;    }2、在构造方法中,所有的参数,就算什么都没有,也会按照顺序初始化所有的属性3、属性的初始值:引用对象为null;boolean为false;char为数值0;其他的全部为0;4、面向对象的好处:便于查找5、断言:    调试时使用的。    用-ea开启,若断言为false,则抛出异常,否则断言无效

2、WEB阶段

html、js、服务器搭建、sevlet、form、数据库

3、BrainFuck解释器的编写

Day下午

1、包名

com.xiaofeng.项目名字org:表示开源

2、小知识

JAVA绝大多数的属性为private继承也是扩展,子类的分类更加细致。属性和方法更多。扩展父类类型转换:    自动、强制    强制转换时有事会出现构造异常 ClassCastException:类型转换异常(由于编程不严谨导致) 使用instanceof判断    引用变量  instanceof   类名   重写和重载:        重载的前提是在同一个类中。       重写:        1、访问权限父类不能小于子类的访问权限。            2、返回值类型:为父类返回值或者其子类类型            3、方法名是一定相同的            4、参数列表一定相同            5、异常:子类抛出的异常一定是在父类抛出的异常的范围内            6、String除外,因为String有final修饰,没有子类

3、类的生命周期

引用的四种:    强引用:目前所使用的引用    弱引用:引用的对象一般不会被回收,内存不足时才会被回收。否则会造成内存泄漏    软引用:    虚引用:最后这两种引用,差不多,只要被发现,并且这个时候,只有一个软引用或者虚引用,那么一定会被回收。

4、final finally finalize三者的区别

finally:在一种情况下,会不执行,虚拟机崩溃的时候。finnalize:是在java回收内存时调用的。垃圾回收
finnalize:

相当于C++当中的析构函数,一般不需要重写

 protected void finalize() throws Throwable {        super.finalize();        System.out.println("大象被洗了");    }    // 垃圾回收机制一般在一个单独的线程中执行
//断言: 用于调试, 用-ea开启, 如果断言为false, 则抛出异常, 若不开启断言无效        assert e.getSize() < size : "太大!";//用java -ea Demo01命令打开断言

5、接口

接口实现的四种方式:        // 接口实现的方法        Drawable drawable = new Rect();        drawable.draw2(5);        Drawable d = new Drawable() {            @Override            public void draw2(int i) {                System.out.println("匿名内部类");;            }        };        d.draw2(4);        // 1.8之后增加的新特性,只有一个方法的接口可以使用lamba方法        // 第一()里面写参数,多行语句加一个{}        Drawable draw = (i) -> System.out.println("lamba");        Drawable draw2 = i -> System.out.println("lamba");        Drawable drawable2 = (i) -> {            System.out.println("sf");            System.out.println("dfs");        };        draw.draw2(0);        // 反射中的代理//        Proxy

6、 抽象方法中:

    1、没有方法体    2、一定在抽象类中

7、接口和类

    1、接口中不可以有属性,因为属性都是常量    2、jdk1.8之后新特性:        -方法中的default,实现接口时可以不重写。        -lamada:1.8之后增加的新特性,只有一个方法的接口可以使用lamba方法                 第一()里面写参数,如果只有一个参数,还可以去掉();多行语句加一个{}        Drawable draw = (i) -> System.out.println("lamba");        Drawable draw2 = i -> System.out.println("lamba");        Drawable drawable2 = (i) -> {            System.out.println("sf");            System.out.println("dfs");        };     3、jdk1.8之后接口中可以有静态方法

8、注意

11.8之后的新特性,如果一个类实现了两个接口,并且两个接口中的default方法是一样的,这是必须在实现类中重写default方法。2、如果default方法在实现类中不被重写,那么在调用方法时,会默认调用接口中的default方法。
0 0
原创粉丝点击