
Java
icegarlic。
这个作者很懒,什么都没留下…
展开
-
接口与抽象方法
相同点:1)都可以定义抽象方法2)都不能实例化对象3)定义抽象方法都需要被重写不同点:1)意义不同:抽象类是对事物更高层的抽象接口是对功能的封装2)定义方式不同:抽象类 abstract接口 interface3)内容不同抽象类中除了抽象方法外,还可以定义构造方法等普通类中定义的所有成员接口除了抽象方法等四个内容外,不能定义构造方法等内容4)...原创 2019-06-14 13:41:49 · 266 阅读 · 0 评论 -
类与类之间的关系
1)泛化(继承)一个类继承另一个类,或者一个几口继承其他接口2)实现一个类实现接口3)依赖一个A类的方法返回值类型,方法参数类型或者是局部变量类型使用另外一个B类,称A类依赖B类4)关联如果A类使用B类定义成员变量,称A类关联B类5)聚合聚合是关联的一种,如果一个类A是由若干的B组成,并且不能决定B的生命周期,称A类为聚合类...原创 2019-07-14 16:03:00 · 175 阅读 · 0 评论 -
static关键字
static关键字修饰属性(域)时:·称为静态属性也叫作类的变量·在方法区(共享区)中存储,并且所有对象都可以访问·与类同生死·可以使用 类名.属性名,也可以使用 引用名.属性名注意:当引用名的值为null时,也可以访问静态属性,不会出现指针空异常·类优先于对象,也就是说类的生命周期比较长static关键字修饰方法:·称为静态方法也叫做类的方法·与类同生死...原创 2019-07-14 16:02:43 · 96 阅读 · 0 评论 -
length,length(),size()详解及区别
length属性:用于获取数组长度。int ar[] = new int{1,2,3}/*** 数组用length属性取得长度*/int lenAr = ar.length;//此处lenAr=3System.out.println("Arr length:"+lenAr);length()方法:用于获取字符串长度。String str = "Hello World J...转载 2019-06-14 14:24:33 · 439 阅读 · 0 评论 -
Java 中 sleep() 与 wait() 的区别
1、sleep() 方法是 Thread类的静态方法,该方法导致此线程暂停执行指定时间,把执行机会让给其他线程,但是监控状态依然保持,到时候会自动回复。该方法不会释放对象锁。2、wait() 方法是 Object类的成员方法,当对象调用 wait() 方法时会导致本线程放弃对象锁,进入此对象的等待锁定池,只有针对此对象发出 notify()方法或 notifyAll()方法后本线程才进入...原创 2019-06-04 21:22:30 · 110 阅读 · 0 评论 -
String、StringBuffer和StringBuilder的比较
1、数据可变与不可变String底层使用一个不可变的字符数组 private final char value[];所以内容不可变。StringBuffer和StringBuilder都继承了AbstractStringBuilder底层使用的是可变字符数组:char[] value;2.线程安全StringBuilder是线程不安全的,效率高;StringBuffer是线程安...原创 2019-06-26 19:41:31 · 88 阅读 · 0 评论 -
动态代理之JDK动态代理
在了解JDK 动态代理之前先了解下动态代理,动态代理指的是程序在整个运行过程中根本就不存在目标类的代理类,目标对象的代理对象是由代理生成工具(如代理工厂类)在程序运行时由JVM根据反射等机制动态生成的。代理对象与目标对象的代理关系在运行时才确立。 而静态代理是指程序在运行前就已经定义好了目标类的代理类。代理类与目标类的代理关系在程序运行之前就确立了。------...原创 2019-07-16 19:40:54 · 129 阅读 · 0 评论 -
CGLIB动态代理
概念:使用 JDK 的 Proxy 实现代理,要求目标类与代理类实现相同的接口。若目标类不存在接口,则无法使用该方式实现。对于无接口的类,要为其创建动态代理,就要使用CGLIB来实现。CGLIB代理的生成原理是生成目标类的子类,而子类是增强过的,这个子类对象就是代理对象。所以,使用CGLIB生成动态代理,要求目标类必须能够被继承,即不能使final 的类。CGLIB 包的底层是通过使用...原创 2019-07-21 14:07:37 · 218 阅读 · 0 评论