Java和.NET(C#)的開發用到的技術對比總結

前言

聲明:我指的是通常的Java和.NET(C#)的後臺開發用到的技術總結html

最近一直在應聘ing,樓主的項目仍是.NET(C#)項目居多,Java項目相對少,在這也吐槽下,招.NET(C#)的公司實在是少的可憐,其實很是喜歡C#語法和VS宇宙第一編輯器的,雖然.NET Core口碑不錯,但無奈於生態不如Java,因此發展的仍是太慢了,介於此,秋招樓主投的仍是Java技術後臺的崗位居多,但遇到招.NET(C#)的公司仍是內心一動,確定要投一下的。web

好了不水了,下面我從「大局觀」的角度來比較一下通常的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 )

 詳見:http://www.javashuo.com/article/p-oxdgqamk-ev.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

 詳見此文:http://www.javashuo.com/article/p-ahisdwxw-eu.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 和代碼執行功能的虛擬機。

呃,好吧,就這麼多了,但願博友們多多指點。 

最後感嘆一句,秋招啊秋招,怎麼這麼難。

相關文章
相關標籤/搜索