zoukankan      html  css  js  c++  java
  • NET转Java

    .NET转Java

     

      懂C#的话,转Java也不是那么难,毕竟,语言语法还是相似的.尝试了下Java,说说自己的体会吧.

      一,Java和C#都是完全面向对象的语言。在面向对象编程的三大原则方面,这两种语言接近得不能再接近。不过也有一些差别,不过不多,稍微习惯下就好了,

    比如:

    集合:两种语言都有集合ArrayList,还有通过键访问值的Java中是HashMap而c#中是HashTable。c#比Java多泛型集合List<T>与Dictionary<K,V>更容易了,无需拆箱装箱了,更安全了。

    继承:Java中用关键字extends,c#只用“:”就行了。调用父类的构造方法Java用super关键字,而c#用base关键字。

    属性:java中定义和访问均要用get和set方法,可以不成对出现。c#中是真正的属性,定义时get和set必须同时出现,房问时用.号即可。不用get,set.

    事件。Java中没有(Java通过实现自定义侦听器类执行事件)。C#定义了类似于函数指针的委托来实现事件。

    等等...

      二,Java Web和ASP.NET也是有相似的,java web的核心是Servlet,Jsp其实本质都是Servlet,而Servlet的流程可以比较清晰看到整个前后台是怎么工作的,类似.NET的ashx一般处理程序,Java是MVC的主要倡导者,随着web技术发展,Servlet主要被当作Control使用,Jsp作为View使用,这在许多MCV框架有所体现.得益于开源社区的活跃,流行的Java MVC框架都比较成熟了.而ASP.NET MVC(虽然我没有用过,大概了解过)感觉使用起来应该不是很舒服把.貌似ASP.NET MVC也还没有推广开来.很多.NET程序员做Web还是停留在服务端控件.不是Webform不好,而是微软会把我们宠坏.感觉Webform不够优雅,耦合太高,个人接触过Java Web后觉得MVC在大多场景下更胜一筹.

      目前接触过的MVC框架是Struts2,常用在展示层,前台页面展示与控制页面跳转。建立一个工程,都会有一个web.xml文件,是整个工程的主配置文件。其它框架的集成首先是在这个配置文件里面进行的。Struts也有一个主配置文件struts.xml,工程中所有配置的Action都是在这个配置文件中配置的。Action是Struts的核心,其实就是控制页面跳转用的,每个页面和后台的数据交互或者跳转到另外的页面都通过action进行。 具体使用看看相关的文档.

      三,Java的框架五花八门,有名的全功能栈Spring框架,MVC框架Struts2,SpringMVC(Spring的子项),数据持久层框架 MyBatis,Hibernate,模板引擎FreeMarker,Velocity,框架有框架的好处也有坏处,使用框架无非就是提高生产力,降低测试维护成本,保证系统性能.但是不适合的使用框架只会加重系统复杂度,降低系统性能,增加维护难度.什么时候使用框架什么时候不用,要详细斟酌在做取舍.目前只接触过Struts2,因为做的一些小项目直接Servlet+Jsp+Jdbc就好了,打好基础还是比较重要的,以后在项目慢慢接触使用吧.


      总的来说吧,微软的生态环境的不给力留给.NET的面越来越窄,Java生态圈的局面是前途一片光明,选择开源的Java是有原因的,丰富的资料,各种解决方案可选择.曾今遇到一个要实现浏览器post svg到后台转png图片的功能,好不容易在git上找到一个开源的库,一用bug很多,而java Apache下的batik却是相当完善.最后是通过后台cmd调用batik来实现,怎一个悲剧.曾今也在windows phone上抱有兴趣,做了几个demo app发现封闭的wp的api还是太少,招聘wp开发的少之又少.当然C#依然是最优美的语言,Visual Studio依然是最完美的IDE. .NET程序员们该多接触下其他语言开发平台,至少当作开拓下视野吧.

     
    分类: Java
  • 相关阅读:
    HDU 5642 King's Order 动态规划
    HDU 5640 King's Cake GCD
    HDU 5641 King's Phone 模拟
    HDU 5299 Circles Game 博弈论 暴力
    HDU 5294 Tricks Device 网络流 最短路
    HDU 5289 Assignment rmq
    HDU 5288 OO’s Sequence 水题
    星际争霸 虚空之遗 人族5BB 操作流程
    Codeforces Beta Round #3 D. Least Cost Bracket Sequence 优先队列
    Codeforces Beta Round #3 C. Tic-tac-toe 模拟题
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4842865.html
Copyright © 2011-2022 走看看