美文网首页
Java基础知识总结-----数字与静态

Java基础知识总结-----数字与静态

作者: pppppkun | 来源:发表于2019-03-10 21:15 被阅读0次

作为本人的第一篇博客,暂时总结一下自己开学这两周学习了什么知识,有什么心得与体会,因为这学期是正式的进行软件工程专业课的学习,所以除了深入掌握Java外,还要把高三毕业暑假没学完的Python也完全啃下来。

刚刚开学非常闲,除了上课以外基本没什么事,每天自然有很多时间拿来学习,这篇博客也算是一次大的总结,以后会在掌握的知识达到一定程度后再写下一篇博客。

另一方面,写博客并不全是为了记录自己的学习过程,项目等一些别的代码我都会放到自己的的github上,下面贴一下网址,随便看看,大家笑一笑就好。

pppppkun · GitHub

话不多说,也没什么可以说的,先从Java开始,一边复习《Head First Java》一边写博客


Java

关于静态

静态是Java中一个非常重要且基础的概念。很多东西都用到了静态,比如Math这个类就是静态类,它不需要被初始化就能够使用,因此在调用静态类的方法时,不需要用引用变量的名称来调用方法

可以直接使用来调用


Math.min();

Math.max();

Math.abs ; //*取绝对值*

而普通类的调用则是


className a = new className();

a.method();

静态的方法不能调用非静态的变量,这是因为静态的方法和变量在类加载的时候也会一起加载,不依赖任何非静态的对象。
另一方面,静态的方法不能调用非静态的方法,就算该方法没有用到实例变量也不行,因为不能保证日后不会对其进行修改,也不能保证在继承的时候若是覆盖了方法的话不会造成错误。
静态变量对整个类来说都是共享的,唯一的变量。静态变量会在静态方法执行之前就被初始化
静态的标识符时static,还有另一个常用的标识符叫final
final的变量代表你不能改变它的值,final的method代表你不能覆盖掉该method,final的类代表你不能继承这个类。
对final变量的初始化有两种方法

public class test{
  public static final int TEST =25;
}
//或者
public class test{
  public static final int TEST;
  static{
    TEST = (double)Math.random();
  }//这一段会在类被加载时执行
}

如果没有对其进行初始化的话,编译器会报错
test.java: 1: variable TEST might not have been initialized

primitive主数据类型的包装

primitive主数据类型有8种,分别是BooleanCharacterByteShortIntegerLongFloatDouble。曾经使用主数据类型的时候需要把他们autoboxing(自动包装)起来,现在不用了。
autoboxing似乎不是一个非常实用的东西,不过它无处不在

void takeNumber(Integer i){}

int giveNumber(){
  return x;//x既可以是Integer也可以是int
}

if(bool){}//bool既可以是boolean对象也可以是boolean值

Integer i = new Integer(42);
i++

主数据类型之间可以相互转化

String s = "1";
int x = Integer.parseInt(s);
s = Integer.toString(x);
//也可以
double d = Double.parseDouble("1.12");
s = Double.toString(d);
//对于boolean对象,这里直接贴boolean的源码
public static boolean parseBoolean(String s){
    return ((s != null) && s.equalsIgnoreCase("true");
}

public Boolean(String s){
    this(parseBoolean(s));
}
public Boolean (boolean value){
    this.value = value;
}

格式化format()

format是java进行格式设定的方法,只需要调用静态的
String.format();
就可以实现。这里主要解析一下format的结构。

format("%,.2f",476578.09876)
//输出为476,578.10 

%表示这里有一个参数,逗号表示用带有逗号的方式输出,.2f表示以保留小数点后两位的方式来进行格式化输出,四舍五入。
跟在%最多有五个部分

部分 作用 顺序
[argument number] 如果需要格式化的参数超过一个以上,就可以用这个来指定是哪一个参数 First
[flags] 特定类型的特定选项,比如数字要加逗号或者正负号 Second
[width] 最小的字符数,不满足会自动补零 Third
[.precision] 精确度,注意前面有圆点符号 Fourth
type 一定要指定参数类型,唯一的必填项 Fifth

%d指定的是int,%f必须是浮点数,%x必须是byte,short,int,long,BigInteger,%c和%x相似,但不包括BigInteger
下面是format的一个例子

String s = String.format("The rank is %,d out of %,.2f", one, two);
//The rant is 20,456,654 out of 100,567,890.25

format使用的是可变参数列表,可以传入任意个参数。
同时,日期也可以format,下面列举几个方法。

//import java.util.Date
String.format("%tc", new Date());
//周日 3月 10 21:11:44 GMT+08:00 2019
09:11:44 下午
String.format("%tr", new Date());
//09:11:44 下午
Date today = new Date();
String.format("%tA,%<tB,%<td",today);
// '<'表示使用同上的参数,但不用写出来
//星期日,三月,10

在实际操作中,Calendar这个API具有更好的用处,但是java常用API会单独在另一篇博客中提到,这里就不多说了。

相关文章

网友评论

      本文标题:Java基础知识总结-----数字与静态

      本文链接:https://www.haomeiwen.com/subject/orxcpqtx.html