C#和.NET向JAVA好转吗?
懂C#的话,转Java也不是那么难,毕竟,语言语法还是相似的。尝试了下Java,说说自己的体会吧。
1Java和C#都是完全面向对象的语言
在面向对象编程的三大原则方面,这两种语言接近得不能再接近。不过也有一些差别,不过不多,稍微习惯下就好了,
比如:
集合:两种语言都有集合ArrayList,还有通过键访问值的Java中是HashMap而c#中是HashTable。c#比Java多泛型集合List与Dictionary更容易了,无需拆箱装箱了,更安全了。
继承:Java中用关键字extends,c#只用“:”就行了。调用父类的构造方法Java用super关键字,而c#用base关键字。
属性:java中定义和访问均要用get和set方法,可以不成对出现。c#中是真正的属性,定义时get和set必须同时出现,房问时用。号即可。不用get,set。
事件。Java中没有(Java通过实现自定义侦听器类执行事件)。C#定义了类似于函数指针的委托来实现事件。等等。。。
2JavaWeb和ASP.NET也是有相似的
javaweb的核心是Servlet,Jsp其实本质都是Servlet,而Servlet的流程可以比较清晰看到整个前后台是怎么工作的,类似.NET的ashx一般处理程序,Java是MVC的主要倡导者,
随着web技术发展,Servlet主要被当作Control使用,Jsp作为View使用,这在许多MCV框架有所体现。得益于开源社区的活跃,流行的JavaMVC框架都比较成熟了。而ASP.NETMVC(虽然我没有用过,大概了解过)感觉使用起来应该不是很舒服把。貌似ASP.NETMVC也还没有推广开来。
很多.NET程序员做Web还是停留在服务端控件。不是Webform不好,而是微软会把我们宠坏。感觉Webform不够优雅,耦合太高,个人接触过JavaWeb后觉得MVC在大多场景下更胜一筹。
目前接触过的MVC框架是Struts2,常用在展示层,前台页面展示与控制页面跳转。建立一个工程,都会有一个web.xml文件,是整个工程的主配置文件。其它框架的集成首先是在这个配置文件里面进行的。
Struts也有一个主配置文件struts.xml,工程中所有配置的Action都是在这个配置文件中配置的。Action是Struts的核心,其实就是控制页面跳转用的,每个页面和后台的数据交互或者跳转到另外的页面都通过action进行。
3Java的框架五花八门
Java的框架五花八门,有名的全功能栈Spring框架,MVC框架Struts2,SpringMVC(Spring的子项),数据持久层框架MyBatis,Hibernate,模板引擎FreeMarker,Velocity。
框架有框架的好处也有坏处,使用框架无非就是提高生产力,降低测试维护成本,保证系统性能。但是不适合的使用框架只会加重系统复杂度,降低系统性能,增加维护难度。什么时候使用框架什么时候不用,要详细斟酌在做取舍。
目前只接触过Struts2,因为做的一些小项目直接Servlet+Jsp+Jdbc就好了,打好基础还是比较重要的,以后在项目慢慢接触使用吧。
总的来说吧,微软的生态环境的不给力,留给.NET的面越来越窄,Java生态圈的局面前途一片光明,选择开源的Java是有原因的,丰富的资料,各种解决方案都可选择。