MVVM的基本使用
activity_main.xml
User.java
MainActivity.java
MVVM中使用ListView
item.xml
CommAdapter.java
MainActivity.java
java还是c#?其实这不应该是我们真正的主题,而且入了行的也很少会java还是c#这么比,但初学的,java和c#往往就代表了两大流派,java代替了j2ee,c#代替了.net,ok,没有关系,这么作为title,不影响我们说事。
如果从语言的角度上来讲,c#毫无疑问胜出,易用、门槛低、优雅、较为简洁。
但java和c#的语言特性是相似的。
在很多类的命名上,它们都如出一辙://javaSystem.out.println("java比C#强!j-a-v-a!")//C#System.WriteLine("你没看到#是4个+吗,我比c++还强2个+,你就歇菜吧!")c#出现的时间比java晚,所以自然吸收、借鉴,同时又有它的创新,比如很早就支持lamda表达式、比如event和委托,比如var,比如linq。
但如果从面向接口来讲,java同样可以做到event和listener,只不过对象引用的传递比较直接。
而.Net的类库和jdk则各有千秋。
如果从应用的角度来看,javaee和.Net体系几乎都涵盖了主流的开发方向:桌面、Web、服务端、数据库、网络、移动端、中间件。
哪个方向,哪个更强?这个留给读者自己体会吧。
微软给.Net一个宇宙最强的IDE,也给了各个方向统一而平滑的编程体验,不得不说,微软的上手要容易的多。
而java则一开始就和开源分不开,多如牛毛的框架、引擎、包,blabla,用java开发,程序员要懂得东西更多一些。
应为你大部分情况下得自己整合。
但整合的好了就是很强大的,比如SSH。
在近几年很热的大数据和云计算领域,hadoop、spark、tez、leveldb、mongodb、mariadb、hive、hbase,还有oracle,都各自在自己不同的层面发力,大部分的这些都对java是极为友好的。
很多java程序员,都觉得搞.net开发的,就是拖拖控件而已,其实我可以告诉你,说出这种话的java程序员一般都还比较小白,如果你是搞.net的,你也可以说搞java的都是拷贝别人的开源软件的代码,然后改改而已。
当然改改没什么问题,谁都不喜欢重复造轮子,比如,google里面也并非全部是创新,经常”拿“别人的东西自己改吧改吧,淘宝就很不用说了,招了一些能改c、会点编译的程序员,经常拿各种开源框架开刀,然后表明是自己的东西。
比如双11的那个问题。
当然不是说淘宝找的人有问题,而是这个企业的文化就是销售和广告文化,后来的google也如此。
回到正题,wpf和silverlight(虽然已经EOL)中最大的创新莫过于xaml技术,如果你认为wpf只是winform的简单升级,或者说你只会在wpf中拖控件,说明你还是一个非常初级的.net程序员,不管你工资上w没有,或者你已经是项目经理了。
xaml天生就是为mvvm模型而生,这一点,搞前端的同学,应该熟悉,即使你不懂wpf,js和html怎么做mvvm,你也应该体会过它的好处。
wpf中在xaml中布局控件,并支持INotifyPropertyChanged接口,可以非常容易的实现界面和数据分离,做出一个mvvm模型出来。
说到标记性语言,我们看看jsp的jstl、struts2的tags,还有asp.netmvc3之后的razor引擎:jstl和aspx的标签类似,自由、强大,可以很容易的穿插交织到html标记中;struts的标签就是个另类,我个人反感这种既不遵循主流标准也不简洁的东西,虽然好多人会说好用,那是个习惯问题,我这么说,不是说这东西难学难掌握,只是比较一下和razor引擎中的标签语法,弱爆了。
razor,强大、简洁、优雅。
你肯定觉得我是微软.net的粉丝,其实我想告诉你的是,最强的标签语言只有两种,html和xml,穿插动态语句到服务端页面上,然后刷出html,从来都不是好的做法,因为不只你一个人写代码,后面可能会有其他人维护这个页面,本来这是需要由webdesigner来做的事情,但是有了语句,他的维护成本就很高。
规范的页面开发,程序员是不会染指一个css、style的,动态语言在aspx、view、jsp上面应该尽量少用。
否则你不如使用php和asp。
这一点,你会在工作中会深有体会的。
青春的你,怎么选择?看看现在的招聘吧,动不动就是精通j2ee,精通struts、springmvc、hibernate或者mybatis,对mysql、oracle有深入理解,精通webservice、精通多线程,能处理高并发,有的还得懂jvm,最好有hadoop等开发经验。
最后再来个211以上。
.net方面呢?精通.Net,精通mvc3-5、精通wpf、wcf、多线程,mssql等等等等。
我现在处于离职状态,所以每天收到猎聘上的一些推荐,都很郁闷,因为没有一项是我精通的。
但是不妨碍我在2012年实习中,就拿到了13K的月薪,比一些正式员工可能还要高。
而且,仔细想想,代码中经常讲到要容易维护、这个设计模式、那个AOP,这个大并发,那个高性能,我个人没有见到容易维护的代码。
学习一个新公司的一套模式,一套老产品,比学习一门新技术需要的时间长得多,你会发现,99%的情况下,你最需要的,不是什么代码,模式,而是对产品的理解、对业务的理解,很多情况下,除非太菜太小白,大家的代码都差不多,谁有时间重构代码?程序员又为何加班?这是行情,一个项目接一个项目,公司需要挣钱的,这是大部分公司的现状。
一些疑问访问数据库,随便找个高效的connector或者driver就行了,一般提供数据的厂家,谁不提供connector?ORM是很必要,但是追求性能和反框架泛滥的公司不在乎ORM带来的那点便利性,用一个jdbc+sql照样写稳定高效的数据访问。
做web前端,真的需要自己写一个框架出来?真正需要这种开发的项目有几个呢?jQuery和d3,原生的javascript就够了,你写的也许不叫框架,最多就是个wrapper。
数据库的唯一性索引、聚合索引、辅助索引都没搞清楚,就开始搞hadoop、spark、hbase、mongodb,用人单位也一再这么要求的,你的项目中真的有那么大的数据量?在传统的rdbms下解决不了?你开始知道轮子的概念了,并且知道不要重复造轮子。
可是你快不是程序员了,而是框架员了。
所以,回到java还是c#,这个问题,要比我遇到的技术分裂要简单的多。
我的意见是,忘记java或者c#的对立,如果要做一个开心、有自我追求、同时满足就业的程序员,你需要重视以下方面: 1.函数调用栈,这个很多高级程序员只知其然不知其所以然。
你可以不懂的汇编、函数入口、返回地址、寄存器,但你需要调试,你得深刻理解函数调用栈,无论是在dev模式调试struts开发的jsp页面,还是debug模式调试aspx页面,你得看懂调用栈的信息;2.基本的数据结构和算法,数据库中索引的组织方式,是B+树还是Hash,还是堆,你的公司有Web、桌面、移动用户,有社区,有产品,你可能要做个推荐什么的,或者研究个社交图谱什么的,这门技术可以帮助你。
3.一门动态语言。
lua、python、javascript,都可以,你需要随时和系统进行交互,或者实现一个原型,或者用程序的方式来画点界面、数据图什么,它们够轻量、够快捷 4.一门重量级语言。
比如java或者c#。
你靠它们吃饭。
5.理解跨平台的含义。
掌握一些基本的跨平台技术,比如xml、c、html、json。
6.重视网络编程的练习和理解,在你使用URLConnection或者MySqlConnection或者WebRequest的时候,你是否理解它们的生命周期和底层实现,用什么语言无所谓,你要记住tcp/ip协议和http的基本特性。
这样不至于你写了几年程序,还不知道method=post是什么原理。
7.找一个顺手的IDE,我个人不是CLI控,虽然不得不CLI,一个顺手的IDE真的可以提高生产效率。
搞.Net推荐vs+resharper,搞java推荐intellijIDEA. 8.关注一些热门而经典的领域,比如机器学习、图像处理、数据挖掘,即使已经有了mahout,不代表你不需要了解这些领域,你可能永远不会在工作中使用它们,但它们的思想值得你拥有,因为你选择了做程序员,而不是哪个公司的程序员。
剩下的,就是你的解决问题的思路和你实现的硬功夫(编码能力),我相信,很多看这篇文章的人,不能够轻易写出一个ftp服务器,不能够不参考、不联网查询资料写出一个简单的快速排序,也不能够轻易写出一段通用分页SQL,但他们依然可以正常工作。
所以外面的功夫容易忘记,有网络就能拾起,内功才是入骨的东西。
架构不是学出来的,是你的理解到位了,恰好工作中有这么个需求,你就开始整合你的已知,然后开始选择轮子。
回答于 2022-10-28 详情 该链接由问题回答方推荐Java web项目开发需要掌握哪些技术
分享作为千锋的Java开发工程师需要掌握的专业技能,大家可以参考一下。
一、熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的JavaAPI,包括 *** 框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。
二、熟悉基于JSP和Servlet的JavaWeb开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行JavaWeb项目开发的经验。
三、对Spring的IoC容器和AOP原理有深入了解,熟练的运用Spring框架管理各种Web组件及其依赖关系,熟练的使用Spring进行事务、日志、安全性等的管理,有使用SpringMVC作为表示层技术以及使用Spring提供的持久化支持进行Web项目开发的经验,熟悉Spring对其他框架的整合。
四、熟练的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,对Hibernate的关联映射、继承映射、组件映射、缓存机制、事务管理以及性能调优等有深入的理解。
五、熟练的使用HTML、CSS和JavaScript进行Web前端开发,熟悉jQuery和Bootstrap,对Ajax技术在Web项目中的应用有深入理解,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)进行项目开发的经验。
六、熟悉常用的关系型数据库产品(MySQL、Oracle),熟练的使用SQL和PL/SQL进行数据库编程。
七、熟悉面向对象的设计原则,对GoF设计模式和企业应用架构模式有深入的了解和实际开发的相关经验,熟练的使用UML进行面向对象的分析和设计,有TDD(测试驱动开发)和DDD(领域驱动设计)的经验。
八、熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web服务器和应用服务器的使用,熟悉多种服务器整合、集群和负载均衡的配置。
九、熟练的使用产品原型工具Axure,熟练的使用设计建模工具PowerDesigner和EnterpriseArchitect,熟练的使用Java开发环境Eclipse和IntelliJ,熟练的使用前端开发环境WebStorm,熟练的使用软件版本控制工具SVN和Git,熟练的使用项目构建和管理工具Maven和Gradle。
Web项目开发到底需要掌握哪些技术移动互联网进入基于Web应用为核心的阶段, Java作为应用于网络的最好语言。
实施Java的WEB项目需要掌握的技术
Java语言;
面向对象分析设计思想;
设计模式和框架结构;
XML语言;
网页脚本语言;
数据库;
应用服务器;
集成开发环境;
开发工具
数据库;
Web服务器;
集成开发环境(IDE);
JavaWeb项目开发到底需要掌握哪些技术
你首先你的先学好java2,也就是j2se,大概是2到3个星期。然后根据你的去向,比如你想写桌面应用程序的话,你就学好swing,如果你想学android的话,就关注android方面的书,如果是从事web开发的,你的学好jsp+servlet ,大概是2到3个星期,这个很重要,关系到后面的框架的学习。
然后你在学struct2,在学hibernate,在学spring。在这期间,再学点前台的知识,+css+javascript的知识,然后你在晋级学习EJB,实现异步平台的互访使用。大概是这样的。
希望能够帮助你,请采纳我的答案。
一个完整的Java Web项目需要掌握哪些技术+css+js,javaEE,ajax,数据库,jsp,这些知识就够做出一个javaweb项目了,不过性能可能不是太好,正常项目还应该要有数据库连接池,redis缓存等
做JavaWeb项目需要掌握哪些技术?要做JavaWeb项目,需要掌握的技术有:Java语言、面向对象分析设计思想、设计模式和框架结构、XML语言、网页脚本语言、数据库、应用服务器和集成开发环境。
做一个完整的Java Web项目需要掌握哪些技术视图层技术——HTML,CSS,JS,AJAX,Tiles,Velocity,FreeMarker
持久层技术——MyBatis,Hibernate
Spring , Spring MVC
项目构建工具Maven
日志Log4j
版本控制 Git
数据库技术:
SQL语句
参数调优
操作系统:
熟练掌握一种Linux系统,原理,Shell命令
服务器技术:
熟练使用并理解一个应用服务器技术的原理(Tomcat)
熟练使用并理解一个Web服务器技术的原理(Nginx)
用java做项目需要掌握哪些技术
给你说一下最基本的需求吧,首先要分你做的Java项目是什么项目
1、手机项目
了解Java基础,手机应用程序基础如J2ME,手机程序打包
2、WEB项目
了解Web服务器如Tomcat,了解数据库连接和操作可以是JDBC或者hibernate,了解语言基础,WEB程序发布
3、游戏服务器
了解Java基础,了解Java多线程,Socket,tcp/ip协议,数据库连接和操作,自制通讯协议等
wpf开发,需要掌握哪些技术上面正解,我不充电,基础开发知识掌握后就是技巧提升了。什么mvvm设计模式等等,自定义属性,样式定义等等。
开发hololens,需要掌握哪些技术微软Hololens全息眼镜是微软推出的一款虚拟现实装置,为头戴式增强现实装置,可以完全独立使用,无需线缆连接、无需同步电脑或智能手机。二0一5年一月二二日,微软举办Windows 一0预览版发布会,推出HoloLens全息影像头盔。 微软Hololens全息眼镜展示 微软Hololens全息眼镜是融合CPU、GPU和全息处理器的特殊眼镜,通过图片影像和声音,让用户在家中就能进入全虚世界,以周边环境为载体进行全息体验。 用户可以通过HoloLens以实际周围环境作为载体,在图像上添加各种虚拟信息。无论是客厅中玩Minecraft游戏、查看火星表面、甚至数进入虚拟的知名景点,都可以通过HoloLens成为可能。 头戴装置在黑色的镜片上包含透明显示屏,并且立体音效系统让用户不仅看到、同时也能听到来自周围全息景象中的声音,同时HoloLens也内置一整套的传感器用来实现各种功能。 HoloLens处在早期的开发阶段,在Windows 一0发布后开始测试,并在Windows 一0的时间框架内推出,价格会针对企业和个人消费者等不同用户分别制
现在使用java做web开发,需要掌握哪些相关技术?刚开始必须掌握jsp,servlet,和一定的j2se知识,这个是基础,没有基础,学了框架也是白学,没有发展前途,然后是各种框架,虽然说流行的是struts2 spring hibernate,但其实各公司有各自不同的需求,很多好框架和技术也是需要去了解和掌握的,比如说jsf, EJB3,jpa等
前端技术了解就好,简单的 css js,这些是不需要花很多时间去学的,看看了解就行