C#与JAVA学习感悟
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学习感悟的更多相关文章
- 20155226田皓宇关于优秀技能经验以及c语言学习感悟和对JAVA的展望
读老师文章后关于一项优秀技能的经验有感 1.首先我自我剖析认为,我是没有哪一个方面能做到强于身边90%的人的,我只能说有些方面略强于身边的人.比如唱歌.办公软件的应用(word.excel)等.但我不 ...
- (转)如何学习Java技术?谈Java学习之路
51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...
- 20145304 第五周Java学习报告
20145304<Java程序设计>第5周学习总结 教材学习内容总结 1.使用try.catch: 如果使用了try.catch,编译时会尝试执行try区块中的程序代码,如果有错误,执行流 ...
- 20145330第五周《Java学习笔记》
20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...
- Java 学习路线以及各阶段学习书籍,博文,视频的分享
感谢: 感谢每一个打开这篇文章的人,听我在这里瞎扯!至于我为什么会有闲情写这篇文章呢?因为我每天想的是为什么要给我这样的需求,背后的人性是什么,我能再做些什么能让他更好.久而久之,我也稍微有了些自己的 ...
- 第二周java学习总结
学号 20175206 <Java程序设计>第二周学习总结 教材学习内容总结 第二章是基本数据类型与数组,第三章是运算符.表达式和语句的内容.如果说第一章是让我们了解JAVA,那么第二章和 ...
- 获奖感想和Java学习总结
获奖感想和Java学习总结 一.获奖感想 能成为小黄衫第二批的成员之一,我感到非常荣幸.我在对老师给予我的鼓励与肯定感到欣喜之余,更多的是感受到了一种鞭策与期望.小黄衫不仅仅是对我的一种奖励,更是激励 ...
- java学习de路线建议
我想谈一谈我的一些关于网页学习的小感悟吧.之所以是写这个的原因完全是想告诉现在还处在网页学习的初始阶段的同学一些我学习走过的弯路,但我说的也仅是我个人的理解,毕竟我只能是JavaWeb开发的新手,所以 ...
- 20165203《Java程序设计》第七周Java学习总结
20165203<Java程序设计>第七周Java学习总结 教材学习内容总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称MySQL,是世 ...
随机推荐
- WPF dataGrid下的ComboBox的绑定
WPF dataGrid下的ComboBox的绑定 Wpf中dataGrid中的某列是comboBox解决这个问题费了不少时间,不废话了直接上代码 xaml 代码 <DataGridTempla ...
- HTML DOM clearTimeout() 方法
转自:http://www.w3school.com.cn/jsref/met_win_cleartimeout.asp 定义和用法 clearTimeout() 方法可取消由 setTimeout( ...
- centos6.5安装zookeeper教程(三)
阅读前建议先阅读: http://www.cnblogs.com/duenboa/articles/6665159.html 1. 下载安装文件zookeeper-3.4.6.tar.gz 镜像地 ...
- 进程中t.start(), t.daemon() t.jion()的使用
#!/usr/bin/env python import multiprocessing import time def f1(a1): time.sleep(2) print(a1) if __na ...
- Unity编辑器的扩展:IMGUI
IMGUI 介绍 所有关于 Editor 的相关 UI,包括 Inspector.Hierarchy.Window.Game 视图上动态创建的那些半透明 UI.还有 Scene 视图上可添加的辅助显示 ...
- ubuntu上runsv/runit小记
一个偶然的原因,在研究git使用时,发现有个自动启动的git-daemon进程: wellbye@AY130622174524343529Z:~$ ps aux|grep git root ? Ss ...
- 【转】WebElement.getText()为空解决方法
WebElement.getText()为空解决方法 当使用getText()获取一个普通的链接文本时: <a href="http://www.baidu.com"> ...
- datatables的使用
在开发web项目中,界面就是一个以丰富友好的样式来展现数据的窗口,同样的数据不用的展现形式给人不同的体验,数据列表是数据是一种常见展现形式,对于数据列表的一个最基本的要求就是能够实现分页以及检索功能. ...
- poj2689(素数区间筛法模板)
题目链接: http://poj.org/problem?id=2689 题意: 给出一个区间 [l, r] 求其中相邻的距离最近和最远的素数对 . 其中 1 <= l < r < ...
- 51nod1305(简单逻辑)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1305 题意:中文题诶- 思路:1e5的数据直接暴力肯定是不行 ...