• java基础五 [数字与静态](阅读Head First Java记录)


    本章主要讲了静态变量、静态方法,final关键词。以及介绍了怎么对数字和日期进行格式化输出。这里对这些内容进行了整理。本章还介绍了java.util.Date和java.util.Calendar来操作日期,但是这个直接看API就比较清楚,这里就不写了。
     
    static
     
    static标记过的,与类的实例对象无关
     
    静态方法:
    使用static关键词来标记静态方法。有些方法不需要用到类的实例变量,静态变量的代表“一种不依靠实例变量也就不需要对象的行为”。Math就是一个静态方法
     
    调用静态方法:类名.方法名(参数)
     
    例如:
    public class Math{
         public static int min(int a,int b){
              //返回a和b较小的值
         }
    }
     
    调用时不需要实例化,直接Math.min(12,23)就可以
     
    静态变量:
    使用static关键词来标记的变量,例如private static int num=0;
     
    一些注意点:
    1.静态方法不能调用实例变量(因为静态方法无关特定实例,所以它不知道调用的是哪个实例的实例变量)
    2.静态方法不能调用非静态的方法,但是可以调用静态变量
    3.使用引用变量也可以调用静态方法,但实际解析器也是会先解析出原来的类,不建议这么去引用静态变量
    4.静态变量是共享的,只有在类第一次载入时才被初始化,同一类的所有实例变量共享一份静态变量(每个实例看静态变量值都是一样的)。实例变量每个实例一个;静态变量每个类一个
    5.静态变量会在该类的任何对象创建之前就完成初始化;会在该类的任何静态方法执行之前就初始化
    6.如果静态变量没有赋值,会根据该变量类型来决定默认值。
    7.静态变量放在静态变量区(存放常量、静态变量)。java内存分为4个区,静态变量区和堆栈、代码区是并列的,不是从属关系
    8.静态方法放在内存的方法区中
    9.可以用import导入静态的方法,这样调用静态方法时可以少些一些内容,但这样容易产生名称冲突(容易重名)
     
    final
     
    final修饰过的,不能改变内容
     
    静态的final变量是常量,不能更改内容
    1.常量命名规范用大写,用下划线分隔
    2.常量必须赋值,有两种方式。直接用=,或final定一后通过static{}来在静态初始化时赋值
    例如:
    1.public static final double PI=3.1415926
    2.public static final double PI;
      //下面这段会在类加载时执行
       static{
           PI=3.1415926
       }
     
    final修饰过的所有内容都不能被修改,也可以被用在方法、实例变量、类上
    1.final变量不能被更改值(final int size=3)
    2.final方法不能被覆盖重写(final void calcWhuffie(){})
    3.final的class不能被继承(final class MyMostPerfectClass{})
     
     
    数值操作
    ArryList只能放入对象,不能直接放入某个primitive类型。所以需要对primitive数据类型进行包装再传递,包括从ArrayList中取值时,也需要解开包装
    primitive类型在JAVA5之前需要自己进行包装和解包,java5之后primitive类型会自动进行包装。
     
    Math的方法就是一些静态方法,例如Math.abs()是取绝对值。
     
    格式化
    使用String的format()方法来进行格式化。格式化主要由两部分组成:格式化的指令、要格式化的值
     
    1.格式化指令:format()第一个参数中%及后面的语法(format的第一个参数是要输出的字符串内容,要进行参数化的地方使用%来替代)
     
    数字格式化指令:
    最多会有5部分(不包括%),下面[]中都是可选择的项目,只有%和type是必选的,格式化的顺序是有规定的,必须按照下面的顺序来
    %[argument number][flags][width][.precision]type
     
    argument number 如果有多个参数需要进行格式化,可以用来选择格式化哪一个
    flags 针对type的特定选项,例如数字的”,”,用来分割整数部分(例如10000变为10,000)
    width 最小的字符数个数限制,输出字符可以超出这个宽度,如果小于width会自动补全
    .precision 精确度,前面有一个点。例如.2f是取小数点后两位
    type 要格式化的参数类型,例如d为整数,f为浮点数
     
    日期格式化指令:
    %tc 完整的日期与时间(String.format(“%tc”,new date());)
    %tr 只显示时间
    %tA 只星期几
    %tB 返回月份
    %td 返回日
     
    如果连续使用相同的参数,可以使用%<来告诉格式化程序重复利用上一个用过的参数
    例如:
    Date today=new Date();
    String.format(“%tA,%<tB,%<td”,today);
     
    2.要格式化的内容:format()后的第二个、第三个、第N个参数。用来放到前面的%格式化指令里
     
    格式化例子如下:
    String s=String.format(“The number is %,.2f”,476578.09876);
    输出结果s为The number is 476,578.09
     
     
     
  • 相关阅读:
    [Python_3] Python 函数 & IO
    [Python_2] Python 基础
    【一首小诗】每一个难捱的日子都是一首诗
    【排序算法】选择排序(Selection sort)
    【排序算法】冒泡排序(Bubble Sort)
    【待补充】[Python_1] Python 安装
    [IDEA_6] IDEA 集成 Python
    MySQL 的 CURD 操作
    [Spark SQL_1] Spark SQL 配置
    MySQL 基础
  • 原文地址:https://www.cnblogs.com/meitian/p/5747562.html
Copyright © 2020-2023  润新知