java常用类

java常用类

数字相关类

Short: 16位 2字节 有符号的以二进制补码表示的整数(32768)

Int :32位(范围:10位数 开头是2)

Long: 64位

Float :32位

Double:64位(float和double都不能表示很精确的数字)

BigInteger :无限长的整数

BigDecimal:无限长的小数(bigdecimal做除法时,需要注意截断,防止出现无限循环小数)

BigDecimal num1 = new BigDecimal("10");
BigDecimal num2 = new BigDecimal("3");
BigDecimal num3 = num1.devide(num2,3,BigDecimal.ROUND_HALF_UP);

Random(java.util包下的):

​ nextInt()返回一个随机的整数

​ nextInt(int a)返回一个[0,a)之间的随机int

​ nextDouble()返回一个0.0-1.0之间的double

​ ints方法批量返回随机数数组

Math

​ Math.random()返回一个0.0-1.0之间的double

	Math.obs(-5);
	Math.max(-5,-8);
	Math.pow(-5,2);
    Math.round(3.5);
    Math.ceil(3.5);
    Math.floor(3.5);

在这里插入图片描述

字符串相关类

String类

不可变对象,加减操作性能比较差

		String a = "123;456;789;123 ";
		System.out.println(a.charAt(0)); // 返回第0个元素
		System.out.println(a.indexOf(";")); // 返回第一个;的位置
		System.out.println(a.concat(";000")); // 连接一个新字符串并返回,a不变
		System.out.println(a.contains("000")); // 判断a是否包含000
		System.out.println(a.endsWith("000")); // 判断a是否以000结尾
		System.out.println(a.equals("000")); // 判断是否等于000
		System.out.println(a.equalsIgnoreCase("000"));// 判断在忽略大小写情况下是否等于000
		System.out.println(a.length()); // 返回a长度
		System.out.println(a.trim()); // 返回a去除前后空格后的字符串,a不变
		String[] b = a.split(";"); // 将a字符串按照;分割成数组
		for (int i = 0; i < b.length; i++) {
			System.out.println(b[i]);
		}

		System.out.println("===================");

		System.out.println(a.substring(2, 5)); // 截取a的第2个到第5个字符 a不变
		System.out.println(a.replace("1", "a"));
		System.out.println(a.replaceAll("1", "a")); // replaceAll第一个参数是正则表达式

		System.out.println("===================");

		String s1 = "12345?6789";
		String s2 = s1.replace("?", "a");
		String s3 = s1.replaceAll("[?]", "a");
		// 这里的[?] 才表示字符问号,这样才能正常替换。不然在正则中会有特殊的意义就会报异常
		System.out.println(s2);
		System.out.println(s3);
		System.out.println(s1.replaceAll("[\\d]", "a")); //将s1内所有数字替换为a并输出,s1的值未改变。

输出

1
3
123;456;789;123 ;000
false
false
false
false
16
123;456;789;123
123
456
789
123 
===================
3;4
a23;456;789;a23 
a23;456;789;a23 
===================
12345a6789
12345a6789
aaaaa?aaaa

可变字符串

StringBuffer是同步的,线程安全的,修改快速的,

StringBuild是不同步的,线程不安全的,修改更加快速

可变字符串在内存上的体现

StringBuffer sb1 = new StringBuffer("123");
StringBuffer sb2 = sb1;
		
sb1.append("12345678901234567890123456789012345678901234567890");
System.out.println(sb2);  //sb1 和 sb2还是指向同一个内存的
//输出:12312345678901234567890123456789012345678901234567890

capacity()计算字符串在内存中占用的大小

//StringBuffer的的初始大小为(16+初始字符串长度)即capacity=16+初始字符串长度
		//length 实际长度  capacity 存储空间大小
		StringBuffer sb1 = new StringBuffer();
		System.out.println("sb1 length: " + sb1.length());
		System.out.println("sb1 capacity: " + sb1.capacity());
		System.out.println("=====================");
		
		StringBuffer sb2 = new StringBuffer("123");
		sb2.append("456");
		System.out.println("sb2 length: " + sb2.length());
		System.out.println("sb2 capacity: " + sb2.capacity());
		System.out.println("=====================");
		
		sb2.append("7890123456789");
		System.out.println("sb2 length: " + sb2.length());
		System.out.println("sb2 capacity: " + sb2.capacity());
		System.out.println("=====================");
		
		sb2.append("0");
		System.out.println("sb2 length: " + sb2.length());
		System.out.println("sb2 capacity: " + sb2.capacity());
		//一旦length大于capacity时,capacity便在前一次的基础上加1后翻倍;
		System.out.println("=====================");
		
		//当前sb2length 20   capacity 40, 再append 70个字符 超过(加1再2倍数额)
		sb2.append("1234567890123456789012345678901234567890123456789012345678901234567890");
		System.out.println("sb2 length: " + sb2.length());
		System.out.println("sb2 capacity: " + sb2.capacity());
		//如果append的对象很长,超过(加1再2倍数额),将以最新的长度更换
		
		System.out.println("=====================");
		sb2.append("0");
		System.out.println("sb2 length: " + sb2.length());
		System.out.println("sb2 capacity: " + sb2.capacity());
		sb2.trimToSize();//释放掉空的空间
		System.out.println("=====after trime================");
		System.out.println("sb2 length: " + sb2.length());
		System.out.println("sb2 capacity: " + sb2.capacity());

