常用API(了解即可,用到了再回来看)
API(工具类):已经打包好我们可以根据他提供的格式直接用就好(很像函数)
API都可以通过 类名.方法名 进行调用.
Math
Math类包用于常用的基本数学运算的方法.
System:
System类包提供了一些与系统相关的方法
Runtime:
Runtime类包提供方法表示当前虚拟机的运行情况.
Object:
Object是类结构中的根(顶级父类),几乎所有的类都是它的子类,所以所有的类都拥有他的方法,所以一般都要求使用之前重写Object中要使用的方法
Object只有一个空参构造所以所有的类都默认有个空参构造.
clone(使用前要仔细学习使用方法)
BigInteger:
BigInteger类提供超大的整数和与之相关的运算方法
对象创建后值无法改变
常用的方法
BigDecimal:
BigDecimal类提供超大的浮点数和与之相关的运算
对象创建后值无法改变
构造方法
常用方法
关于时间的类有点多就不细说了
Date:表一个特定的时间(单位毫秒)
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。
LocalDate 表示日期(年月日)
LocalTime 表示时间(时分秒)
LocalDateTime 表示时间+ 日期 (年月日时分秒)
Lambda表达式
Lambda表达式是用于简化代码使得代码更加的简洁易懂,可读性更高.(常用来替代内部类)
使用格式
( )->{
}
() : 表示方法的形参.
-> : 格式.
{} : 具体的方法.
Lambda表达式只能简化函数式接口的匿名内部类的接口.
函数式接口 : 有且只有一个抽象方法的接口.验证方法:接口上方可以加上 FuntionalInterface
public class Main {
public static void main(String[] args) {
Swim(()->{
System.out.println("正在游泳");
});
}
public static void Swim(swim a){
a.swimming();
}
interface swim{
public void swimming();
}
}
省略原则 :
1.参数类型可以省略不写.
2.如果只有一个参数,参数类型可以省略,()也可以省略.
3.如果Lambda表达式的方法体只有一行,(大括号,分号,return)(要省略必须一起省略)可以省略不写;
public class Main {
public static void main(String[] args) {
Swim(x-> System.out.println(x));
}
public static void Swim(swim a){
a.swimming(123);
}
interface swim{
public void swimming(int b);
}
}
Lambda表达式遍历集合的简化方法
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<String> a=new ArrayList<>();
a.add("jjm");
a.add("gg");
a.add("空白");
a.forEach(b-> System.out.println(b));
}
}
Stream流
Stream是一种工具类,借助Stream流可以让我们更方便的处理集合完成(筛选,排序等操作)
Stream流可以通过集合或数组直接创建.
虽然双列集合无法直接使用Stream流但是可以通过转换后使用.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;
//这里创建的Stream流单线程的,还有多线程的可提供使用.
public class Main {
public static void main(String[] args) {
ArrayList<String> a=new ArrayList<>();
Stream<String> stream=a.stream(); //用集合来创建Stream流
int [] b=new int[10];
IntStream stream1= Arrays.stream(b); //用数组来完成创建Stream流
}
}
每一个Stream流在使用中不会直接用集合或数组里的值而是会重新创建一个集合或数组,所以在Stream流中的操作不会影响到原集合或数组
Stream流分为中间方法和结束方法
中间方法 :
中间方法可以有无数个.通常是使用Stream流对集合或数组中的数据进行操作.
中间方法的返回值为一个新的Stream流,旧的抛弃不用所以要用链式编程;
class rabbita{
int age;
String name;
public int getAge() {
return age;
}
public rabbita setAge(int age) {
this.age = age;
return this;
}
public String getName() {
return name;
}
public rabbita setName(String name) {
this.name = name;
return this;
}
public rabbita() {
}
public rabbita(int age, String name) {
this.age = age;
this.name = name;
}
}
public class test{
public static void main(String[] args) {
rabbita b=new rabbita()
.setName("GG") //链式编程
.setAge(3);
int age= b.getAge(); //得到类的成员变量的值
String name= b.getName();
System.out.println(name); //输出的得到的值
System.out.println(age);
}
}
结束方法 :
结束方法只能有一个.通常为遍历数据或将进行操作后的数据保存起来.
放入set,list,map操作不同这里只举例list.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
ArrayList<String> a=new ArrayList<>();
a.add("蒋介石");
a.add("蒋经国");
a.add("唐山");
a.add("沈剑心");
//筛选操作以遍历结尾
a.stream().filter(s->s.startsWith("蒋")).forEach(s-> System.out.println(s));
System.out.println("\n");
//限制输出前几个的操作(skip同理)以计数结尾
long c=a.stream().filter(s->s.startsWith("蒋"))
.limit(1)
.count();
System.out.println(c);
System.out.println("\n");
//筛选操作以放入集合结尾
List<String> d=a.stream().filter(s->s.startsWith("蒋"))
.collect(Collectors.toList());
System.out.println(d);
}
}
运行结果
java stream资料 : http://t.csdnimg.cn/20aqB