Java基础总结(补充前面文章没有提到的)

1.什么是面向对象、面向过程?

面向过程:自顶而下的编程模式,只需要关注每一步怎么实现即可。
面向对象:创建一次,重复使用。(不重复造轮子)

2.Java平台无关性

JVM虚拟机类似于翻译家(让你在各个国家都能交流),Java程序实现跨平台。
JRE(运行时环境),JDK(开发时环境)。
JVM<JRE<JDK。

一次编译,到处运行(各个平台)
平台无关性的实现:Java语言规范、Class文件、Java虚拟机(JVM)。
编译原理基础:xxx.java >>>(通过javac) xxx.class 【前端编译】 >>> (通过JVM) >>> 010110111011101(机器语言)

3.关于String

1)String引用类型中 "=="和 “equals” 的区别:

除了String和封装器,equals()和“=="没什么区别。因为String和封装器重写了equals()。

“==”:常用于比较数值是否相等,在String中比较的是内存地址数值是否相等。
“equals”:在String中表示的是字符串内容的比较

2)请解释String类的两种对象实例化的区别:

直接赋值(String str = “Hello World!”):只会开辟一块堆内存空间,并且会自动保存在对象池中以供下次使用。
构造方法(String str =new String(“XXX”)) :它会开辟两块堆内存空间,其中一块空间变为垃圾,并且不会自动入池,可以使用intern()方法手工入池。

3)String的不可变性:

在进行String类对象内容修改时,实际上原始的字符串都没有发生变化(变为垃圾空间),而改变的只是String类对象的引用关系。

4)字符串常量池:

字符串常量池:只有直接写上的双引号字符串,才在字符串常量池中。(即直接赋值)
String类采用的设计模式为共享设计模式,
常量池的概念:家中的工具箱,需要用到螺丝刀,用完肯定放回去,以备下一次使用,这样就不用重复购买了(创建)。(这样就节省了内存空间)
在这里插入图片描述
因为构造方法使用了new,new就表示永远开辟新的堆内存空间,所以其内容不保存在池中。

4.包装、拆箱装箱、自动拆箱自动拆箱:

1)包装类型:

在Java中,一切皆对象,也就是说一切操作都要求用对象的形式进行描述。
但是基本数据类型不是对象,所以为了解决这个问题,Java专门给出了一组包装类,来包装8种基本数据类型。
byte(Byte)、short(Short)、int(Integer)、long(Long)、float(Float)、double(Double)、char(Character)和boolean(Boolean)

2)装箱与拆箱操作:

&&装箱操作:将基本数据类型变为包装类的形式;
|–每个包装类的构造方法都可以接收各自数据类型的变量
&&拆箱操作:从包装类中取出被包装的数据。
|–利用从Number类(抽象类)中继承而来的一系列xxxValue()方法完成。

Integer obj=new Integer(10);		//装箱
int temp=obj.intValue();		//拆箱

3)自动装箱与拆箱操作:

Integer obj=10;			//自动装箱
int temp=obj;			//自动拆箱

对比两组代码可以发现,装箱无需我们再去new一个Integer对象了。拆箱也无需我们再去调用xxxValue()方法了。
原理:自动装箱都是通过包装类的valueOf()方法来实现的,自动拆箱都是通过包装类对象的xxxValue()来实现的。

5.构造函数与默认构造函数

1)构造函数:

①构造函数是一种方法。
②其定义原则是:方法名称与类名称相同,没有返回值的类型声明,同时构造方法也可以进行重载。
③它只在新对象实例化的时候调用。

2)默认构造函数:

①先明确一点:默认构造函数是一种无参构造函数,而无参构造函数不一定是默认构造函数。
②默认构造函数是系统自动为我们创建的函数。
③默认构造函数一般会把成员变量的值初始化为默认值。如:int =0,String = null.

3)构造函数与普通方法的区别:

①构造方法是在实例化新对象(new)的时候只调用一次。最重要的是它在使用关键字new的时候直接调用的,是与对象创建一起执行的操作。
②普通方法是在实例化对象产生之后,通过对象.方法()调用多次。
③构造方法没有返回值,如果有,其定义的结构就与普通方法一样了,而程序的编译是依靠定义结构来解析的,所以不能有返回值。

  • 以上,慢慢更新
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值