输出


sb1 length: 0
sb1 capacity: 16
=====================
sb2 length: 6
sb2 capacity: 19
=====================
sb2 length: 19
sb2 capacity: 19
=====================
sb2 length: 20
sb2 capacity: 40
=====================
sb2 length: 90
sb2 capacity: 90
=====================
sb2 length: 91
sb2 capacity: 182
=====after trime================
sb2 length: 91
sb2 capacity: 91

Process finished with exit code 0

时间相关类

java.util.Date(基本废弃,Deprecated)

常用方法:getTime()返回自1970.1.1以来的毫秒数 long型

java.sql.Date和数据库对应的时间类

Calendar是目前程序中最常用的,但是是抽象类

Calendar gc = Calendar.getInstance();
Calendar gc2 = new GregorianCalendar();
//gc与gc2是同一种对象

java.time

格式化类

专门用于处理前三种类的格式化输出。

NumberFormat:数字格式化,抽象类

DecimalFormat df1,df2;
         
        System.out.println("整数部分为0的情况,0/#的区别");
        // 整数部分为0 , #认为整数不存在,可不写; 0认为没有,但至少写一位,写0
        df1 = new DecimalFormat("#.00");
        df2 = new DecimalFormat("0.00");
         
        System.out.println(df1.format(0.1)); // .10  
        System.out.println(df2.format(0.1)); // 0.10  
         
        System.out.println("小数部分0/#的区别");
        //#代表最多有几位,0代表必须有且只能有几位
        df1 = new DecimalFormat("0.00");
        df2 = new DecimalFormat("0.##");
         
        System.out.println(df1.format(0.1)); // 0.10
        System.out.println(df2.format(0.1)); // 0.1
         
        System.out.println(df1.format(0.006)); // 0.01
        System.out.println(df2.format(0.006)); // 0.01
         
        System.out.println("整数部分有多位");
        //0和#对整数部分多位时的处理是一致的 就是有几位写多少位
        df1 = new DecimalFormat("0.00");
        df2 = new DecimalFormat("#.00");
         
        System.out.println(df1.format(2)); // 2.00
        System.out.println(df2.format(2)); // 2.00
         
        System.out.println(df1.format(20)); // 20.00
        System.out.println(df2.format(20)); // 20.00
         
        System.out.println(df1.format(200)); // 200.00
        System.out.println(df2.format(200)); // 200.00

字符串的format

String message = "{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}";  
		  
		Object[] array = new Object[]{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q"};  
		  
		String value = MessageFormat.format(message, array);  
		  
		System.out.println(value);  
		
		message = "oh, {0,number,#.##} is a good number";  
		  
		array = new Object[]{new Double(3.1415)};  
		  
		value = MessageFormat.format(message, array);  
		  
		System.out.println(value);  

​ SimpleDateFormat

	String strDate = "2008-10-19 10:11:30.345" ;  
        // 准备第一个模板,从字符串中提取出日期数字  
        String pat1 = "yyyy-MM-dd HH:mm:ss.SSS" ;  
        // 准备第二个模板,将提取后的日期数字变为指定的格式  
        String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" ;  
        SimpleDateFormat sdf1 = new SimpleDateFormat(pat1) ;        // 实例化模板对象  
        SimpleDateFormat sdf2 = new SimpleDateFormat(pat2) ;        // 实例化模板对象  
        Date d = null ;  
        try{  
            d = sdf1.parse(strDate) ;   // 将给定的字符串中的日期提取出来  
        }catch(Exception e){            // 如果提供的字符串格式有错误,则进行异常处理  
            e.printStackTrace() ;       // 打印异常信息  
        }  
        System.out.println(sdf2.format(d)) ;    // 将日期变为新的格式  

java8特性:DateFormatter 这是一个线程安全的格式化类

String dateStr= "2016年10月25日";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        LocalDate date= LocalDate.parse(dateStr, formatter);
        System.out.println(date.getYear() + "-" + date.getMonthValue() + "-" + date.getDayOfMonth());
        
        System.out.println("==========================");
        
        //将日期转换为字符串输出
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy年MM月dd日 hh:mm:ss");
        String nowStr = now.format(format);
        System.out.println(nowStr);

jar机制

jar文件,是java所特有的一种文件格式,用于可执行程序文件的传播。jar文件实际上是一组class文件的压缩包。

优势:

jar文件包括很多个class,比多层目录更加简洁。

jar文件经过压缩,只有一个文件,在网络下载和传播方面,更具有优势。

jar文件只包括class没有包含java文件,在保护源文件和知识版权方面,能够起到更好的作用

format = DateTimeFormatter.ofPattern(“yyyy年MM月dd日 hh:mm:ss”);
String nowStr = now.format(format);
System.out.println(nowStr);




# jar机制

jar文件,是java所特有的一种文件格式,用于可执行程序文件的传播。jar文件实际上是一组class文件的压缩包。

优势:

jar文件包括很多个class,比多层目录更加简洁。

jar文件经过压缩,只有一个文件,在网络下载和传播方面,更具有优势。

jar文件只包括class没有包含java文件,在保护源文件和知识版权方面,能够起到更好的作用

将多个class文件压缩成一个jar文件,可以稳定给一个版本号,更加容易进行版本控制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值