- jdk与jre的区别
jdk:java开发工具,为开发人员使用
jre:java运行环境
jvm:java运行平台
- ==和equals的区别
通过源码可以看到,object时,是相同的;引用类型时,equals比较的是内容
看下源码:
object的:
String的 - 两个对象的hashcode相同,则equals()也一定为true,对吗?. .
可见,equals为true的,hashcode一定相同,hashcode相同,则不一定equals - final在java中的作用
final用在类上,表明该类不能被继承
final用在方法上,表明该方法不能被重写
final用在变量上,表明该变量的值不能被更改,并需要在初始化时进行赋值
被final修饰的变量,在编译阶段就被放入到了常量池中,如下截图:aa由于未在常量池中,所以无法再编译阶段确定该值,bb由于在编译阶段就放入常量池,所以aa+2020的结果在编译阶段就在常量池当中,结果如下
- String属于基础数据类型吗?
不属于,基础数据类型为char、byte、short、int、long、float、double、boolean,注意基本类型与引用类型转换时带来的装箱和拆箱问题 - 如何将字符串反转
方式很多,用最简单常用的方式StringBuffer或者StringBuilder的reverse(),例子见下图:
- String类常用方法有哪些
好多,随便说几个,equals,compareTo,startWith,endWith,toUpper - 抽象类必须有抽象方法吗
不是,只要类声明 的关键字为abstract即为抽象类;有抽象方法的类必须声明为 抽象类 - 普通类和抽象类有哪些区别
普通类不能有抽象方法;
抽象类不能被实例化;
抽象类的子类如果不是抽象类,需要实现抽象类中的所有抽象方法;
抽象类中的抽象方法只能是protected或者public;
抽象方法不能被final修饰
- 抽象类能使用final修饰吗
不能;抽象类设计的初衷就是为了可以被继承实现,而final修饰的类,不能被继承
- 接口和抽象类有什么区别
抽象类只能单继承,接口可以多个实现
jdk1.8之前接口不能有方法,1.8之后可以有默认方法,用default修饰
接口中的变量默认为static的,抽象类中的变量为普通变量,默认为public static final的;接口中定义的方法,默认为public abstract的
- java中IO流分为几种
(1)按照数据的流向:
输入流、输出流
(2)按照流数据的格式:
字符流、字节流
(3)按照流数据的包装过程:
节点流(低级流)、处理流(高级流)
引用网上的图片说明
- BIO、NIO、AIO有什么区别
BIO:同步阻塞IO,数据的读取写入必须阻塞在一个线程内等待其完成
NIO:同步非阻塞IO,多路复用的思想,提供了 Channel , Selector,Buffer等抽象,支持面向缓冲的,基于通道的I/O操作方法。 NIO提供了与传统BIO模型中的 Socket 和 ServerSocket 相对应的 SocketChannel 和 ServerSocketChannel 两种不同的套接字通道实现,两种通道都支持阻塞和非阻塞两种模式,对于高负载、高并发的(网络)应用,应使用 NIO 的非阻塞模式来开发
AIO:异步非阻塞IO,步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作
一、java基础篇
最新推荐文章于 2024-11-11 00:03:55 发布
本文深入解析Java中的关键概念,包括JDK与JRE的区别、equals与==的对比、final关键字的作用、字符串反转方法、抽象类与接口的区别、IO流分类及BIO、NIO、AIO的工作原理,为Java开发者提供全面的技术指南。
摘要由CSDN通过智能技术生成