JAVA小计1(第一周)

第一次接触学习java,跟预想的有些不同。在此之前就听说有c++基础学习java入门会比较容易,可真实接触后发现也没那么简单,甚至还需要多花些心思区分c++与java。这一阶段我主要是看书学习,适当辅以b站的视频。在同学的推荐及自己的选择下,我购买了《Java核心技术 卷1》这本书,这本书的观感是内容很丰富,很适合有c++基础的人学习使用,因为里面有专门的板块区分c++和java,便于我们理解。目前学习的进度是到类的继承,下面是对这段时间的一些学习感悟。

一.JDK以及idea的安装

其实安装JDK花了挺多时间的,我都是跟着视频的步骤走,但视频操作出来的结果总跟我的不一样,前前后后换了不少视频,最后找到了最适合我的视频。在安装JDK的时候又根据评论下载了idea,idea的下载倒是很顺利,然后在视频的指引下我完成了第一个java程序:“hello world”。 

二.基础知识学习

1.Java的基本程序设计结构

总体来说,这一部分java与c++还是很相似的。比如基本数据类型,虽然名称些微不同,比如short,long,但他们的示数范围大致相同,用法也基本相同。有一点需注意的是,java会把整型默认为int,浮点型默认为double,比如需要我们在定义long时特别在数据后加个l或L,这是很容易遗忘的。另外还有常量声明final,位运算符,大数等c++没有的内容,这些相对来说容易接受。

字符串的使用倒是有很大区别,java里string是类,定义字符串首先需要定义一个string的对象,再把这个值赋进去,对字符串进行操作需要调用substring,equals等方法,而c++里string就是基本数据类型的一种,对字符串的更改就更为简便。

另一个很令我烦恼的东西是java输入很麻烦,要创建Scanner对象,并且需要调用nextInt等方法。

至于while,do-while,for循环,if-else,break,contitue,这些内容与c++都大同小异。

数组的声明和用法与c++有很大不同,java声明数组的格式如int[] a=new int[100],或者int[] smallPrimes={2,3,5,7,11,13},需要使用new,而且提供了匿名数组功能,这就很方便。另外for-each访问数组元素的方式很好用,Arrays类里的方法比如copyOf,sort等也很便捷。我还发现,虽然java中没有指针的定义,但一些功能和指针很相似,比如类对象的名和指针的名,当然,这只是我现在浅显的理解,可能有错误。

2.对象与类

java里每一个方法都要放在对应的类里,所以即使是main方法都要在类里面。学这一块的内容时我总有一种陌生又熟悉的感觉,感觉大体上跟c++是相似的,但在细节上又处处不同。我印象最深的就是每一个方法和字段前面都要声明访问类型,方法语句也必须在类里面,构造器的使用,预定义类等在c++中都有对应的功能,太多我就不列举了,总体学起来还是挺得心应手的。书里引用了员工与经理的经典例子,从各方面简单介绍了java中的类,当然学习过程中也对员工与经理的例子更加熟悉了。仔细回想,java提供了很多很方便的功能类,它们名字很长,方法又相似,其实很容易弄混,这与c++的简单不同。自我感觉java对象的使用也要麻烦,而且因为没有指针很多东西的实现也更加复杂,引用的概念在我这里比较模棱两可,好像是有一点指针的意思在的。

3.继承

其实我看这一部分的时候,c++还没有学到虚函数,所以我惯用的对比着学习的方法就失效了。当我看到多态的时候,我花了非常多的时间去理解,我明显感觉到了这一部分学习的困难,又因为java的对象名在我看来是有点指针的意思的,我总转换不过来’稍微理解后,抽象类Object的学习又进入了另一个窘境。也许是前面的知识没有学牢,equals方法很难理解,各种适应的情况,涉及的各种方法,如getclass,instanceOf,NULL引用,超类与子类关于equals的重定义,对类和字段的比较等,覆盖范围比较广,的确是花费了一番力气掌握。其他的hashCode,toString方法相对来说简单一点。

泛型数组列表在我看来是非常方便的,它解决了c++中在编译时就要确定整个数组大小的问题。比如声明和构造一个保存Employee对象的数组列表:ArrayList<Employee> staff = new ArrayList<Employee>,用这个数组就很灵活,并且用add,size,trimToSize等方法对数进行修改也很便捷。虽然单独访问某个元素较麻烦,还有强制类型转换带来的警告,但我认为它暇不遮瑜,仍然非常有价值。

三.小结

我觉得java是一门繁琐但便捷清晰明了的语言,不可否认,这是一门优秀的语言,想要掌握它必然要花费很多精力。这段时间的学习多停留在理论层次,缺少实践,在接下来的时间里要多加练习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值