Java初识
**
工具类
前言
这个系列是根据B站UP主:刘二大人的“Java编程语言入门”的系列视频,将所讲的内容手打出来的( 类似课堂笔记 ),配合视频食用效果更佳。
PS:萌新第一次写博客,如发现了错误,请帮忙指出,万分感谢!最后,希望大家食用愉快,一起进步!
一、代码简介
包下有:Main
二、Package
##Main
代码如下:
package cn.edu.hebut.zr;
import java.util.StringJoiner;
//介绍在Java.lang里面的
public class Main {
public static void main(String[] args) {
//一、拼接
//1.String 拼接 StringBuilder
StringBuilder sb = new StringBuilder();
sb.append(23);
sb.append(45);
sb.insert(1,"abc");//结果是 2abc345
//sb.insert(2,"abc");//结果是 23abc45
sb.append("Mike").append(" ").append("Smith");
//sb.append("")返回就是this,所以每一个调用的结果就是sb;
//然后sb会继续进行下一个调用;
//C里面的cout<<1<<2<<3;<<是cout.output(1);
System.out.println(sb.toString());
//2.拼接带分隔符 StringToiner
int[] arr = new int[]{12,24,56,66};
StringJoiner sj = new StringJoiner(",","[","]");
for(int x:arr){
sj.add(Integer.toString(x));//StringToiner 的 add只接受字符串
}
System.out.println();
//二、包装
//1.基本数据类型 2.引用类型
//所有的包装类创建后是不可变的
// Integer n1 = new Integer("123");//会报错,已经弃用
// Integer n1 = 123;//自动开箱(byte short int long float double) 基本数据类型
// //把123放入Integer里面(boxing)
int n2 = n1.intValue();//把n1的内容拿出来
// int n2 = n1;//自动拆箱
//unboxing 拆箱
// System.out.println(n2);
//看不懂找源码
//下面是关于Integer.valueof()和Integer.parseInt()的区别的博客网址,感兴趣的可以具体看一下,写的非常详细:
//https://blog.csdn.net/jdsjlzx/article/details/106352216?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165018724616780261972554%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165018724616780261972554&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-3-106352216.142^v9^pc_search_result_cache,157^v4^new_style&utm_term=valueof%E5%92%8Cparseint%E7%9A%84%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187
//这里是博客里面的部分内容:
/*1.Integer. valueOf()可以将基本类型int转换为包装类型Integer,或者将String转换成Integer,String如果为Null或“”都会报错。 *
*
* 2.我们可以在Integer类中找到这样的嵌套内部类IntegerCache,
* 这个类就是在Integer类装入内存中时,会执行其内部类中静态代码块进行其初始化工作,
* 做的主要工作就是把一字节的整型数据(-128-127)装包成Integer类并把其对应的引用存入到cache数组中,
* 这样在方法区中开辟空间存放这些静态Integer变量,同时静态cache数组也存放在这里,供线程享用,这也称静态缓存。
* 所以当用Integer 声明初始化变量时,会先判断所赋值的大小是否在-128到127之间,
* 若在,则利用静态缓存中的空间并且返回对应cache数组中对应引用,存放到运行栈中,而不再重新开辟内存。
*
* 3.Integer.valueOf("")和Integer.parseInt("")内部实现是一样的,
* 它们之间唯一的区别就是Integer.valueOf(“”)返回的是一个Integer对象,而Integer.parseInt(“”)返回的是一个基本类型的int。
*
* 4.我们可以看到,Integer.valueOf("")会用到IntegerCache对象,当IntegerCache中存在时就从cache中取,
* 不存在时才会调用new Integer(i)构造函数返回一个Integer对象。所以Integer.valueOf("")会用到cache,
* 其效率可能会比用构造函数new Integer(i)高。
* 关于IntegerCache,在-127~128之间的值都会被cache,所以当我们要的值位于这个区间时返回的都是同一个实例,
* */
//三、
//Math 在所有平台计算结果可能不同(浮点数运算的极端误差等)
//StrictMath 一样的
//如果舍入误差并不需要非常精确的时候,可以用Math;
//使用Math的话,它会根据不同平台进行优化,提高计算性能
//如果需要所有平台计算结果一致的时候,可以用StrickMath;
//四、
//Random 伪随机序列
//用加和乘 进行【0,1)的变化
//写安全领域的方法,用SecureRandom,Random来源更丰富
}
}
总结
Hall of Fame