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,是世 ...
随机推荐
- linux日常管理-rsync_ssh方式
现在我们有两台机器,两台机器都需要安装rsync yum -y install rsync 一台的主机名是wangshaojun IP是192.168.1.117 ,另一台的主机名是 ...
- play 1.2.4的action执行前后的加载逻辑
——杂言:最近在整理这一年的笔记,打算慢慢温故一遍,然后搬到博客里头来.这篇是2013.06.18时候整理的关于action执行前后的一些载入先后顺序逻辑.我的理解可能有偏差,如果有错误的,请读者们及 ...
- VS 关于无法打开项目文件,此安装不支持该项目类型的问题
用VS打开后有时会出现类似: 无法打开项目文件,此安装不支持该项目类型 的错误,这个错误一般都是由于用低版本VS打开高版本项目文件造成的 其中包括: 1.用VS2003 打开包括VS2005以上版本项 ...
- #410(div2)B. Mike and strings
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- Flask08 包含(include)、继承(extends)、宏???、模板中变量的来源、利用bootstrap构建自己的网页结构
1 包含 直接把另一个文件的内容,复制粘贴过来 {% include "模板路径" %} 注意:模板都是放在 templates 这个文件夹下面的,可以在里面新建文件夹来进行分离: ...
- Flask05 cookie、类视图、方法视图、自己的404页面
1 什么是cookie 就是网站存放到你浏览器中的一部分固定内容:当你下次访问我这个网站的时候,你会把之前我存放到你浏览器中的数据带回来给我 你要先登录(用户名.密码) -> ...
- c# 窗体启动后自动执行 Form_Load事件注册及调用
很多时候我们需要在程序一开始后立即触发执行一些程序.这时候需要调用Form_Load. 首先编写事件程序块,编写完后即可再里面添加需要执行的代码. 在结构体之后写就行.添加之前的代码如下: using ...
- Python pandas检查数据中是否有NaN的几种方法
Python pandas: check if any value is NaN in DataFrame # 查看每一列是否有NaN: df.isnull().any(axis=0) # 查看每一行 ...
- const指针与指向const的指针
当使用带有const的指针时其实有两种意思.一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容.听起来有点混淆一会放个例子上来就明白了. 先说指向const的指针,它 ...
- Logstash过滤插件
filter初级 Logstash安装 ### 设置YUM源 # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch # t ...