ring string什么意思 string什么意思

最常见Java面试题总结-基础篇数据类型基本类型byte/8、 char/16、 short/16 、int/32 、 float/32、long/64、double/64、boolean/~
boolean 只有两个值:true、false,可以使用 1 bit 来存储,但是具体?小没有明确规定 。JVM 会在编译时期将 boolean 类型的数据转换为 int,使?用 1 来表示 true,0 表示 false 。JVM ?支持 boolean 数组,但是通过读写 byte 数组来实现的 。
包装类型基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使?用?自动装箱与拆箱完成 。
Integer s = 10;// 装箱 调?用了了 Integer.valueOf(10) int t = x;// 拆箱 调?用了了 X.intValue()复制代码Java 面向对象编程三大特性: 封装 继承 多态封装封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问 。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了 。
继承继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类 。通过使用继承我们能够非常方便地复用以前的代码 。
关于继承如下 3 点请记住:
子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有 。子类可以拥有自己属性和方法,即子类可以对父类进行扩展 。子类可以用自己的方式实现父类的方法 。(以后介绍) 。多态所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定 。
在 Java 中有两种形式可以实现多态:继承(多个子类对同一方法的重写)和接口(实现接口并覆盖接口中同一方法) 。
谈一下对JVM JDK 和 JRE 的理解(JDK 和 JRE 的区别是什么?) 。什么是字节码?为什么要采用字节码?JVMJava 虚拟机(JVM)是运行 Java 字节码的虚拟机 。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果 。
什么是字节码?采用字节码的好处是什么?在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机 。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点 。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行 。
Java 程序从源代码到运行一般有下面 3 步:

ring string什么意思 string什么意思

文章插图
ring string什么意思 string什么意思

文章插图
ring string什么意思 string什么意思

文章插图
ring string什么意思 string什么意思

文章插图
【ring string什么意思 string什么意思】BIO,NIO,AIO 有什么区别?BIO (Blocking I/O): 同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成 。在活动连接数不是特别高(小于单机1000)的情况下,这种模型是比较不错的,可以让每一个连接专注于自己的 I/O 并且编程模型简单,也不用过多考虑系统的过载、限流等问题 。线程池本身就是一个天然的漏斗,可以缓冲一些系统处理不了的连接或请求 。但是,当面对十万甚至百万级连接的时候,传统的 BIO 模型是无能为力的 。因此,我们需要一种更高效的 I/O 处理模型来应对更高的并发量 。NIO (New I/O): NIO是一种同步非阻塞的I/O模型,在Java 1.4 中引入了NIO框架,对应 java.nio 包,提供了 Channel , Selector,Buffer等抽象 。NIO中的N可以理解为Non-blocking,不单纯是New 。它支持面向缓冲的,基于通道的I/O操作方法 。NIO提供了与传统BIO模型中的 Socket 和 ServerSocket 相对应的 SocketChannel 和ServerSocketChannel 两种不同的套接字通道实现,两种通道都支持阻塞和非阻塞两种模式 。阻塞模式使用就像传统中的支持一样,比较简单,但是性能和可靠性都不好;非阻塞模式正好与之相反 。对于低负载、低并发的应用程序,可以使用同步阻塞I/O来提升开发速率和更好的维护性;对于高负载、高并发的(网络)应用,应使用 NIO 的非阻塞模式来开发AIO (Asynchronous I/O): AIO 也就是 NIO 2 。在 Java 7 中引入了 NIO 的改进版 NIO 2,它是异步非阻塞的IO模型 。异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作 。AIO 是异步IO的缩写,虽然 NIO 在网络操作中,提供了非阻塞的方法,但是 NIO 的 IO 行为还是同步的 。对于 NIO 来说,我们的业务线程是在 IO 操作准备好时,得到通知,接着就由这个线程自行进行 IO 操作,IO操作本身是同步的 。查阅网上相关资料,我发现就目前来说 AIO 的应用还不是很广泛,Netty 之前也尝试使用过 AIO,不过又放弃了 。

    推荐阅读