Java和.NET(C#)的开发用到的技术对比总结
前言
声明:我指的是一般的Java和.NET(C#)的后台开发用到的技术总结
最近一直在应聘ing,楼主的项目还是.NET(C#)项目居多,Java项目相对少,在这也吐槽下,招.NET(C#)的公司实在是少的可怜,其实非常喜欢C#语法和VS宇宙第一编辑器的,虽然.NET Core口碑不错,但无奈于生态不如Java,所以发展的还是太慢了,介于此,秋招楼主投的还是Java技术后台的岗位居多,但遇到招.NET(C#)的公司还是心里一动,肯定要投一下的。
好了不水了,下面我从“大局观”的角度来比较一下一般的Java和.NET(C#)的项目后台用到的技术。以便在面试的时候可以系统的和面试官介(chui)绍(niu)下。
当然,由于是应对秋招,这里所说到的技术是非常初级,简单的。大牛级别的绕过忽略此文haha。
总结
开发
1. 视图层技术
HTML,CSS,JS,AJAX,Tiles,Velocity,FreeMarker
2. 持久层技术
Java
Hibernate,Ibatis,Mybatis,DBUtils,SimpleJDBC等
.NET(C#)
EF、Dapper、NHibernate(很多还有好多国产的,比如SqlSugar 、Chloe )
详见:https://www.cnblogs.com/jackytang/p/9111980.html
3. web框架
Java
Spring MVC、Spring Boot 、Spring Cloud、Struts等
.NET(C#)
WebForm、ASP.NET MVC(主流)、ASP.NET Core(跨平台)
4. 包管理工具
Java
Maven
.NET(C#)
Nuget
5. 日志框架
Java
JDKLog、Log4J、LogBack、SLF4J、SLF4J
详见此文:https://www.cnblogs.com/baizhanshi/p/7911123.html
.NET(C#)
Log4Net.dll:轻量级的免费开源.NET日志记录框架。
Enterprise Library Log Application Black:微软企业库日志记录。
Elmah:实现最流行的ASP.NET应用异常日志记录框架。
NLog:是一个简单灵活的日志记录类库,性能比Log4Net高,使用和维护难度低。
6. 版本控制 Git
数据库技术
1. SQL语句
2. 参数调优
操作系统
1. 熟练掌握一种Linux系统,原理,Shell命令
2. Windows操作系统基础必须了解下。
服务器技术
Java
1. 熟练使用并理解一个Web应用服务器技术的原理(Tomcat)
2. 熟练使用并理解一个Web服务器技术的原理(Nginx)
.NET(C#)
1. 熟练使用并理解一个Web应用服务器技术的原理(IIS+.NET Framework(开源之前))
2. 熟练使用并理解一个Web服务器技术的原理(IIS、Kestrel)
注1:关于Web应用服务器和Web服务器技术可以读读这两篇文章:
http://www.cnblogs.com/dudu/p/dotnet-application-server.html
https://www.cnblogs.com/vipyoumay/archive/2017/08/31/7455431.html
注2:在这里我还要罗嗦几句,.Net 开源之后和之前还是有很大区别的,不懂。NET 技术的JAVA 同学想要转.NET 的还是直接转.NET Core吧(haha ,有么?)。
比如:
.NET的Web服务器:包括 IIS Express、Internet Information Services (IIS)、外部主机或自定义 Web 服务器
.NET Core的Web服务器:与ASP.NET不同,ASP.netCore使用的是自托管web服务器Kestrel,所以IIS目前对于ASP.netCore只充当转发请求的代理而已,反向代理到ASP.netCore就需要iis之前没有的模块称为:AspNetCoreModule,此模块包含在ANCM(官网说明:ANCM)中,下载地址:.NET Core Windows Server Hosting
缓存技术
1. 熟练使用并理解一种缓存技术(Redis, Memcache,EhCache)
非关系型数据库
2. 熟练使用并理解一种非关系型数据库(MongoDB)
.NET(C#)专用:
Microsoft Velocity:微软自家分布式缓存服务框架。
EnyimMemcached:访问Memcached最优秀的.NET客户端,集成不错的分布式均衡算法。
中间件技术
Java
1. JMS:activeMQ和kafka
2. RPC: Dubbo
.NET Core
内在的中间件就有挺多了。
Authentication 提供身份验证支持
CORS 配置跨域资源共享
Response Caching 提供缓存响应支持
Response Compression 提供响应压缩支持
Routing 定义和约束请求路由
Session 提供用户会话管理
Static Files 为静态文件和目录浏览提供服务提供支持
URL Rewriting Middleware 用于重写 Url,并将请求重定向的支持
设计模式
1. 了解并能够使用几种最主要的设计模式,这个是基础,必学
网络
1. 熟悉http,TCP协议等网络基础,必学
虚拟机
Java
Java虚拟机:
1. 熟悉jvm运行原理,内存分布
2. jvm参数调优
.NET(C#)
CLR
公共语言运行时。
确切含义取决于上下文,但它通常指 .NET Framework 的运行时。 CLR 处理内存分配和管理。 CLR 也是一个虚拟机,不仅可执行应用,还可使用 JIT 编译器快速生成和编译代码。 当前的 Microsoft CLR 实现仅限 Windows。
CoreCLR
.NET Core 公共语言运行时。
此 CLR 是采用与 CLR 相同的基本代码生成的。 最初,CoreCLR 是 Silverlight 的运行时,专为在多个平台(特别是 Windows 和 OS X)上运行而开发。CoreCLR 现属于 .NET Core 并表示 CLR 的简化版本。 它仍是跨平台运行时,现包括针对许多 Linux 分发的支持。 CoreCLR 也是具有 JIT 和代码执行功能的虚拟机。
呃,好吧,就这么多了,希望博友们多多指点。
最后感叹一句,秋招啊秋招,怎么这么难。
Java和.NET(C#)的开发用到的技术对比总结的更多相关文章
- APP开发的三种技术对比
目前来说主流的App开发方式有三种:Native App .Web App.Hybird App.下面我们来分析一下这三种App开发方式的优劣对比: 一 :Native App 即 原生App开发 优 ...
- Java程序员转Android开发必读经验分享
小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区 ...
- .NET C#转Java没那么难,开发环境篇
.NET C#转Java没那么难,都是面向对向的语言,而且语法还是相似的,先对比一下开发环境,再到Servlet,再到MVC,都是一样一样的,只是JAVA的配制项比较多而已,只要配好一个,后面都是co ...
- Java 容器在实际项目开发中应用
前言:在java开发中我们离不开集合数组等,在java中有个专有名词:"容器" ,下面会结合Thinking in Java的知识和实际开发中业务场景讲述一下容器在Web项目中的用 ...
- 关于java' web杂谈(其实是课后作业1)1 网站系统开发需要掌握的技术
1 网站系统开发需要掌握的技术:(借鉴度娘)https://zhidao.baidu.com/question/1701850648247880220.html 需要掌握的有:Java(JavaEE) ...
- Java与Kotlin, 哪个是开发安卓应用的首选语言?
Java是很多开发者创建安卓应用的首选语言.但它在 Android 界的领导地位正受到各种新语言的挑战,Kotlin就是其一.虽然Kotlin最近才开始受到热捧,但有为数不少的人相信 Kotlin 在 ...
- 【.net开发者自学java系列】使用Eclipse开发SpringMVC(3)
[.net开发者自学java系列]使用Eclipse开发SpringMVC(3) 标签(空格分隔): Spring RESTful 很久没继续学习java的spring了.接下来继续 回忆一下上个随笔 ...
- Java or Python?测试开发工程师如何选择合适的编程语言?
很多测试开发工程师尤其是刚入行的同学对编程语言和技术栈选择问题特别关注,毕竟掌握一门编程语言要花不少时间成本,也直接关系到未来的面试和就业(不同企业/项目对技术栈要求也不一样),根据自身情况做一个相对 ...
- 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)
微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...
随机推荐
- openstack Ocata版本 python
from keystoneauth1.identity import v3 from keystoneauth1 import session from novaclient import clien ...
- C#-结构体(十)
结构体概念 在C#中,结构体是值类型,一般适用于表示类似Point.Rectangle.Color的对象 值类型能够降低对堆的管理.使用.降低垃圾回收,表现出更好的性能.可是值类型也有不好的一面.会涉 ...
- css属性总结
前言 有些属性不是很常用,但是工作中遇到了,记录一下,方便学习. 1.text-indent text-indent 属性规定文本块中首行文本的缩进.主要实现就像word那种首行缩进的效果. 详解ht ...
- web前端(3)—— html标签及web页面结构
本节内容简单介绍下html都有哪些标签 还是百度首页,查看源代码看看: 我把源代码复制下来另存为html文件里: 注意:网页文件的后缀都是html或者htm 我这用的pycharm编辑器(Python ...
- OkHttp简单使用
OkHttp是一个轻量优秀的网络框架.用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,) 使用方法: 1 ...
- php配置文件php.ini的详细解析(续)
file_uploads = On // ...
- js判断是否是移动端自动跳转到wap页面代码
<script type="text/javascript"> function is_mobile(){ var regex_match=/(nokia|iphone ...
- python 逻辑判断 循环练习题
# 1.判断下列列逻辑语句句的True,False.# 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 ...
- js中arguments详解
在js中一切都是对象,连函数也是对象,函数名其实是引用函数定义对象的变量. 什么是arguments? 这个函数体内的arguments非常特殊,实际上是所在函数的一个内置类数组对象,可以用数组的[i ...
- 如何利用pip自动生成和安装requirements.txt依赖
在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.这个文件有点类似与Rails的Gemfile.其作用是用来在另一台PC ...