java的高级特性

一、String类的内存解析:

二、Junit的单元测试(eclipse):

如何使用:点击工程----右键----buildpath---addlibrary---jnuit---junit4

                  创建一个没有返回值,形参为空的方法,并加上标注(@Test)


三、static:被它修饰的成员,被所有的对象所共享

四、抽象&接口:

       abstract 不能修饰:private、final、static、属性、构造器

       接口:只有变量和抽象的方法,接口定义的是一种功能

四、内部类:

  

   class Person{
    
    String name="我是外部类";

    class Student{
        String name="我是内部类";

        public void show(String name){
                        
            System.out.println(name);//我是内部类方法
            System.out.println(this.name);//我是内部类
            System.out.println(Person.this.name);//我是外部类
        }
    }
}

public class Test{
    public static void main(String[] args){
        Person.Student stu=(new Person()).new Student();
        stu.show("我是内部类方法");
    }

}


五、初始化块:

     主要是对属性进行赋值的

    

六、设计模式:

    ①:单例设计模式:只允许创建一个此类的对象

      1)饿汉式:

    class Single{

    private static Single single=new Single();

    private Single(){}

    pulbic static Single getInstance(){
        return single;
    }
}


  2)懒汉式:

class Single{

    private static Single single=null;

    private Single(){};

    public static synchronized Single getInstance(){
        
        if(single==null){
            single =new Single();
        }
        return single;
    }
}


②:模板方法:就是抽象类的使用

③:接口之工厂方法:

  



interface A{
    void show();
}

class A1 implements A{
    public void show(){
        System.out.println("我是A1");
    }
}

class A2 implements A{
    public void show(){
        System.out.println("我是A2");
    }
}

interface B{
    A getInstance();
}

class B1 implements B{
    public A getInstance(){
        return new A1();
    }
}

class B2 implements B{
    public A getInstance(){
        return new A2();
    }
}

public class Test{
    public static void main(String[] args){
        new B1().getInstance().show();
        new B2().getInstance().show();
    }
}


④:接口方法之代理模式:代理类和被代理类都实现同一个接口,当调用被代理类的的方法的时候实际上上是调用代理的方法


//同一个接口
interface Object{
    void action();
}

//被代理类
class RoxyObject{
    
    ObjectImpl obj;

    public RoxyObject(){
        System.out.println("创建了一个被代理类");
        obj=new ObjectImpl();        
    }
    public void action(){
        System.out.println("被代理类执行");        
        obj.action();    
        System.out.println("被代理类执行完");    
    }
}

//代理类
class ObjectImpl{
    
    public void action(){
        System.out.println("----代理类开始-----");
        System.out.println("-------代理类执行结束--------");        
    }
}

public class Test{
    
    public static void main(String[] args){
        new RoxyObject().action();
    }

}


七、包转类和基本数据

①:自动装箱(基本-----包装类)

     int i =10;

     Integer i1=i;


②:自动拆箱(包装---基本)

   Integer i=10;

   int i1=i;


注意:Integer i =null; int i1=i;  //这样是不行的,会报空指针异常,相当于:int i1=i.intValue();


③:String-----基本、包装

      String s1="10";

          int i =Integer.parseInt(s1);

④:基本、包装-----String

          int   i =10;

         String str=String.valueOf(i);



        








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值