C#与JAVA学习感悟

学完C#与JAVA,感觉收获良多。C#与JAVA这两门语言相似度很高(了解它们早期历史的人可能知道为什么),也许很多人在学习JAVA(或C#)时会同时学习C#(或JAVA),因为它们太相似了。但在我看来先学习一种,精通后学另一种,这样的效率会高一些,同样是因为它们太相似了,许多概念都是相通的,但这些概念并不好理解和消化,如果同时学习两种,只会让你的头脑更加的混乱。当然,如果你认为自己够牛逼,也可以试试同时学习它们。下面是我的一些总结:

1. C#与JAVA这两门语言是面向对象程序设计语言。它们将一切问题都看作一个个“对象”,并用面向对象的思想来解决问题。

2. 学习这两门语言(或其中一门)时,应当避免过分纠结一些代码的具体实现(举个简单的例子:但你看到 Button 时,请就将它看作一个“按钮”,你知道它有哪些属性和方法以及如何通过这些属性和方法去操作它就可以了,不要去想这些属性和方法是如何实现的)

3. 当你遇到一些新的概念时,不要在这上面过分纠结。你所需要做的是知道有这个概念以及它的含义而不去管它的代码实现(这就是先从概念上理解并掌握C#与JAVA),之所以这样做是因为在新接触如“事件”这样的概念时,很多人会热衷于“事件”的代码实现,这样的人多认为只有通过代码实现了“事件”才表示他“理解”了“事件”的含义。但其实能通过代码实现“事件”就表示已经“掌握”了“事件”了,要知道 理解 和 掌握 还是有很大区别的。想要一开始就掌握新的概念是很困难的,先仅仅是理解会大大的提高效率。

4. 在理解的基础上深度挖掘,即能用代码实现所有你理解了的概念,到了这个层次,你就算是真正的学会了C#与JAVA了。

以上几点进一步总结其实就是“概念级”与“代码级”的学习C#与JAVA。在初学时不要过多的在“代码级别”花时间。当然学习的时候要分清主次,比如:

1. 不要在基础上花太多功夫。基础就是指的 基本数据类型 , 基本语句(包括 顺序,选择,循环语句),输入输出,类的申明,继承与多态性等C和C++中就已经掌握了的东西。在上面花很多时间不是明智的选择。

2. 在新概念上多花一点功夫。

3. 引用与引用类型。也许你会庆幸没有了指针,不用再为了指针而死一大堆脑细胞了。但如果你没有完全掌握引用,那么它会让你死更多的脑细胞。但其实引用的含义与C++中的引用没有太多的变化,主要的是引用类型,会让人难以理解。因为在C#或JAVA中,数据类型可分为两类:值类型与引用类型。值类型指的是int,double,float,decimal等在申明时就分配内存的类型,而引用类型就是class 等通过 new 关键字动态分配内存的类型,与值类型不同,在申明一个引用类型的变量时并不会为其分配内存。(值类型也可以使用 new 进行动态分配内存,在C#中struct为值类型,class 为引用类型,而为什么要分值类型与引用类型是为因为取消了指针,而要实现原本指针所具有的功能)。值类型与引用类型的关系图如下:

不难看出,引用类型与C++中的指针类似。所以看似取消了指针,实则是用另一种类型代替了罢了。

无论是学习C#还是JAVA,最简单的办法就是找一个项目的完整的代码,抄一遍。当然,这个项目起码带有几千行代码(像俄罗斯方块,扫雷等这样的小游戏在网上找得到完整的源代码,很适合学习用),抄的过程不能使用复制粘贴,并将所有出现的问题一一解决了的话,对你的学习会有无比巨大的好处。但如果要深入学习的话,在抄袭的过程中应当尝试用自己的代码替换原有的代码,这样可以让你思考更多,学的更多。

C#与JAVA学习感悟的更多相关文章

  1. 20155226田皓宇关于优秀技能经验以及c语言学习感悟和对JAVA的展望

    读老师文章后关于一项优秀技能的经验有感 1.首先我自我剖析认为,我是没有哪一个方面能做到强于身边90%的人的,我只能说有些方面略强于身边的人.比如唱歌.办公软件的应用(word.excel)等.但我不 ...

  2. (转)如何学习Java技术?谈Java学习之路

    51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...

  3. 20145304 第五周Java学习报告

    20145304<Java程序设计>第5周学习总结 教材学习内容总结 1.使用try.catch: 如果使用了try.catch,编译时会尝试执行try区块中的程序代码,如果有错误,执行流 ...

  4. 20145330第五周《Java学习笔记》

    20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...

  5. Java 学习路线以及各阶段学习书籍,博文,视频的分享

    感谢: 感谢每一个打开这篇文章的人,听我在这里瞎扯!至于我为什么会有闲情写这篇文章呢?因为我每天想的是为什么要给我这样的需求,背后的人性是什么,我能再做些什么能让他更好.久而久之,我也稍微有了些自己的 ...

  6. 第二周java学习总结

    学号 20175206 <Java程序设计>第二周学习总结 教材学习内容总结 第二章是基本数据类型与数组,第三章是运算符.表达式和语句的内容.如果说第一章是让我们了解JAVA,那么第二章和 ...

  7. 获奖感想和Java学习总结

    获奖感想和Java学习总结 一.获奖感想 能成为小黄衫第二批的成员之一,我感到非常荣幸.我在对老师给予我的鼓励与肯定感到欣喜之余,更多的是感受到了一种鞭策与期望.小黄衫不仅仅是对我的一种奖励,更是激励 ...

  8. java学习de路线建议

    我想谈一谈我的一些关于网页学习的小感悟吧.之所以是写这个的原因完全是想告诉现在还处在网页学习的初始阶段的同学一些我学习走过的弯路,但我说的也仅是我个人的理解,毕竟我只能是JavaWeb开发的新手,所以 ...

  9. 20165203《Java程序设计》第七周Java学习总结

    20165203<Java程序设计>第七周Java学习总结 教材学习内容总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称MySQL,是世 ...

随机推荐

  1. Project Server2016升级安装问题项目中心无法显示

    sharepoint 2016升级后,project server 相关中心页面出现空白页面,这是是sharepoint2016一个bug,解决方案用PWA.resx内容替换PWA.en-us.res ...

  2. iOS使用VideoToolbox硬编码录制H264视频

    http://blog.csdn.net/shawnkong/article/details/52045894

  3. [hdu4372]counting buildings

    解题关键: n的环排列的个数与n-1个元素的排列的个数相等. 首先可以肯定,无论从最左边还是从最右边看,最高的那个楼一定是可以看到的,从这里入手. 假设最高的楼的位置固定,最高楼的编号为n,那么我们为 ...

  4. 单片机CY与OV的区别

    CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位则CY位置1,否则为0 OV: 表示运算过程中是否发生了溢出,若运算结果超过了8位二进制数所能表示数 ...

  5. Flask01 初识flask、创建flask应用、flask启动配置

    1 什么是flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 百度百科:点击前往 中文文档: ...

  6. 获取显示屏的个数和分辨率 --- 通过使用OpenGL的GLFW库

    获取显示屏的个数和分辨率 - 通过使用OpenGL的GLFW库 程序 #include <iostream> // GLFW #include <GLFW/glfw3.h> i ...

  7. 12、IGV-Integrative Genomics Viewer

    1.IGV的网址:http://software.broadinstitute.org/software/igv/(java环境) 常见的几种输入格式bam/sam(比对文件)  TDF(bam的精简 ...

  8. 实用掌中宝--HTML&CSS常用标签速查手册 PDF扫描版

    实用掌中宝--HTML&CSS常用标签速查手册 内容推荐: 本书第一篇以语法和实例相结合的形式,详细讲解了HTML语言中各个元素及其属性的作用.语法和显示效果:第二篇从CSS基本概念开始,分别 ...

  9. 《OD大数据实战》Mahout入门实例

    一.环境搭建 1. 下载 mahout-0.9-cdh5.3.6.tar.gz 2. 解压 3. mahout org.apache.mahout.clustering.syntheticcontro ...

  10. 清北刷题冲刺 10-29 p.m

    洗澡 /* 这个题不能单纯判断左括号和右括号的多少,而应该从左到右扫一遍,看应该如何配对 */ #include<iostream> #include<cstdio> #inc ...