java基础教程1:简介

0、综述

java的源文件目录为.java,编译后的文件为.class。.class文件可以在JVM上运行,本质上来说,java是一个既需要编译器,有需要解释器(JVM)的语言。但是,java也有即时编译的功能,也就是产生和平台相关的机器语言。相比而言,后者的兼容性差,而效率更高。

另外要说明的是,java和JavaScript一点关系都没有,后者只是觉得加上java更时髦,所以就自动冠名了。

1、一些关键字

final关键字
final定义类似常量。但是和const不完全一致,本质含义是不能被再次赋值或覆盖
super&&this关键字
this(),表示当前类的构造函数。
如果不是一个函数,则表示当前对象。注意,本类中方法引用的类成员变量都是默认的。
super(),表示父类的构造函数。
super.xxxx(),表示调用父类的相关方法,注意,这是一种特殊用法,因为实际上super也一定指向当前对象,这必然和我们所期望的完全不同。

2、java 指针?引用?

java和c#一样,完全没有指针的概念。但是和任何变成软件一样,java中的内存分配,也是存在在堆栈中分配,和在堆中分配两种可能性。实际上,java中所有的基本数据类型,都是存在堆栈中,而对象存在于堆中,对象的引用,存在于堆栈中。这就解释了为什么说java中不存在地址传递,只存在值传递。换句话说,只有基本数据类型传递的是拷贝,一切对象传递,传递的是的是本身。
本身这个问题还有深拷贝和浅拷贝的含义。在C++里,如果你直接用等号复制一个指针,就是浅拷贝,如果你重载了等号操作符,规定重新申请并复制内存内容,便属于深拷贝。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值