Java中 单引号 数字判断相等 StringBuilder

单引号和双引号输出的区别

  • 区别1:java中的单引号表示字符,java中的双引号是字符串。
  • 区别2:单引号引的数据一般是char类型的;双引号引的数据 是String类型的
  • 区别3:java中单引号里面只能放一个字母或数字或符号;java中的双引号里面是0到多个字符构成。所以字符可以直接转换成字符串。字符串需要使用charAt(n) 来获取第几个字符。

char定义时用单引号,只能有一个字母,数字。char c='c';而String用双引号,可以是一个,也可能是多个字母,汉字等。就是所谓的字符串。String s="adsaf";
char只是一个基本类型,而String 可以是一个类,可以直接引用。比如char c='c';不能直接对c调用方法。String s="abc"; 这时可以调用s.charAt(0);等方法,因为String是类,这是就是对象的调用了。

错误示例

if (string.equals('是')) {
    String.format("数字的正负表示:%+d %d %+d %d",8,8,-8,-8);
}

equals() 会判断大小写区别,equalsIgnoreCase() 不会判断大小写区别

StringBuilder重用 清空数据方法

在平时的开发中,StringBuilder用的还是比较常见的,主要是用于优化String字符串的拼接操作。StringBuffer:线程安全的

public class Buffer {

  public static void main(String[] args) {
    StringBuilder sb = new StringBuilder();
    sb.append("1111\n");
    sb.append("222\n");
    System.out.println(sb.toString());
    sb.setLength(0); //清空
    sb.append("5555\n");
    System.out.println(sb.toString());
  }
}

Java Integer/Long类型是否相等

Integer/Long类型的值在-128到127之间会使用缓存,超过就会创建一个对象,所以使用==判断两个值是相等的也会false。若没有超过这个范围,使用==也是可以进行判断的。

  • 推荐用equals(),这个还可以避免一些空指针问题的出现
  • 使用Integer.intValue();这样出来的就是int值,就可以直接比较了(可能会抛出空指针异常);
  • 使用Integer.longValue();这样出来的就是long值,就可以直接比较了(可能会抛出空指针异常);
Long a = 400l;
Long b = 400l;
System.out.println(a.longValue() == b.longValue());

Integer a = 400;
Integer b = 400;
System.out.println(a.intValue()== b.intValue());

两个浮点数是否相等

不论是float还是double都是浮点数,计算机是二进制,浮点数会失去一定的精确度。

 /**
  *  两个浮点数直接判断
  */
double value1 = 0.9 - 0.8;
double value2 = 0.8 - 0.7;
System.out.println(value1 == value2); // false

/**
* 用BigDecimal判断两个浮点数是否相等-compareTo
* 两个值相等,则返回值为0,否则返回值为-1
*/
BigDecimal bigDecimalValue1 = BigDecimal.valueOf(0.9).subtract(BigDecimal.valueOf(0.8));
BigDecimal bigDecimalValue2 = BigDecimal.valueOf(0.8).subtract(BigDecimal.valueOf(0.7));
System.out.println(bigDecimalValue1.compareTo(bigDecimalValue2));

你可能感兴趣的:(Java,引号)