Java语言简介及数据类型

一、Java语言简介及数据类型

1、八大基本类型

  • Int
  • short
  • byte
  • long
  • boolean
  • char
  • float
  • double

2、整型溢出

long millisOfYears = 5000 * 365 * 24 * 3600 * 1000

上述代码会导致溢出,解决方案在第一个数值5000后边加“L”

long millisOfYears = 5000L * 365 * 24 * 3600 * 1000

3、空指针异常

Integer a = null;
int b = a.intValue();

intValue()是输出int数据。上述代码会报空指针异常

4、精度丢失

double d = 15.68;
System.out.println(new BigDecimal(d));

输出结果为:15.67999999999999971578290569595992565155029296875

避免精度丢失两种方法:

BigDecimal bd = BigDecimal.valueOf(0.580);

valueOf() 方法用于返回给定参数的原生 Number 对象值,但输出结果会没有最后的0,为0.58

BigDecimal bd1 = new BigDecimal("0.580");

使用字符串方式

输出是0.580

bd.equals(bd1)

equal()既比较数值,又比较精度,结果为false

bd.compareTo(bd1)

compareTo()只比较数值,结果为0。

<0表示bd<bd1

5、StringBuilder

多线程情况下,StringBuffer是线程安全的,StringBuilder是非线程安全的。

由于StringBuffer有锁,所以在单线程情况下,StringBuilder更快一些。

扩容规则:如果append的长度+原长度>容量,则扩充容量为原容量*2+2。

6、Strings

Strings是Guava提供的一个String工具类,提供一系列的有关String的静态工具方法。

(1)isNUllOrEmpty/nullToEmpty/emptyToNull

(2)padStart/PadEnd/repeat

在这里插入图片描述

(3)commonPrefix/commonSuffix

公共前缀、公共后缀

在这里插入图片描述

7、Ints

在这里插入图片描述

在这里插入图片描述

8、Joiner

List<Integer> a = Lists.newArrayList(1,3,5);
System.out.println(Joiner.on("|").join(a));

在这里插入图片描述
注意:a里不能有null

如果有空元素,可以使用useForNull(“7”)替换空元素,或者skipNulls()跳过空元素,但是这两个不能同时使用。

String host = "www.baidu.com";
Map<String, String> param = Maps.newHashMap();
param.put("name", "sksk");
param.put("id", "0");
String queryString = Joiner.on("&").withKeyValueSeparator("=").join(param);
System.out.println(host + "?" + queryString);

在这里插入图片描述

9、Splitter

public static void split(){
        String string = ",   a,b  ,";
        //[,    a, b  ],丢失了最后一个空元素
        String[] regexSplit = string.split("[,]");
        System.out.println(Arrays.toString(regexSplit));

        //guava
        //[,    a, b  , ]
        List<String> guavaSplit = Splitter.on(",").splitToList(string);
        System.out.println(guavaSplit);

        //去除空格
        //[, a, b, ]
        List<String> guavaSplit2 = Splitter.on(",").trimResults().splitToList(string);
        System.out.println(guavaSplit2);

        //去除空元素
        //[a, b]
        List<String> guavaSplit3 = Splitter.on(",").trimResults().omitEmptyStrings().splitToList(string);
        System.out.println(guavaSplit3);
    }
}
 public static void mapSplit(){
      String queryString = "a=1&b=2";
      Map<String,String> split = Splitter.on('&').withKeyValueSeparator('=').split(queryString);
      System.out.println(split);
    }

10、Objects

  • equal
  • hashCode
  • toSTringHelper
  • forstNonNull

11、CharMatcher

  • and/or/anyOf/noneOf/is/isNot
  • removeFrom/retainFrom
  • 配合Splitter使用

12、Optional

在这里插入图片描述

13、Function

函数式编程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值