目录
API(Application Programma Interface)
API(Application Programma Interface)
应用程序编程接口 学习怎么使用这些方法
object
最顶级的类
object类中定义的方法:
toString:原本是类名加十六位进制的哈希值(重写)
equals:
字符串的equals方法比较的是内容(因为string对象里有equals方法)
自我创建的对象 的equals方法直接比的是地址 要重写!!
基本类型包装类
基本类型:八种基本数据类型:int char short byte float double boolean long
包装类:使用关键字定义,不是面向对象的
所以都提供了一个类进行包装,这样就是 面向对象的
//所以呢我们的包装类 一般是静态加final修饰的 可通过类直接调用 但是 不能继承重写 您就只有使用的机会 //有两种构造方法 可以直接在创建Integer类的对象是直接通过构造器直接赋值 也可以传入数字的字符串它会直接变成int //可通过To什么转为二进制十六进制等等 //自动装箱 和拆箱 可直接互相赋 将基本数据类型和包装类型 互相变 //但是 有一个装箱问题 可能是为了效率问题 当你装箱的值在-128到127之间 它自己本身会先查看这个数是否在这个区间 在的化就直接用 不用创建新的对象 //object类 也叫作基类 万类之父 类王 哈哈哈 所有的类都可以实现它的静态的方法 比如自带的toString(输出的是类和地址)和equals方法
自动装箱和自动拆箱
基本类型和基本类型包装类之间转换
自动装箱:把基本类型 转为 包装类型
Integer ba = a;
自动拆箱:把包装类型 转为 基本类型
int c = ba;
自动装箱的问题:
默认会调valueOf(int a)方法
在-128到+127中 直接返回的是创建好的数组的对象
不在此范围中才创建对象
所以建议用包装类的equals方法.
Arrays类
equals方法:比较两个数组内容是否相当
toString方法:输出数组
binarySearch方法:要求数组必须有序(区间包含开始 不包含结束位置)
sort:引用数据类型排序,先重写tostring 然后是我们的类接入comparab<>接口 实现接口的方法
copy方法:用来扩容数组,赋值加扩容
int[] a = {7,2,3,4,5};
int[] b = {1,2,3,4,5};
System.out.println( Arrays.equals(a,b) );
Arrays.sort(a);
System.out.println(Arrays.toString(a));
Student[] s = new Student[3];
Student hah = new Student(100, "hah");
Student mem = new Student(102, "mem");
Student lili = new Student(101, "lili");
s[0] = hah;
s[1] = mem;
s[2] = lili;
Arrays.sort(s);
System.out.println(Arrays.toString(s));
String ss1 = "123";
String ss2 = "12345";
ss1 += "45";
String[] string = new String[2];
string[0]=ss1;
string[1]=ss2;
System.out.println(Arrays.toString(string));
String类
字符串:字符拼接
String s = "123";
在内存中创建了一个String对象,创建后就不可改变
s1已经创建了四个对象
String s1 = "123";
String s2 = "123";
String s3 = new String("123");
s1 常量池 先会去常量池去找有没有这个地方
没有的话 就在常量池里面创建新的对象
第二次s2就直接在常量池里找 所以两个引用地址一致
编码解码
将字符串转为字符数组 然后对字符数组排序
判断功能
equals:重写了object方法 比较的是内容
equalsIgnoreCase;忽略大小写
contains:字符串是否包含一个字串
isEmpty:是否为空(不能是Null)
startsWith:是否已什么开头
endWith:是否已什么结尾
compareTo:字符串比大小
获取功能
使用频率多
length:获取字符串长度
charAt(n):第n+1个位置的字符(第一次字符串出现的位置)
indexOf(字符,):找你需要的字符位置,可查找出现的第n个位置
substring:截取字符串(开始位置,结束位置(不包含结尾))
转换功能
toLowerCase();转大写
toSuperCase();转小写
concat:连接字符串
split;按制定的规则拆分为数组 返回的是String类型的数组 所以要用String数组来接受
//String类
//首先来看看这两个区别 String = "123";
// String s1 = new String("123");
//第二个肯定创建了对象 这是不用说的 第一个是现在常量池里找 没有的话在创建 如果这是在创建第一个再一次 那么常量池就有了 所以不用创建了 直接指向就行了
//底层还时用char或者byte的数组穿起来的
String s11 = new String("adfasfdas");
System.out.println(s11.isEmpty());
System.out.println(s11.contains("m"));
System.out.println(s11.length());
System.out.println(s11.indexOf("a",6));
//substring就是截取字符串 可选开始 和 结束
System.out.println(s11.substring(1,3));
System.out.println(s11.charAt(5));
byte[] aa1 = s11.getBytes();
System.out.println(aa1.toString());
String ab = s11.replace("a","1");
System.out.println(ab);
正则表达式
regex
正则>规则>模式(去匹配某个字符串是否满足某个功能)
可以使用特定的字符来制定规则 用规则匹配字符串
学习那些常用的字符
StringBuffer
这是类 buffer(缓冲)缓冲区
线程安全 也是字符串 可变的
String对象的值不可改变,会产生问题,会创建很多的字符串对象,造成浪费
如果某些场景下 大量的拼接字符串 可使用StringBuffer()默认底层数组的容量是16
可改容量,没有被final修饰 可以改变
添加方法:append()
StringBuffer 和String两者可以互相转
substring(截取) 会产生一个新对象
StringBuilder
多线程 不安全
都是可变的字符串
底层是一样的 都是数组
buffer的添加方法多了一个关键字 synchronized(同步锁) 是线程安全
区别:
buffer是多线程安全的 builder是多线程不安全的
相同点 都是可变的字符串对象
底层都有一个char数组
创建之初会有指定的数组
数组如果空间不够 会新创建一个数组
String:最大区别是不可变
Math类
数学运算方法
静态的
native:修饰的方法是本地方法 是系统的方法 直接调用 没有方法体
round四舍五入
//math类
System.out.println(Math.abs(-1000));
System.out.println(Math.sqrt(9));//输出的还是double类型
System.out.println((int)Math.random());
Random类
random.nextInt(n)指定区间,不包括n
nextint 可加 数 来控制 起始位置
//random类
Random random = new Random();
System.out.println(random.nextInt(200));
char[] aaa = s11.toCharArray();
Date类
代表当前系统的时间();表示一个日期对象
date.getYear()(从1900年开始)
.getMonth()(月份也要加一)
.getMinutes()
.get现在版本中已经不建议使用了
.getTime()(long类型 返回的是 1970.1.1 到现在的时间 毫秒差)(用于程序用了多久的时间)
Calendar类
日历
提供更多的方法
(抽象类不能创建对象)
可以用多态表示它
Calendar calendar
GregorianCalendar 格里高利 公历
(唯一实例子类)
calendar.get(calendar.YEAR)
calendar.get(calendar.MONTH) 月份要加1
DAY-of-YEAR(今天是今年的第几天)
WEEK-of-YEAR(今天是今年的第几周)
simpleDateFormat类
***我觉得这个重要
简单的日期格式化
simpleDateFormat("")
format()
把字符串转为date对象
simpleDateFormat.parse() 传进来个字符串 返回个date对
BigInteger类
大整数类
比long也大的多
是个类 用add() 等方法加减乘除
BigDecimal大浮点数
因为浮点数不精确..无限接近的近似值
所以加减要十分小心!!
用add() 等方法加减乘除

被折叠的 条评论
为什么被折叠?



