zoukankan      html  css  js  c++  java
  • java学习补全 1

    CLASSPATH

    java执行命令时利用此路径加在需要的.class文件

    字符串常量就是String 类的匿名对象

    String类在直接复制的情况下只会保留一块堆内存

    a="hhh"
    b="hhh"
    a==b true

    String a="hee";
    String b="hee";
    String c="he";
    c+='e';
    System.out.println(a.hashCode()+" "+b.hashCode()+" "+c.hashCode());
    在这种情况下 a,b同一 hashcode 相同

    	String a=new String("hee");
    	String b="hee";
    	String c="he";
    	c+="e";
    	System.out.println(a==b);
            System.out.println(b==c);		
                System.out.println(a.hashCode()+" "+b.hashCode()+" "+c.hashCode());
    

    a,b,c均不同一
    String 采用了 共享设计的设计模式
    String a=new String("sssd")会导致内存浪费
    使用new就不会入共享池

    手工入共享池
    String a=new String("hee").intern();
    String b="hee";
    a==b true;这下ab同一

    字符串一旦定义就无法改变,对字符串的链接实际上是进行引用关系的改变
    回避大量修改字符串的代码,会产生大量的垃圾内存区域
    可以修改的字符串类型:
    StringBuffer
    StringBuilder类 作为代替

    equals() equalsIgnoreCase() 是判断是否相等

    repleaseAll() 方法可以代替字符串中的所有某一字符

    this()在一个构造函数中调用其他的构造函数,这种情况只可以在构造函数的第一行调用this()(其他构造函数)

    在java中函数传参是基础类型传值,对象类型传引用

    但有一个特例。String 是对象类型,但是由于其不会改变值,所以行为看起来就像基本类型一样##

    常用的内存区域
    栈内存空间 : 对象的引用
    堆内存空间 : 对方的属性内容
    全局数据区 : static 属性
    全局代码区: 方法的定义

    static 方法不能调用 非 static方法
    非static方法可以调用 static 方法

    调用主方法时,如果参数本身就带有空格 那么用“”表示字符串就可以

    代码块#

    普通代码块,
    静态代码块,
    构造块,
    同步代码块。
    普通代码块:没什么鸟用,在里面是局部变量,外面是全局变量(范围更大一些)
    构造块: 在类内部,且不论再哪里都会优先于构造方法执行(实例化的时候调用)
    静态块:在类内部,且无论实例化多少次都只会有调用一次静态块,一般用于静态变量的初始化
    在主程序的静态块先于主程序执行

    内部类##

    指定属性时候
    outer.this.XXX
    这样这顶属性

    声明一个内部类
    outer.inner a=new outer().new inner();

    私有内部类只能在Outer类的内部使用

    static 内部类:
    将内部类变成了外部类
    并且只能访问outer类中的静态成员或方法
    outer.inner a=new outer.inner() 不在构造outer实例对象

    在方法中定义的内部类课可以访问方法的参量护着变量(JDK 1.8后)
    标准方法:在要是用的参量和变量之前加上final关键字

    父类对象继承的话私有成员是不能访问的,但是私有成员是存在的,可以通过set get 方法间接的进行访问

    super必须放在子类对象构造函数的首行

    父类的private方法不能被覆写

    String 也使用了final 定义 所以不能够被继承

    instanceof判断类型

    抽象类##

    抽象类不能有子类
    抽象类内部也可以有抽象类,可以再抽象类的子类中区继承。

    外部抽象类不允许使用static,而内部的抽象类可以使用static,就像一个为外部类一样。
    抽象类中可以有static方法,这样就可以直接使用

    隐藏抽象类的子类的方法:使用内部抽象私有子类,抽象类的内部,一个继承了本类的私有的类
    使用static getinstance方法获得一个唯一的子类实例

    抽象类的普通方法可以调用抽象方法,只是此时抽象方法必须由子类来提供

    Servlet继承自httpServlet 就是一种抽象继承关系(java web开发)

    接口定义##

    接口中只能有全局常亮和抽象方法
    加不加 public static final (全局常量)
    public abstract (抽象方法)
    效果一样
    接口中只能使用一种访问权限public
    一个接口可以使用extends 关键字继承多个父接口

    在接口A中定义一个抽象内部类X
    那么A的子类内部就可以有继承X的内部类实现

    设计模式:工厂设计模式##

    Factory.getinstance(classname)

    设计模式:代理设计模式##

    real 功能较少, Proxy提供了许多功能
    net= new Proxy(new Real());

    如果自己写接口,请使用工厂类获得相应的子类

    Object类#

    理论上应该覆写三个方法
    toString
    equals
    hashCode

    equals 默认是比较地址(即同一)

    包裹类##

    对象型包装类: Charater Boolean
    数值型包装类(number 的直接子类):Byte Short Intergeter Long Float Double

    包装类型默认为null 这和基础类型不同

    String类的转化
    方法一: 直接加,不推荐,会产生垃圾空间
    方法二:public static String valueOf(数据类型变量) 可以将任意类型的类转化为String类

  • 相关阅读:
    [WPF VTK]三维图形开发基础(一)
    WP开发(一)
    [WPF VTK]三维图形开发基础(四)

    WIN8 下IE突然无法打开(管理员权限可打开)
    [WPF VTK]三维图形开发基础(三)
    堆排序、快排的坑
    双向链表之插入
    [WPF VTK]三维图形开发基础(二)
    [转载]Android界面设计学习日志(一)
  • 原文地址:https://www.cnblogs.com/sfzyk/p/7510725.html
Copyright © 2011-2022 走看看