有哪些Java基础知识

发布时间:2021-10-26 15:51:32 作者:iii
来源:亿速云 阅读:153

本篇内容介绍了“有哪些Java基础知识”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

 面向对象与面向过程的区别
首先面向过程和面向对象的语言没有具体的性能高下之分,要依据每种语言的设计来做参考。个人认为面向过程和面向对象的最大区别在于:面向过程的语言是结构化的,面向对象的语言是模块化的。模块化的代码比结构化的代码更易于维护,复用与扩展。

OracleJDK与OpenJDK的区别
OpenJDK是基于Sun捐赠的HotSpot的源代码开发的,是开源的。OracleJDK是Oracle对JDK商业化版本,由Oracle发布并维护,因此OracleJDK比OpenJDK更可靠。

Java与C++的异同

JVM、JDK和JRE的区别

Java语言的特点

面向对象的特征
面向对象的三大特征:封装、继承、多态。

重载和重写的区别
个人认为重载和重写完全没有可比性,不知道为啥老有人喜欢拿图吗做笔记。

接口和抽象类的区别

Object类方法有哪些?

静态属性方法和成员属性方法区别
静态属性和方法属于类Class,而成员属性和方法属于实例化的对象。

静态方法只能使用静态方法和静态属性,不能使用成员属性和方法。因为静态属性和方法在对象还没有实例化的时候就存在类。

简单理解就是不允许一个已经在的事物使用一个不存在的事物。

子类属性与父类属性初始好顺序

自动拆箱和装箱
自动拆箱和装箱实际上是Java编译器的一个语法糖。

自动装箱是指:将基本数据类型转为对应的包装类对象的过程。

自动拆箱是指:将包装类型转为对应的基本数据类型。

自动装箱实际上是调用类包装类对象的valueof方法,如:Integer.valueof(1)

自动拆箱实际上是调用类包装类的xxxValue方法,如:Integer.intValue()

在自动装箱的时候,如果包装类允许缓存并且值在缓存的范围内,那么装箱生产的对象会被缓存到常量池中。

Integer、Byte、Short、Long、Character包装类型具有缓存池,而其他三种:Float、Double、Boolean不具有缓存池。

包装类的缓存池缓存范围基本都为:-128—— 127之间,除了Character的缓存范围为0——127。

String为什么不可变?
先说下我的看法:String是Java中最常使用的类没有之一,如果String时可变的,那么会发生非常多数不清的问题。如IP地址、人名、邮箱非常多的敏感数据。如果String时可变的,就会发生安全问题,且字符串常量池也就无从谈起了。

String时不可变的,那么它的本质上也是线程安全的。不可变类的缺点就是每个不同值需要创建一个对象。

String是用final修饰的,保证类String类不能被扩展。String内部的字段时用final修饰的,并且没有对外提供修改字段的方法。这也是为什么String不可变的原理。

final关键字的作用

StringBuilder和StringBuffer区别
StringBuilder 和 StringBuffer 都是可变的字符串,但是StringBuilder线程不安全的。

StringBuffer是线程安全的。因此单线程情况下考虑使用StringBuilder,多线程考虑使用StringBuffer。

他们之间的关系就好比HashMap和HashTable的关系。

equals知识点

在普通环境下(不涉及hash表),equals方法和hashcode方法一毛钱关系没有的,此时重写equals但不重写hashcode是没有关系的。但当使用map、set这些散列表时,它们会根据对象的hashcode来计算对象在散列表中的位置的。试想下,如果2个对象的值相等,但是由于它们是2个对象,hashcode却不相等。 那么即使放入map,set(map)仍会存在重复数据。

深拷贝和浅拷贝

IO流分类

使用字节流还是字符流?
考虑通用性,应该使用字节流。如果只是文本文件的操作,可以使用字符流。

BigDecimal
BigDecimal时Java中表示大浮点数的类型。

在Java中,如果遇到浮点数的判断,可以使用BigDecimal来做计算,因为如果使用普通数据类型很可能会发生精度丢失的情况,这个时候的结果可能会出乎意料之外。

Java异常体系结构
在Java中,异常分为 Exception和Error,这2个类都继承自Throwable。

Comparable和Comparator

为什么要慎用 Arrays.asList()?
因为Arrays.asList这个方法返回的根本就不是我们期盼的ArrayList, 而是Arrays类内部实现的ArrayList,这个内部类只支持访问和set操作, 并不支持remove,add,clear等修改操作。

Java中引用的类型
Java中引用类型总共有四种: 强引用,软引用,弱引用,虚引用。

“有哪些Java基础知识”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. Java基础知识
  2. java多线程的基础知识有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:python编程语言在操作文件编码格式的应用过程

下一篇:Python 动态编译器PyPy对比其他动态编译器的优点是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》