zoukankan      html  css  js  c++  java
  • java关键字、包装类、内存

    static 关键字:

      static 修饰的东西只依赖于类存在,在内存中只存在一份,不管是通过类名调用还是实例来调用,访问的都是同一块内存

      可以作用在:

        方法

        类

        成员变量

        代码块

      static作用于方法的时候,该方法为静态方法,静态方法通过类名调用,静态方法中不能调用非静态方法、非静态变量。

      非静态方法可以调用静态方法

      静态代码块只在类加载的时候运行一次,即整个程序运行期间只会运行一次

      执行顺序:static 代码块>匿名块>构造函数(不管他们在类中的相对位置)

    单例模式(创建型模式):

      限定某一个类在整个程序运行过程中只能有一个实例对象

      public class Singleton{
    
        private static Signleton obj=new Singleton();
        private Singleton(){
        }
        public static Singleton getInstance{
          return obj;    
    
        }  
      }

    final关键字

      可以用来修饰

        类:final类不能被继承

        方法:父类中的final方法,子类不能重写

        成员变量:final的基本类型变量不能再次赋值,final的对象不能修改其指针,但可以修改对象内部的值

    常量设计 

      常量:不会被修改的变量

      java中的常量:public static final  只读,不能修改仅有一份所以用public static final。常量名一般全大写,用连字符_相连

      接口中定义的变量默认是常量

    常量池

      为了节省内存,java为包装类/字符串建立了常量池

      建立了常量池的基本类型的包装类

        Boolean : true false

        Byte:-128-127

        Character:0-127

        Short,Integer,Long:-128-128

        Float,Double没有常量池

    堆内存和栈内存

      栈内存读取速度快,容量小

      堆内存堆区速度慢,容量大

      基本类型的包装类和字符串有两种创建方式

      Integer a=10;

      String b="abc"    //a,b放入栈内存,将被常量化

      Integer c =new Integer(10);

      String d=new String("abc")    //c,d放入堆内存,不会被常量化

    自动装箱和自动拆箱

      Integer i2=10;  //10会自动装箱成一个对象

      int i1=10;

      Integer i3=new Integer(10)  

      System.out.println(i1==i3);  //true,自动拆箱  基本类型和包装类型进行比较,包装类自动拆箱

      System.out.println(i1==i2);  //true,自动拆箱  基本类型和包装类型进行比较,包装类自动拆箱

      System.out.println(i3==i2);  //false,两个对象比较是否相等比较的是地址  

      i2+i3    //20,会自动拆箱,变成一个int变量

    String类的对象在内存中如何存在

      String s0="abcdef";    //常量池

      String s1="abc"+"def";    //常量池,和s0共享

      String s2="abc";      //常量池

      String s3=s2+"def";    //堆内存,s3是变量,编译的时候编译器不会优化

      String s4="abc"+new String("def");  //堆内存,和s3不在同一个内存

  • 相关阅读:
    一个分页的存储过程
    自己动手:修改crx文件制作自己的Chrome Apps
    SQLSERVER 过滤所有权的代码
    在ASP.NET中实现多文件上传
    引用 TimeSpan简介
    xml
    常用的正则表达式小结
    ASP.NET事务处理
    创建可在网页下载安装的ActiveX控件(通过Setup.exe安装)
    ASP.NET验证控件应用实例与详解
  • 原文地址:https://www.cnblogs.com/foodie-nils/p/13512296.html
Copyright © 2011-2022 走看看