一.Java API概述
API(Application Programming Interface)应用程序编程接口 , 是对java预先定义的类或接口功能和函数功能的说明文档,目的是提供给开发人员进行使用帮助说明.
二.基本数据类型包装类
● Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和 基本数据类型对应的类统称为包装类.
● 包装类(如:Integer,Double等)这些类封装了一个相应的基本数据 类型数值,并为其提供了一系列操作方法。
对于包装类来说,这些类的用途主要包含两种:
● 作为和基本数据类型对应的类类型存在。
● 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
public class dome1 {
public static void main(String[] args) {
// ==在进行基本数据类型比较时,比较的是数值的大小;
// ==在进行引用数据类型比较时,比较的是在内存中地址是否相等;
int a=10;
int b=10;
System.out.println(a==b);//ture
Integer e=new Integer(10);
Integer f=new Integer(10);
System.out.println(e==f);//false
//在进行装箱时,数值在-128到127之间的话,会分配到内存的相同地址
//数值不在-128到127之间的哈,会分配到内存的不同地址
Integer c=10;
Integer d=10;
System.out.println(c==d);//ture
Integer g=128;
Integer h=128;
System.out.println(g==h);//false
}
}
三.StringBuffer类
● StringBuffer类概述
我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String 对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题 线程安全的可变字符序列.
● StringBuffer和String的区别?
简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可以把字符串设为共享的。
StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。
StringBuffer是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。
● 构造方法:
public StringBuffer() ;
public StringBuffer(String str);
●StringBuffer类中的常用功能:
● 添加功能 :
public StringBuffer append(String str);
public StringBuffer insert(int offset,String str) ;
● 删除功能:
public StringBuffer deleteCharAt(int index) ;
public StringBuffer delete(int start,int end) ;
● 替换功能 :
public StringBuffer replace(int start,int end,String str) ;
● 反转功能:
public StringBuffer reverse();
● 截取功能
public String substring(int start) ;
public String substring(int start,int end) ;
截取功能和前面几个功能的不同 返回值类型是String类型,本身没有发生改变
package Text1;
public class StringBufferDome {
public static void main(String[] args) {
StringBuffer s=new StringBuffer("00000");
//添加功能
//public StringBuffer append(String str)
//public StringBuffer insert(int offset,String str)
s.append("11111");
s.append("22222");
s.append("33333");
s.append("44444");
s.insert(0,"asasas");
System.out.println(s);
//删除功能
// public StringBuffer deleteCharAt(int index)
// public StringBuffer delete(int start,int end)
StringBuffer s1=new StringBuffer("012345");
s1.delete(0,2); //删除开始序号到结束序号的元素,结束序号的元素保留;
s1.deleteCharAt(1);//删除某一个序号元素;
System.out.println(s1);
//替换功能
// public StringBuffer replace(int start,int end,String str)
StringBuffer s2=new StringBuffer("012345");
s2.replace(0,5,"abcde");//将开始序号元素到结束序号元素替换
System.out.println(s2);
//反转功能
// public StringBuffer reverse()
StringBuffer s3=new StringBuffer("012345");
s3.reverse(); //将字符串逆序排列
System.out.println(s3);
//截取功能
// public String substring(int start)
// public String substring(int start,int end)
//截取功能和前面几个功能的不同 返回值类型是String类型,本身没有发生改变
StringBuffer s4=new StringBuffer("012345");
System.out.println(s4.substring(0,2));//将开始序号到结束序号的元素提取出来
System.out.println(s4.substring(2));//将某个序号的元素到后面的元素全部提取出来
System.out.println(s4);
}
}
Math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和 返回值类型一般为double型。
abs 绝对值
sqrt 平方根
pow(double a, double b) a的b次幂
max(double a, double b) 两个数的最大值
min(double a, double b) 两个数的最小值
random() 返回 0.0 到 1.0 的随机数 long round(double a) double型的数据a转换为long型(四舍五入)
package Text1;
public class MathDome {
// abs 绝对值
// sqrt 平方根
// pow(double a, double b) a的b次幂
// max(double a, double b)
// min(double a, double b)
// random() 返回 0.0 到 1.0 的随机数
// long round(double a) double型的数据a转换为long型(四舍五入)
public static void main(String[] args) {
System.out.println(Math.abs(-3));//绝对值
System.out.println(Math.sqrt(9));//平方根
System.out.println(Math.pow(3,5.0));//a的b次幂
System.out.println(Math.max(3,6));//最大值
System.out.println(Math.min(2,5));//最小值
System.out.println(Math.ceil(10.02));//11.0,ceil 向上取整;
System.out.println(Math.floor(10.02));//10.0,floor 向下取整;
System.out.println(Math.random());//返回一个double值为正号,大于等于0.0 ,小于1.0 。 返回的值是从该范围(大约)均匀分布而伪随机选择的。
System.out.println(Math.random());//返回一个double值为正号,大于等于0.0 ,小于1.0 。 返回的值是从该范围(大约)均匀分布而伪随机选择的。
System.out.println(Math.round(4.49));//double型的数据a转换为long型(四舍五入)
System.out.println(Math.round(4.51));//double型的数据a转换为long型(四舍五入)
}
}
Random类
● Random类概述
此类用于产生随机数
● 构造方法
public Random()
● 成员方法
public int nextInt()
public int nextInt(int n)
```java
import java.util.Arrays;
import java.util.Random;
public class RandomDome {
// Random类概述 此类用于产生随机数
// 构造方法 public Random()
// 成员方法 public int nextInt()
// public int nextInt(int n)
public static void main(String[] args) {
Random r=new Random();
System.out.println(r.nextInt());
//随机获取0~19之间的一个数
System.out.println(r.nextInt(20));
//生成指定长度的随机byte数组
byte[] b=new byte[7];
r.nextBytes(b);
System.out.println(Arrays.toString(b));
}
}