您的位置:首页 > 编程语言 > Java开发

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

2016-07-29 20:55 555 查看

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、注意

1、1.8之后的新特性,如果一个类实现了两个接口,并且两个接口中的default方法是一样的,这是必须在实现类中重写default方法。
2、如果default方法在实现类中不被重写,那么在调用方法时,会默认调用接口中的default方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: