ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JAVA基础学习

2021-07-25 13:05:18  阅读:246  来源: 互联网

标签:相等 JAVA 对象 数据类型 基础 equals hashCode 学习 java


一.java基础

1.为什么java可以一次编码到处运行

答:.java文件进过编译器编译生成.class文件,JVM在不同平台会将.class文件翻译成相应的机器码。从而实现一次编码到处运行

2.一个java文件可以含有多个类吗

答:可以,但是只能含有一个public类,同时这个类名必须与java文件名一致

3.说一说你对Java访问权限的了解

四种访问权限:private,defalut,protected,public
修饰类时:
public:任意包下的任意类访问
defalut:本包下的类访问

修饰变量和方法时:
public :任意包任意类
protected:包内和子类
defalut:包内
private:本类

4.介绍一下Java的数据类型

java数据类有两类:基础数据类型和引用数据类型
1.基础数据类型
整数型:byte/8,short/16,int/32,long/64
浮点型:float/32,double/64
字符型:char/16
布尔型:boolean/~

int类型的范围:-2^31~ 2^31-1

2.引用数据类型
引用类型就是对一个对象的引用,根据引用对象类型的不同,可以将引用类型分为3类,即数组、类、接口类型。引用类型本质上就是通过指针,指向堆中对象所持有的内存空间,只是Java语言不再沿用指针这个说法而已。

5.面向对象的三大特征

继承,封装,多态
说一下你对多态的理解:
BaseClass obj = new SubClass()
obj编译时是BaseClass,而在运行时是subClass,当运行时调用obj的方法时,表现的可能是不同子类的特征。这就出现了,相同变量调用同一个方法时,呈现出不同的表现,这就是多态

6.介绍一下Object类中的方法

Class<?> getClass():返回该对象的运行时类。
boolean equals(Object obj):判断指定对象与该对象是否相等。
int hashCode():返回该对象的hashCode值。
String toString():返回该对象的字符串表示

另外,Object类还提供了wait()、notify()、notifyAll()这几个方法,通过这几个方法可以控制线程的暂停和运行。

Object类还提供了一个finalize()方法,当系统中没有引用变量引用到该对象时,垃圾回收器调用此方法来清理该对象的资源。并且,针对某一个对象,垃圾回收器最多只会调用它的finalize()方法一次。

7.hashCode()和equals()的关系

在使用集合时例如hashSet,判断一个元素是否相等,首先使用hashCode计算hash值,如果相等则会使用equals判断是否相等。所以在重写hashCode和equals方法时一定要保证以下原则
1.equals相等时,hashCode一定相等
2.hashCode不相等时,equals一定不相等

8. ==和equals()有什么区别?

答:基础数据类型==比较的是值是否相等,引用数据类型 ==比较的是地址是否相等。
equals如果没有重写,则和 == 的含义相同。

9.StringBuffer和StringBuilder有什么区别?

StringBuffer是线程安全的
StringBuilder是线程不安全的
StringBuilder的性能好于StringBuffer

10.使用字符串时,new和""推荐使用哪种方式?

new String(“hello”)会在常量池和堆中分别创建对象,总共产生两个对象。
"hello"则只会在常量池中创建这个对象,总共产生一个对象。
推荐使用"hello"方式

11.抽象类和接口的设计区别

接口设计的目的:自上而下的设计,对类行为的一种约束,只是约束有无,而不约束内容
抽象类设计的目的:自下而上的设计,代码复用

12.java异常体系

java异常体系

标签:相等,JAVA,对象,数据类型,基础,equals,hashCode,学习,java
来源: https://blog.csdn.net/a282608054/article/details/119077609

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有