接口中的默认方法,接口终于可以有方法实现了,使用注解即可标识出默认方法。lambda表达式实现了函数式编程,通过注解可以声明一个函数式接口,该接口中只能有一个方法,这个方法正是使用lambda表达式时会调用到的接口。Option类实现了非空检验新的日期API各种api的更新,包括chm,hashmap的实现等Stream流概念,实现了集合类的流式访问,可以基于此使用map和reduce并行计算。参
BIO、NIO、AIONIOvsIO之间的理念上面的区别(NIO将阻塞交给了后台线程执行)IO是面向流的,NIO是面向缓冲区的JavaIO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方;NIO则能前后移动流中的数据,因为是面向缓冲区的IO流是阻塞的,NIO流是不阻塞的JavaIO的各种流是阻塞的。这意味着,当一个线程调用read()或write()时,该线程被阻
待补充~
一共有3类锁,方法锁、对象锁、类锁。(方法锁也是对象锁的一种)一、对象锁对象锁publicclassobject{privateLocklock=newReentrantLock();//JavaSE1.5.新增了一个java.util.concurrent包来支持同步publicvoidmethod(){synchronized(this){System.out.println("我是
一、中断interrupt方法只改变目标线程的中断状态(interruptstatus),当线程处于wait、sleep、join等状态时都在方法内部不断地检查中断状态的值,当调用interrupt会抛出InterruptedException异常。interrupt方法Thread实例方法:必须由其它线程获取被调用线程的实例后,进行调用。实际上,只是改变了被调用线程的内部中断状态;Thread.
并发的特性1、可见性a、保证任何一个线程修改变量立即写入到主内存中(堆);b、所有线程对该变量引用会强制立即失效,并且该线程必须去堆中获取最新的变量值。2、指令重排序代码的执行顺序会在JVM中(编译器优化指令级并行重排序内存系统重排序最终执行的指令序列)3、原子性同一时刻最多只有一个线程访问该段代码。Volatile->可见性、指令重排序Synchronied->可见性、指令重排序、原
一、主存储器与工作存储器JMM分为主存储器(mainmemory)和工作存储器(workingmemory)两种。主存储器(mainmemory):类的实例所存在的区域(堆),mainmemory为所有的线程所共享(栈)。工作存储器(workingmemory):每个线程各自独立所拥有的作业区,在workingmemory中,存有mainmemory中的部分拷贝,称之为工作拷贝(workingco
存在的意义位于java.lang包下,和java.lang.reflect包下的类共同支持java反射功能jvm在类加载时,在堆中为每个类生成一个Class对象,用于记录每个类的属性、方法等信息,同时每个对象生成时都有特殊的标记位来指向堆中的Class对象。获取的三种方式1、Class.forName("全路径名")2、类名.Class3、实例对象.getClass()常用方法
Object类9大方法是哪些1、Clone方法实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常Java里参数传递,除了8种基本类型是值传递。其他类对象都是引用传递。2、getClass方法final方法,获得运行时类型。3、toString方法该方法用得比较多,一般子类都有覆盖。4、finalize方法该方法用于释
IO流也是Java中比较重要的一块,Java中主要有字节流,字符流,文件等。其中文件也是通过流的方式打开,读取和写入的。IO流的很多接口都使用了装饰者模式,即将原类型通过传入装饰类构造函数的方式,增强原类型,以此获得像带有缓冲区的字节流,或者将字节流封装成字符流等等,其中需要注意的是编码问题,后者打印出来的结果可能是乱码哦。IO流与网络编程息息相关,一个socket接入后,我们可以获取它的输入流和
1.实现多线程Thread、Runnable、Callable、ExecutorService四种方式Runnable和Callable的区别是1>Runnable是run(),Callable是call()。其中Runnable可以提交给Thread来包装下,Callable一般都是提交给ExecuteService和FutureTask来执行。2>Callable能返回值和抛出异常
Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。Exception异常表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢
1、序列化是干什么的?内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。2、什么情况下序列化a、对象需要持久化(硬盘or数据库)b、网络传输(套接字orRMI)c、在进程间传递对象3、序列化ID的作用java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。反序列化时,JVM会把传来的字节流中的serialVersionUID
能解决Java中编译分为静态编译和动态编译。静态编译:在编译时确定类型,绑定对象,即通过。动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,从而降低类之间的藕合性。能得到实现Java反射机制的类都位于java.lang.reflect包中:1、Class类:代表一个类2、Field类:类的属性(成员变量)3、Method类:类的方法4、Construct
存在意义1、内部类可以很好的实现隐藏一般的非内部类,是不允许有private与protected权限的,但内部类可以2、内部类拥有外部类所有元素的访问权限,private修饰也能访问。3、可实现多重继承,让多个内部类分别继承多个其他类,使外部类可以同时获取多个其他类的属性。4、可以避免修改接口而实现同一个类中两种同名方法的调用。(外部类继承,让内部类实现接口)参考:https://www.jian
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号