java中的小知识点

  • getBytes() 是Java编程语言中将一个字符串转化为一个字节数组byte[]的方法

java中的内部类和匿名内部类

内部类:一个类定义在另一类的内部这个类就被称为内部类。内部类分为成员内部类(定义在外部类的成员位置)和局部内部类(定义在外部类的方法里面)
  • 成员内部类的特点:
    • 成员内部类可以直接访问外部类的成员,包括私有的,也可以通过外部类名.this.成员名调用外部成员
    • 外部类访问非静态成员内部类的成员,必须要创建成员内部类的对象;外部类可以通过类名直接访问静态内部类的静态成员,包括私有的
    • 成员内部类和外部类不存在继承关系
    • 其他类中生成成员内部类的方式:Outer.Inner oi = new Outer().new Inner();
  • 局部内部类的特点:
    • 可以直接访问外部类的成员
    • 在局部位置可以创建局部内部类对象,通过对象调用成员
局部内部类在访问局部变量时,被访问的变量必须用final修饰,这是因为局部变量随着方法调用完毕就消失了,而内部类在堆内存中并不会立即消失,所以用final修饰,因为被final修饰的变量就成了常量,即使局部变量消失了,但数值并不会消失
匿名对象:没有名字的对象
  • 用法:new Person()就能够得到一个Person对象,调用方法:new Person().show();
  • 使用场景:适用于一个对象只使用一次
  • 好处:匿名对象使用完毕后就变成垃圾被回收
  • 注意:匿名对象可以作为实际参数传递
匿名内部类:在一个类中获取一个接口的实现类对象或者获取一个抽象类的子类对象,以abstract Person和interface Person为例
class Outer
{
    public void method()
    {
        new Person()
        {
            public void work()
            {
                System.out.println(“work”);
            }
        }.work();
    }
}
 
new Outer().method();
 
class Outer
{
    public void method()
    {
        Phone p = new Phone()
        {
            public void on()
            {
                System.out.println("on");
            }
 
 
            public void off()
            {
                System.out.println("off");
            }
        };
        
        p.on();
        p.off();
    }
}
 
new Outer().method()

StringBuffer

  • 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类
  • 和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象
  • StringBuilder和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(不能同时访问)
  • 由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下,建议使用STringBuilder类,然而在应用程序要求线程安全的情况下,使用StringBuffer类
foreach循环
for(元素类型t 元素变量x:遍历对象obj){
    引用了x的java语句
}
由基本数据型态转换成String
  • String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也就是 String.valueOf() 这个参数多载的方法 ,有以下几种
    • String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串
    • String.valueOf(char c) : 将 char 变量 c 转换成字符串
    • String.valueOf(char[] data) : 将 char 数组 data 转换成字符串
    • String.valueOf(char[] data, int offset, int count) : 将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串
    • String.valueOf(double d) : 将 double 变量 d 转换成字符串
    • String.valueOf(float f) : 将 float 变量 f 转换成字符串
    • String.valueOf(int i) : 将 int 变量 i 转换成字符串
    • String.valueOf(long l) : 将 long 变量 l 转换成字符串
    • String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString()
  • 用法如下:
   int i = 10; 
  String str = String.valueOf(i); 
  这时候 str 就会是 "10" 
  • openFileOutput():可以方便地再手机中创建文件,并返回文件输出流,用于对文件做写入操作。(content类中的,即上下文)

/          可以方便地再手机中创建文件,并返回文件输出流,用于对文件做写入操作。
            FileOutputStream fos = openFileOutput("write.txt",MODE_WORLD_WRITEABLE);
            fos.write("write".getBytes());```

你可能感兴趣的:(java中的小知识点)