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,是世 ...
随机推荐
- 115个Java面试题和答案
面向对象编程(OOP) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码 ...
- RN控件之DrawerLayoutAndroid导航栏
/** * Sample React Native App * https://github.com/facebook/react-native */ 'use strict'; import Rea ...
- Ubuntu 使用 heirloom-mail 调用外部邮箱 SMTP 服务器发送邮件
使用本地服务发邮件,经常被过滤掉而且占用资源,发送成功率不高.所以使用外部SMTP服务器发送邮件成为了需求. SMTP认证的目的是为了使用户避免受到垃圾邮件的侵扰,简单地说就是要求必须在提供了账户名和 ...
- HTML5与CSS3实例教程(第2版) 附源码 中文pdf扫描版
HTML5和CSS3技术是目前整个网页的基础.<HTML5与CSS3实例教程(第2版)>共分3部分,集中讨论了HTML5和CSS3规范及其技术的使用方法.这一版全面讲解了最新的HTML5和 ...
- 使用 typescript ,提升 vue 项目的开发体验(2)
此文已由作者张汉锐授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. vuex-class 提供了和 vuex 相关的全部装饰器,从而解决了上面 Vue.extend + vue ...
- pyMongo 一些基本操作
1. find() 函数, 可以在函数体内直接指定 filter, sort, projection(限制field), 语法如下: datas = col.find( filter = {" ...
- iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比
header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdo ...
- NodeJS什么都能做,为什么还要JAVA?
这张图看起来简单而且很好理解,但没尝试过,会有很多疑问. SPA模式中,后端已供了所需的数据接口,view前端已经可以控制,为什么要多加NodeJS这一层? 多加一层,性能怎么样? 多加一层,前端的工 ...
- Java中的生产者和消费者实例(多线程 等待唤醒机制)
1.什么是等待唤醒 我们实现的效果 创建生产者和消费者 对服装进行生产 和售卖 实现生产一个就消费一个 来观察线程的各种状态 下面是用到的方法: wait()方法:让一个线程进行等待 另外一个线程 ...
- 阿里云服务器 linux 怎么安装php(PHPSTUDY)开发环境
1.首先登录行云管家(https://yun.cloudbility.com/login.html) wget -c http://lamp.phpstudy.NET/phpstudy.bin //下 ...