
java
zwl1519
这个作者很懒,什么都没留下…
展开
-
Lambda表达式和匿名内部类的区别
所需类型不同:匿名内部类:可以是抽象类,可以是接口,也可以是具体类 Lambda表达式:只可以是接口使用限制不同:如果接口中有且仅有一个抽象方法,可以使用Lambda表达式,也可以使用匿名内部类 如果接口中的抽象方法不止一个,就只能使用匿名内部类,不能使用Lambda表达式实现原理不同:匿名内部类在编译之后会产生一个单独的.class字节码文件 Lambda表达式在编译之后不会产生一个单独的.class字节码文件,对应的字节码会在运行的时候动态生成...原创 2020-07-23 12:15:13 · 1114 阅读 · 1 评论 -
多线程的实现
在JAVA中,有两种方式可以实现多线程。1、继承Thread类;2、实现Runnable(Callable)接口。JDK从最开始定义多线程支持时,只有两种实现要求:要么继承Thread类,要么实现Runnable接口,但是在JDK1.5开始又提供了一个新的线程接口:Callable接口。继承Thread实现多线程:java.long.Thread类是一个负责线程原创 2017-08-30 21:01:45 · 285 阅读 · 0 评论 -
线程的同步
实际上所谓的同步指的就是多个线程访问同一资源时所要考虑到的情况。观察非同步情况下的操作:class MyThread implements Runnable{ private int tickets = 5 ;//总共的票数 @Override public void run() { for(int x = 0 ; x < 20 ; x ++){ if(this.tickets原创 2017-09-29 16:00:07 · 236 阅读 · 0 评论 -
XML各种解析方式的区别
1.DOM生成和解析XML文档为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM接口来操作这个树结构。优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU原创 2017-10-10 10:14:04 · 817 阅读 · 0 评论 -
Callable接口实现多线程
java.util.concurrent.Callable接口是JDK1.5的时候引入的,相比较前两种实现多线程的方式,通过实现Callable接口实现多线程会更麻烦,但是此接口的最大特点是线程主体执行完毕之后会有返回值。观察Callable接口的定义:@FunctionalInterfacepublic interface Callable{ public V call() throws原创 2017-08-31 11:33:44 · 1048 阅读 · 0 评论 -
线程的优先级
在java的线程操作中,所有的线程在运行前都会保持就绪状态,此时哪个线程的优先级高,哪个线程就有可能会被先执行。在Thraead类里面提供了支持的方法及常量:public static final int MAX_PRIORITY 最高优先级,数值为10public static final int NORM_PRIORITY 中等优先级,数值为5public static final i原创 2017-09-24 10:40:59 · 565 阅读 · 0 评论 -
JAVA 内建式函数接口
对于方法的引用,严格来讲都需要定义一个接口,可是不管如何操作,实际上有可能操作的接口只有四种:在JDK1.8里面提供了一个包:java.util.function,提供有以下四个核心接口: 1、功能型接口(Function):public interface Function{public R apply(T t);} |-此接口需要接收一个参数,并返回原创 2017-08-29 17:08:27 · 359 阅读 · 0 评论 -
JAVA assert关键字
assert关键字是在JDK1.4的时候引入的,其主要的目的是断言。在JAVA中的断言指的是执行到某行代码处时一定是预期的结果public class Demo{ public static void main (String [] args){ int num = 10 ; //假设中间经过了20行代码 //期望中num的值会变为20 assert num ==20 : "n原创 2017-08-29 22:10:55 · 839 阅读 · 0 评论 -
JAVA Annotation
Annotation(注解)是在JDK1.5出现的,其实就是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件嵌入一些补充的信息。Annotation提供了一条为程序元素设置元数据的方法,从某些方面看,Annotation就像修饰符一样被使用,可以用于修饰包、类、构造器、方法、属性、局部变量的声明原创 2017-08-29 15:44:39 · 231 阅读 · 0 评论 -
JAVA 方法引用
一直以来我们都只是在对象上看见引用的身影,而对象引用的特点,就是不同的对象能够操作同一块内容,方法引用就是指为一个方法设置别名,相当于一个方法定义了不同的名字方法引用在JAVA8之中一共定义了四种形式:1、引用静态方法:类名称 :: static方法名称 ;2、引用某个对象的方法: 实例化对象 :: 普通方法 ;3、引用特定类型的方法 : 特定类 :: 普通方法 ;4、引用构造原创 2017-08-29 08:43:13 · 673 阅读 · 0 评论 -
泛型接口
定义一个泛型接口: interface IMessage { public void print(T t) ;}在接口上必须定义其子类,而泛型接口的子类有两种定义形式形式一:在子类继续设置泛型:class Message implements IMessage{ @Override public void print(T t) {原创 2017-08-24 16:49:32 · 311 阅读 · 0 评论 -
JAVA Lambda表达式
Lambda表达式是JDK1.8引入的重要技术特征。所谓Lambda表达式指的是应用在单一抽象方法(Single Abstract Method , SAM)接口环境下的一种简化定义形式,可以用于解决匿名内部类的定义复杂问题。首先看一下用匿名内部类实现接口口从上面的代码可以看出,为了实现一句输出,我们使用了很多嵌套语句,这样看起来事一件很麻烦的事。原创 2017-08-26 18:33:59 · 371 阅读 · 0 评论 -
JAVA enum 和 Enum 的区别
1 enum 是一个关键字,Enum是一个抽象类2 用enum关键字定义的枚举类就相当于继承了Enum抽象类原创 2017-08-25 16:51:36 · 1645 阅读 · 0 评论