![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
万丈高楼平地起,Java基础很重要
骑着蜗牛行天下
星辰和大海都是需要门票的,诗和远方也很贵的!物质需求是需要钱来满足的,而很多精神需求同样是需要物质来支撑的!
展开
-
Java基础知识 32(反射机制,反射构造方法,反射成员方法,反射成员变量,通过反射越过泛型检测)
Java基础知识 32在写反射这篇文章之前,我们先思考一个问题,java中如何创建一个对象,有哪几种方式?java中创建对象大概有这几种方式:(1)使用new关键字:这是我们最常见的也是最简单的创建对象的方式。(2)使用clone的方法:无论何时我们调用一个对象的clone方法,JVM就会创建一个新的对象,将前面的对象的内容全部拷贝进去。(3)使用反序列化:当我们序列化和反序列化一个对象时,JVM会给我们创建一个单独的对象。上述是Java中常见的创建对象的三种方式,还有另外一种方式,就是我们下面原创 2020-06-18 17:14:25 · 199 阅读 · 0 评论 -
Java基础知识 31(7层网络模型,网络编程,Socket套接字,UDP协议与TCP协议客户端和服务端的用法)
Java基础知识 31网络模型7层概述:1.物理层:主要定义物理设备标准,如网线的接口类型,光纤的接口类型,各种传输介质的传输速率等。它的主要作用就是传输比特流(就是由1,0转换为电流强弱来进行传输,到达目的地之后再转化为1,0;也就是我们常说的数模转换和模数转换)。这一层的数据叫比特。2.数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧,在这一层工作的设备是交换机,数据通过交换机来传输。3.网络层:主要将从下层接收到的数据进行IP地址的封装与原创 2020-06-18 11:27:23 · 187 阅读 · 0 评论 -
内存可见性与原子可见性:synchronized和volatile的比较
Java多线程之内存可见性和原子性:Synchronized和Volatile的比较在说明Java多线程内存可见性之前,先来简单了解一下Java内存模型。(具体的图查阅我上一篇博客)(1)Java所有变量都存储在主内存中(2)每个线程都有自己独立的工作内存,里面保存该线程的使用到的变量副本(该副本就是主内存中该变量的一份拷贝)(1)线程对共享变量的所有操作都必须在自己的工作内存中进行,不能直接在主内存中读写(2)不同线程之间无法直接访问其他线程工作内存中的变量,线程间变量值的传递需要通过主内存来完原创 2020-06-12 16:21:54 · 105 阅读 · 0 评论 -
Java基础知识 29(同步代码块,同步方法,静态同步方法,Lock锁,死锁问题)
Java基础知识 29 先回顾一下上节课讲的多个窗口共同卖票的问题,首先我们设置三个不同的线程来同步进行卖票,我们把所有的票数全部设置成静态变量,让这三个线程可以共享这些票。通过设置这个静态变量我们实现了三个窗口共同卖票的问题。但是现实生活中我们打开APP买票时,通常会有广告出现,这些就是线程睡眠的结果。这个线程睡眠可能就会导致共享出现问题,可能会出现0票,甚至还有-1票的问题。那么这是什么原因呢?其实这是由于三个线程之间是抢夺式调度模型,当有一个线程进入了子线程准备购票的时候,这个时候线程中只有1张票原创 2020-06-10 11:27:39 · 574 阅读 · 0 评论 -
Java基础知识 30(线程的等待唤醒机制,内存可见性问题volatile,原子性问题CAS算法,线程的状态转换,线程池Executors,定时器Timer,单例模式之懒汉式与饿汉式)
Java基础知识 30线程之间的等待唤醒机制wait() :在其他线程调用此对象的notify()方法或notifyAll()方法前,导致当前线程等待。wait(long taimeout): 在其他线程调用此对象的notify()方法或notifyAll()方法或者超过指定的时间量前,导致当前线程等待。notify(): 唤醒在此对象监视器上等待的单个线程。notifyAll(): 唤醒在此对象监视器上等待的所有线程。//主线程public class Mytest { publi原创 2020-06-10 11:39:57 · 184 阅读 · 0 评论 -
深入剖析Java创建多线程的三种方式
Java中实现创建多线程的方式有三种:继承Thread类、实现Runnable接口,实现Callable接口。在程序开发中只要是多线程,肯定以实现Runnable接口为主,因为runnable接口相比继承Thread类有以下优势:(1)可以避免由Java的单继承特性而带来的局限。(2)增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。(3)适合多个相同程序代码的线程区处理同一资源的情况。还是以卖票程序为例,来说明一下:首先是继承Thread类实现,代码如下:public clas原创 2020-06-02 19:41:06 · 168 阅读 · 0 评论 -
Java基础知识 28(进程,线程,并发,并行,多线程,创建多线程的方法,线程调度以及设置优先级,线程休眠,加入线程,守护线程,线程死亡,清除线程阻塞)
什么是进程,线程?进程和线程的区别?1.进程当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序。进程是操作系统进行资源分配和调度的一个独立单位。进程是拥有资源的基本单位。我们现在的计算机是支持多进程的,可以运行多个进程。进程的三个特征:(1)独立性:独立存在的实体,每个进程都有自己独立私有的一块内存空间。(2)动态性:程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合。(3)并发性:多个进程可在单处理器上并发执行。并发性和并行性:线程是并发的,进程是并行的。原创 2020-06-02 19:38:47 · 206 阅读 · 0 评论 -
Java基础知识 27(随机访问文件流,序列化流和反序列化流,属性集合properties,SequenceInputStream,压缩流和解压流)
Java基础知识 27随机访问文件流RandomAccessFile概述:最大的特点:能读能写而且有一个文件指针,可以控制指针的位置。此类的实例支持对于随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型byte数组。存在指向该隐含数组的光标或者索引,成为文件指针输入操作从文件指针开始读取字节。并随着对字节的读取而前移此文件指针RandomAccessFile(String name,String mode)创建从中读取和向其中写入(可选)的随机访问文件流,该文件具有原创 2020-06-02 19:31:16 · 210 阅读 · 0 评论 -
Java基础知识 26(数据输入输出流,内存操作流,打印流,标准输入输出流)
Java基础知识 26数据输入输出流数据输入输出流:可以对基本类型直接进行操作。以Stream结尾的一般都是字节流。DataInputStream:数据输入流DataInputStream in = new DataInputStream(new FileInputStream("a.txt"));int i = in.readInt();System.out.println(i);boolean b = in.readBoolean();System.out.println(b);do原创 2020-06-02 19:04:36 · 299 阅读 · 0 评论 -
Java基础知识 25(字符流:OutputStreamWrite,InputStreamReader,便捷字符流,高效字符流)
Java基础知识 25字符流字符流的由来:因为一个中文汉字占2个字节,如果使用字节流操作,就需要对这个汉字进行拆分和合并,但是比较麻烦,因此Java为更加方便的操作中文给我们提供了一个字符流,我们知道,数据在计算机上的最小单位是字节,计算机上操作数据还是要对最小单位进行操作,于是这个字符流底层还是要使用字节流,那么要使用字符流,就要对这个中文汉字进行差分和合并,我们按照码表进行拆分。字符流=字节流+码表编码:按照某种编码方式,把字符串转换成字节数组。解码:按照某种编码方式,把字节数组转换成字符串。原创 2020-05-26 16:56:24 · 509 阅读 · 0 评论 -
Java基础知识 24(字节流的继承关系,FileOutputStream类,FileInputStream类,高效的输入输出字节流,(缓冲思想),try...catch...异常捕获)
Java基础知识 24IO字节流字节流的继承关系FileOutputStream类FileOutputStream:文件输出流,是用于将数据写入File。FileOutputStream(File file)创建一个指向File对象表示的文件中写入数据的文件输出流。FileOutputStream(String name)创建一个指向具有指定名称的文件中写入数据的输出文件流。File file = new File(“a.txt”);创建一个文件输出流,来关联一个文件 当关联的文原创 2020-05-26 16:37:46 · 466 阅读 · 0 评论 -
Java基础知识 23(异常机制(运行期异常和编译期异常),try...catch...语句,finally,常见异常类,throw和throws辨析,自定义异常,File类)
Java基础知识 23IO流的引入IO:InputStream OutputStream 输入输出流在Java中IO流用于进行设备之间的一个数据传输,比如:复制文件,上传,下载文件,都是进行数据的传输,就需要使用到IO流来完成操作。我们在上传或下载文件的时候,使用流的途中,可能会遇到一些问题,这些问题就需要我们来解决。IO流用来进行数据的传输,这些数据在电脑上,它是以文件的形式来体现的。异常机制在谈论异常机制之前,我们先画一下异常机制的继承图。在Java中,对于遇到的问题,有一个类来进行描述原创 2020-05-25 17:55:15 · 312 阅读 · 0 评论 -
关于自定义异常在接口开发中继承RuntimeException的使用总结
关于自定义异常在接口开发中继承RuntimeException的使用总结 在接口开发的过程中,为了程序的健壮性,我们经常考虑到代码执行的异常,并给前端一个友好的展示,这里就用到自定义异常,继承RuntimeException类。这个RuntimeException和普通的Exception有什么区别呢?(1)Exception:非运行时异常,在项目运行之前必须处理掉。一般由程序员 try…catch掉。(2)RuntimeException:运行时异常,在项目运行之后出错则直接终止运行,异常由J原创 2020-05-23 23:14:07 · 2646 阅读 · 1 评论 -
Java基础知识 22(Map,HashMap及其遍历(键找值,键值对对象,forEach)LinkedHashMap,TreeMap及其排序,HashMap 和Hashtable 区别,集合的嵌套)
Java基础知识 22在此之前,我们已经学习Collection集合的子集合,Set集合的子集合,接下来我们要学习Map集合以及它的子集合,我们先用一张图来表示一下它们之间的关系以及需要注意的知识点:Map集合在生活中这种键值对应的的数据很常见,那么Java为了我们方便的去操作这种键值对应关系的数据,给我们提供了另外一种集合叫做Map集合,专门用来操作这种键值对应的数据。键值对应关系的数据是一个键只能映射到一个值。Map 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。原创 2020-05-20 22:55:17 · 551 阅读 · 0 评论 -
Java基础知识 21(Set集合,HashSet集合以及它的三种遍历方式(迭代器,增强for循环,forEach),LinkedHashSet集合,TreeSet集合(自然排序法,比较器排序法))
Java基础知识 21Set集合Set集合:一个不包含重复元素的Collection集合,元素不重复,List集合是允许元素重复的。Set接口的三个字类:HashSet(),LinkedHashSet(),TreeSet()HashSet集合HashSet()集合底层使用的是hashMap()来存储元素,底层数据结构是哈希表,元素无序,且不允许元素重复(存的顺序和去的顺序不一致),可以存储null元素,线程不安全,效率高。哈希表:是一个元素为链表的数组,综合了数组和链表的优点(JDK1.7之前)原创 2020-05-20 22:44:31 · 1221 阅读 · 0 评论 -
Java基础知识 20(泛型机制概述,泛型类的概述和使用,泛型方法的概述和使用,泛型接口的概述和使用,泛型通配符,增强for循环,可变参数)
Java基础知识 20泛型泛型机制概述:是一种将数据类型明确工作,推迟到创建对象或者调用方法时才去明确的一种机制。泛型的好处:(1)把运行时期的问题提前到了编译时期。(2)避免了向下转型,也可以提高扩展性。(3)优化了程序设计,解决了黄色警告线。泛型的语法:<类型><类型,类型2…>类型指的是引用类型泛型的定义:泛型可以定义在类上,接口上,方法上。泛型的有效时间:泛型只在编译期有效,在运行期就擦除了。创建集合时引用普通类型作为泛型:import java.uti原创 2020-05-14 00:07:30 · 173 阅读 · 0 评论 -
Java基础知识 19(数据结构与算法,ArrayList集合,Vector集合,LinkedList集合,集合框架练习题)
Java基础知识 19数据结构与算法数据结构与算法:数据结构:数据的存储方式。常见的数据结构:栈 队列 数组 链表 二叉树 哈希表栈的数据结构特点:先进后出,后进先出。弹夹就是典型的栈结构队列的特点:先进的先出,后进的后出。数组的特点:数组的元素都标有索引,查询快,增删慢。链表的特点:查询慢,增删快。list接口下的三个子类特点:Arraylist集合:底层使用的是数组,查询快,增删慢。线程不安全,效率高。Linkedlist集合:底层使用的是链表,查询慢,增删快。线程不安原创 2020-05-14 00:02:28 · 302 阅读 · 0 评论 -
Java基础知识 18(Collection集合及其方法,List集合及其方法,List集合的三种遍历方式,List集合使用迭代器时的并发修改异常)
Java基础知识 18Collection集合数组,不仅能存储基本数据类型,也能存储引用数据类型。数组作为容器,可存储元素,但是数组作为容器,并不是很方便,如果我要对容器中的元素进行增删,就不方便。因为数组一旦定义,长度就固定了,如果你中途增删元素,就会改变数组的长度,就会报错。因此,Java中为了我们更加方便的对容器中的元素进行更加方便地操作,给我们提供了另外一种容器,叫集合。**集合与数组的区别:****相同点**:都可以作为容器来存储元素。数组的长度是固定的,一旦定义长度就固定了。集合原创 2020-05-13 23:58:49 · 228 阅读 · 0 评论 -
Java基础知识 17(Pattern,Matcher,Math,Random,System,BigDecimal,Date日期类,SimpleDateFormat,Calendar)
Java基础知识 17Pattern类E:\Java project\20200503-常用类-上午-练习指定为字符串的正则表达式必须首先被编译为此类的实例,然后可将得到的模式用于创建matcher对象,按照正则表达式,该对象可以与任意字符匹配。Matcher类E:\Java project\20200503-常用类-上午-练习通过模式器,封装一个正则表达式。Pattern p = ...原创 2020-05-07 00:59:56 · 208 阅读 · 0 评论 -
Java基础知识 16(Arrays工具类,包装类,Integer类,自动手动拆箱装箱,正则表达式)
Java基础知识 16Arrarys工具类详细程序运行:E:\Java project\20200502-Arrays工具类-练习Java中针对数组的操作,提供了一个工具类,来简化我对数组的操作。.Arrays(1)把数组中的元素,拼接成一个字符串:String s=Arrays.toString(arr);(2)排序数组:Arrays.sort(arr)----------->...原创 2020-05-07 00:54:22 · 226 阅读 · 0 评论 -
Java基础知识 15(StringBuffer类,冒泡排序法,选择排序法,直接插入排序,快速排序算法,希尔排序算法,二分法)
Java基础知识 15StringBuffer类具体程序运行:E:\Java project\20200501-StringBuffer-练习如果我们要进行拼串的操作,推荐使用StringBuffer.StringBuffer长度可变的字符序列。String长度不可变的字符序列。StringBuffer()构造一个其中不带字符的字符串缓冲区,初始容量是16个字符,如果字符串长度超过16...原创 2020-05-07 00:48:01 · 257 阅读 · 0 评论 -
Java参数传递:基本类型和引用类型作为传参的分析
java中的方法可以传递参数,参数传递的方法就是值传递。参数又分为实参和形参。实参:调用方法时,传递的参数叫实参。调用方法时,会把实参传递给形参,方法内部实际上使用形参。形参:定义方法时,写的参数叫形参。值传递:当参数是基本类型时,传递参数的值,传递i=5,会把5这个值赋值给形参。 当参数是对象时,传递的是对象的地址值,就是把对象的地址值赋值给形参。基本类型作为参数传递publ...原创 2020-05-02 00:58:09 · 763 阅读 · 0 评论 -
Java基础知识 14(String类,String类构造方法,判断功能,获取功能,转换功能)
Java基础知识 14String类E:\Java project\20200426-String-类-练习字符串:是由多个字符组成的一串数据(字符序列)。字符串可以看成是字符数组。字符串的每个字符,从左往右是编有索引的,从0开始。如果是String类,没有重写toString()方法,那就打印地址值。如果不是地址值,那说明String类重写了toString()方法。public...原创 2020-04-29 15:32:52 · 181 阅读 · 0 评论 -
Java基础知识 13(局部内部类,匿名内部类,[Object类的构造方法hashcode(),getClass(),toString(),equals(),clone()],Scanner()类)
Java基础知识 13局部内部类详细程序请参考:E:\Java project\20200425-匿名对象类-练习局部内部类:把一个类定义到另一个类的方法中。内部类可以直接访问外部类的成员,包括私有的。局部内部类,在外界没有直接创建其对象的语法,public class Mytest { public static void main(String[] args) { ...原创 2020-04-28 01:14:39 · 265 阅读 · 0 评论 -
Java基础知识 12(接口,参数传递,返回值类型,链式编程,面向对象修饰符,内部类)
Java基础知识 12面向对象之接口接口:定义接口,interface接口里面就可以定义一个可以扩展的功能,将来有哪些事物,想要具备这些功能,就可以来实现这个接口,然后重写这个功能。接口不能创建对象。 FireInterface f=new FireInterface; //报错子类————实现implement————FireInterface接口使用多态的形式来调用子类重写过的...原创 2020-04-24 03:45:16 · 203 阅读 · 0 评论 -
Java基础知识 11(面向对象之多态,向下转型,抽象类abstract关键字)
Java基础知识面向对象—多态面向对象的三大特征:封装(类),继承(extends),多态多态:指的是一种事物在不同时期,所表现的不同状态。多态的前提:要有继承,如果没有继承,多态就无从谈起。多态要有方法重写,当然不重写对于语法上来说不报错,但是就失去了多态的意义。案例程序分析1:public class Mytest { public static void main(St...原创 2020-04-19 16:03:23 · 171 阅读 · 0 评论 -
Java基础知识 10(面向对象之继承,extends关键字,super和this的用法,方法重写,final关键字)
Java基础知识 10面向对象—继承extends关键字继承:要类和类之间形成父子关系,可以使用extends关键字来实现。继承的优点:继承可以提高代码的复用性和维护性。 继承就是把多个事物的共性部分,向上抽取到父类当中,以实现代码的复用性和维护性。继承的缺点:让类和类之间产生了父子关系,增加了耦合性。软件设计的一个原则:高内聚,低耦合。高内聚:一个类独立完成某些功能的能力。耦合...原创 2020-04-19 15:59:25 · 216 阅读 · 0 评论 -
Java基础知识 09(static关键字,Math类,面向对象—代码块)
Java基础知识 09static关键字static:静态的,可以修饰成员变量,也可以修饰成员方法,static修饰成员变量,此变量就为一个共享变量,会被该类的所有对象所共享。static关键字特点:(1)随着类的加载而加载。(2)优先于对象而存在。(3)被类的所有对象所共享。如果某个成员变量是被所有对象共享的,那么他就应该被定义成静态的。对于静态所修饰的成员,推荐使用 类名 调用。被静...原创 2020-04-16 02:09:45 · 150 阅读 · 0 评论 -
Java基础知识 08(成员变量&局部变量,private关键字,this关键字,构造方法)
Java基础知识 08成员变量&局部变量局部变量与成员变量的区别:局部变量:定义在方法中的变量或者方法声明上的变量。成员变量:定义在类中方法外的变量。区别:1.局部变量属于方法,成员变量属于对象。 2.局部变量随着方法的调用而产生,随着方法的调用而消失。 3.成员变量随着对象的创建而产生,随着对象的消失而消失。 4.局部变量没有初始化值,必须赋值才能使用。成员变量有默认值。...原创 2020-04-14 02:11:06 · 338 阅读 · 0 评论 -
Java基础知识 07(二维数组的定义及遍历,参数传递,递归,面向对象内存图解)
Java基础知识二维数组一维数组:一维数组的元素是基本类型,引用类型。二维数组:二维数组的元素是一维数组的数组,数组嵌套数组。动态初始化:我们定义长度,系统默认初始值。 int[][] arr=new int[3][2];定义了一个int类型的二维数组,数组长度是3,这个数组中放置了数字长度为2的一维数组。 int[][] arr=new int[3][ ];后面[ ]不填的话,默...原创 2020-04-11 21:58:47 · 359 阅读 · 0 评论 -
Java基础知识 06(内存分配区域,数组角标越界,空指针异常,一维数组的遍历)
Java基础知识 06java内存分配区域java虚拟机在执行Java程序的过程中会把它管理的区域划分成若干个不同的数据区域。一个数组的内存图解:两个数组的内存图解:三个数组的内存图解:案例程序分析1:public class test3 { public static void main(String[] args) { int[] arr1 = ...原创 2020-04-11 21:42:07 · 352 阅读 · 0 评论 -
Java基础知识 05(break,continue,return语句,方法调用,数组定义)
Java基础知识 05控制跳转语句循环嵌套:System.out.print( ); //打印不换行 System.out.println( ); //打印换行1.break语句:中断(1)在选择结构switch语句中 (2)在循环语句中作用:推出单层循环,写在哪一层循环中,结束的就是哪一层循环。2.continue语句:继续(1)在循环语句中 ...原创 2020-04-07 00:08:01 · 154 阅读 · 0 评论 -
Java基础知识 04(逻辑运算符,位运算符,循环语句)
Java基础知识 04逻辑运算符(1)&(并且):多个条件同时成立,有一个条件不成立就是false.这个运算符的两端表达式只要有一端是false,最终的结果都是false,只有当两端的结果都是true时,最终结果才是true。(2)|(或者):两端的表达式只要有一端是true,其最终结果都是true,只有当两端结果都为false时,最终结果菜是false。(3)! (非): 取反...原创 2020-04-05 21:49:25 · 125 阅读 · 0 评论 -
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
你知道的越多,你不知道的越多 点赞再看,...转载 2020-04-05 21:53:57 · 404 阅读 · 0 评论 -
Java基础知识 03(算术运算符)
Java基础知识 03自动类型提升机制案例分析自动类型提升机制:当byte,short,char在参与运算时,会自动提升为int类型,如果还有long,float,double类型参与运算时,则会响应的提升为long,float,double类型,byte,short,char他们三个之间不参与转换,boolean不参与数学运算。class DataDemo{ public static...原创 2020-04-01 01:04:45 · 138 阅读 · 0 评论 -
Java基础知识 02(常量,进制转换,原码、反码、补码,变量)
Java基础知识 02常量整数小数字符常量:单引号引起的单个字符(中英文都行)字符串常量:双引号引起来的多个字符(中英文都行)布尔常量:true,false null(空常量)class ConstantDemo{ public static void main(String[] args) { //输出字符串常量 System.out.println("Hel...原创 2020-03-30 22:48:41 · 197 阅读 · 4 评论 -
Java基础知识 01(Dos命令,语言基础)
011 常用Dos命令(1)要在控制台输入DOS命令(2)打开控制台,Windows+R,打开运行,输入cmd(3)输入一些DOS命令来进行操作(4)D:切换盘符,盘符号(5)dir:罗列此目录下的文件或目录(6)cd+目录,例如cd desktop 进入桌面(7)cd… 回退上一级目录(8)cd/ 直接退回根目录(9)cd…/…/ 直接退回两级目录(10)md+目录名 例...原创 2020-03-29 19:17:07 · 124 阅读 · 0 评论 -
Java中类、对象、封装、继承和多态
Java中类、对象、封装、继承和多态1.类与对象:(1)类是一种抽象的数据类型,它是对某一类事务的整体描述或定义,但是并不能代表某一具体的事务。例如:人(人有姓名,年龄,性别等特征);对象是抽象概念的具体事例。例如:赵云就是人(类)的一个具体实例,赵云家的旺财就是狗(类)的一个具体的实例。对象是展现出来的具体实例,而不是抽象的概念。(2)类与对象的创建://这里就是创建了一个Person类public class Person(){ //每个类中又包含属性以及方法 String name;原创 2020-07-03 17:05:40 · 162 阅读 · 0 评论 -
Java基础知识 34(JDK1.8之Stream流)
JDK1.8之Stream流使用Stream流分为3个阶段:(1)获取一个Stream流,来关联一个容器。(2)进行中间环节的操作,来得到一个持有新结果的流(3)进行终止操作,得到我们的结果,但是并不会对原有的容器有任何改变。获取流->过滤->终止操作public class Mytest { public static void main(String[] args) { //1.想要有一个容器 List<Employee> li原创 2020-06-24 23:14:01 · 131 阅读 · 0 评论 -
JDK1.8之lambda表达式
JDK1.8之lambda表达式lambda是一个匿名函数,可以把lambda表达式理解为一段可以传递的代码(将代码像数据一样传递下去)。可以写出更加简洁,灵活的代码。作为一种更紧凑的代码风格,使Java语言的表达能力得到了提升。Java支持函数式编程,引入lambda表达式,lambda表达式是实现仅有一个抽象方法的接口的简化实现。lambda表达式可以完全替代匿名内部类(只有一个抽象方法的情况下),并且没有匿名内部类这样繁琐的表达结构。在接口中只定义一个抽象方法(可以有普通方法和静态方法)为后来原创 2020-06-24 15:59:26 · 280 阅读 · 0 评论