以前我常說,公司用什麼技術我就學什麼。可是對于java,我曾經一度以為“學java是不可能的,這輩子不可能學java的。”結果,一遇到公司轉java,我就不得不跑路了,于是乎,回頭一看N家公司交過社保,連我自己都有點驚訝,居然有這麼多家公司了。對于java的梗,這是有曆史緣由的,大二的時候同一大波人去藍傑參加java教育訓練,當時一個空心的菱形怎麼也寫不出來,我寫來寫去就是一個實心的磚頭,結果教育訓練老師實在看不下去了,就說:“唉!你不适合搞java”,我看了下一同前去的幾個同學一下子就都寫出來了,搞得我一度開始懷疑自己的IQ。于是,我就跑去自學C#了,直到多年後,我才了解當時老師的話是:“你不适合做軟體,而不單單是java”。沒錯,像我們這樣的大專狗學習能力實在不行,當時同屆的一個教育訓練班學生如今在騰訊撸java都年薪150w了,還有什麼好說的呢?在天朝你撸.net估計撸到死都難以拿那麼高薪水的。那教育訓練班專門收羅中南、湖大、師大的高材生去參加教育訓練,學曆和IQ、學習能力都不是我這樣的複讀大專狗可以比的,唉!。還有一個沒有去轉java的原因,就是看見我那些在深圳搞java的大學同學,加班太恐怖了,動不動就是什麼996,搞得我害怕。可能因為都是大專狗,又是在撸碼,沒有去做java架構師吧,都是撸碼的話,撸java和撸.net感覺差别真不大,所謂的高薪都是加班加出來的。相比而言,.net工資低點,上班也輕松許多,就那麼點東西,分分鐘完成開發任務,有必要裝加班麼?
搜了下網上的招聘,架構師很少有.net和PHP的,大多數都是java系,是以如果要做架構師的話,java是你不得不面對的。.net和php目前不過是在夾縫中生存,做後端,java是首選,那麼前端,現在越來越專業越來越強大了,曾經瘦前端的時代已經過了,前端和後端已經完全可以分庭抗禮,許多公司也都有了專門的前端,專業的人做專業的事,而.net和php卻夾在中間,逐漸的失去了競争優勢。
現在不想再逃避了,Java就Java吧,于是乎,Java學習之路就開始了。
我在學習java的時候總是喜歡拿它們倆進行比較,由于C#太過優雅,以緻于學習Java文法的過程中,無可避免的會各種吐槽。Java是參考的C++,C#是參考的C++和Java,繼承了兩者的一些文法優點,然後又添加了自己特有的許多文法糖。
.net轉java 就像學自動擋車的人,要去開手動擋的車。手動擋好還是自動擋好?
系列文章目錄
從.Net到Java學習第一篇——開篇
從.Net到Java學習第二篇——IDEA and start spring boot
從.Net到Java學習第三篇——spring boot+mybatis+mysql
從.Net到Java學習第四篇——spring boot+redis
從.Net到Java學習第五篇——Spring Boot &&Profile &&Swagger2
從.Net到Java學習第六篇——SpringBoot+mongodb&Thymeleaf&模型驗證
從.Net到Java學習第七篇——SpringBoot Redis 緩存穿透
從.Net到Java學習第八篇——SpringBoot實作session共享和國際化
從.Net到Java學習第九篇——SpringBoot下Thymeleaf
從.Net到Java學習第十篇——Spring Boot檔案上傳和下載下傳
從.Net到Java學習第十一篇——SpringBoot登入實作
從.Net到Java學習第十二篇——SpringBoot+JPA提供跨域接口
.......
我們不一樣
說好的屬性呢?
我呢個去?先來看下C#
public string Name { get; set; }
public int Age { get; set; }
再來看下Java
public String name;
public int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
感覺突然回歸到了C#2.0時代,整個人一下子穿越了。更奇葩的是String,首字母必須是大寫,而其它基本類型又是首字母小寫。再看java内置的一些包,import java.util.Scanner;什麼情況,為啥,有些單詞是首字母小寫,最後面的類又變成大寫,這是大駝峰還是小駝峰呢?
C#用:表示繼承和實作,Java又是extends又是implements的,這個還好比較好了解隻是麻煩一點,居然把繼承和實作分開了,關鍵字C#的base對應到了Java的supper。有一點奇怪的是Java的包和C#的命名空間還是有一點差別的,Java的包還會在磁盤上産生對應的實體檔案夾。
我又習慣性的var _age=2;,這下又報錯了。神馬情況?int _i=new int();,亞妮?又錯了?要這樣:Integer _i=new Integer(4);既然有了int為啥還要Integer呢,C#通通支援new int(),java要Integer才支援可空,而C#加上一個?就可以了。
Java8之後開始支援Lambda了,這個C#在很多年前就支援了的文法特性。
java的錯誤提示,真的跟成箴語差不多,這也太泛了吧,沒有足夠的經驗,有時候一下子讓人摸不着頭腦,不像.net錯誤提示恨不得告訴你代碼直接該怎麼樣寫。有時候,如果一不小心,搞錯個配置,TMD半天時間可能就搭那裡了。
千言萬語先打住........
文法熟悉之後,我就去熟悉IDE,Java常用的IDE目前主要是:eclipse.exe、MyEclipse 2017 CI、IntelliJ IDEA Community Edition 2018.1.4 x64。
于是乎我不管三七二十一下載下傳下來玩一下再說。eclipse綠色版免安裝,MyEclipse要破解一下,IntelliJ IDEA暫時還沒用,不好說。
現在就說下用eclipse和MyEclipse的感受,從名字就可以看出它們是同出一脈的,是以使用上也差不多。剛下載下傳下來,我以為跟VS一樣直接就可以來撸碼了,才發現我又錯了。配置、配置、配置。重要的事情說三遍,各種配置,估計是java的特性吧。各種配置我都弄好後,發現,智能提示又是一坨稀泥一樣了。好吧,據說有快捷鍵,每次按Alt+/,我突然想,隻要看見鍵盤上,這兩個按鍵磨沒了,肯定是java程式員吧。
我熟記了這兩個IDE各種常用的快捷鍵,不知道是我手小了、手指短了的緣故還是咋的,多操作幾遍就手指抽筋,一隻手按不完快捷鍵,兩隻手按的話,總有一隻手要移動好遠,按完再複位,對我這樣十個手指頭敲鍵盤的人來說,實在是有點不适應。還有就是這些個快捷鍵經常和各種輸入法的快捷鍵沖突,你得去幹掉輸入法的一些快捷鍵配置。然後我又開始試下HTML、css和js的智能提示,又嘗試了檔案引用,我拿滑鼠單擊去拖放,直接卡死不動了,才發現不支援,好吧我又手敲一下,手敲的智能提示又實在太弱了,本來0.1s可以搞定的一個檔案引用,我硬是敲了好幾秒,總算是松了口氣。
VS裡面許多快捷是組合快捷鍵,很難和其它軟體的快捷鍵沖突,而且敲快捷鍵手指不需要移動,如Ctrl+K,Ctrl+S;Ctrl+K,Ctrl+U;等
我去問我那些搞java的同學,他們怎麼弄的,他們說就是這樣弄的,習慣了就好了,感覺還好啊。我很不了解,同樣的功能我用VS編碼效率會高很多啊,開發效率低,對開發人員來說,意味着加班,難怪跟我那些搞java的同學比起來,我加的班,可能不到他們的百分之一(我基本上一年都加不了幾次班,大多數情況都是準點;還有一個重要的原因,Java網際網路公司多呗,現在.Net在許多網際網路公司主要打打雜,傳統企業有許多舊項目可能是.net的),難道真的是沒用對比就沒有傷害嗎?可能是我對VS的使用太純熟了,對eclipse和MyEclipse還不夠熟吧。
我們其實又一樣
java中有的.net基本上也有。h5、js、前端架構和資料庫是共用的。又都是面向對象的進階語言,而且都是參考過C++,之後又互相模仿互相抄襲。至于各種架構,不過是各種設計模式的展現罷了,而設計模式對面向對象程式設計而言又是一樣的。
.net | java |
一般處理程式 | Servlet |
aspx | jsp |
C# | Java |
spring.net | spring |
NHibernate | Hibernate |
asp.net mvc | spring mvc |
log4net | log4 |
Quartz.Net | Quartz |
Lucene.Net | Lucene |
NVelocity | Velocity |
Mybatis.net | Mybatis |
... |
MyEclipse如何設定自動提示
1、打開 MyEclipse -> Window -> Perferences -> Java -> Editor -> Content Assist,在右邊最下面一欄找到 auto-Activation ,下面有三個選項,找到第二個“Auto activation triggers for Java:”選項
2、在其後的文本框中會看到一個“.”存在。這表示:隻有輸入“.”之後才會有代碼提示和自動補全,我們要修改的地方就是這裡。把該文本框中的“.”換掉,換成“abcdefghijklmnopqrstuvwxyz.”,這樣,你在MyEclipse 裡面寫Java代碼就可以做到按“abcdefghijklmnopqrstuvwxyz.”中的任意一個字元都會有代碼提示

myEclipse2017添加tomcat伺服器
https://blog.csdn.net/weiyongle1996/article/details/75195918
Eclipse運作時報錯
JDK是32位,而IDE是64位所緻。
MyEclipse 2016 上配置HTML5的标簽自動提示
<= abcdefghijklmnopqrstuvwxyz
配置完後要重新開機myEclipse
eclipse代碼自動提示設定、如何配置eclipse的代碼自動提示功能?
eclipse常用快捷鍵
Ctrl+Alt+H:檢視目前類在哪些地方被繼承。
ctrl+shift+g:檢視目前類在哪些地方被引用。
myeclipse仿vs主題
作為.Net程式員,我實在是不慣MyEclipse上面的各種主題,于是我自己做了一個跟VS相似的主題
主題包下載下傳位址:https://download.csdn.net/download/zouyujie1127/10457891
下載下傳主題包,然後打開myeclipse導入即可。
關于MyEclipse 2017文本編輯器設定html代碼提示功能更換主題顔色
Servlet使用注解配置URl提示404錯誤
IntelliJ IDEA常見問題
IntelliJ IDEA 編譯Java程式出現 'Error:java: 無效的源發行版: 9' 的解決方案
idea 自動導入包 快捷鍵
Intellij IDEA 最新旗艦版注冊激活破解(2018親測,可用)
IntelliJ IDEA 缺少 javax 包 支援
IDEA快捷鍵
NSIS Error:運作安裝包出現installer integrity check has failed錯誤解決方法
[Intellij] 在IntelliJ IDEA 中建立運作web項目
Intellij2016.2 設定maven自動提示
【問題解決】IDEA右鍵選擇new新檔案的時候沒有JSP檔案選項解決
IntelliJ IDEA開發Java web項目,JSP無代碼提示或自動補全 問題
IDEA 通過maven 建立項目問題解決
IDEA調試快捷鍵
F9 resume programe 恢複程式
Alt+F10 show execution point 顯示執行斷點
F8 Step Over 相當于eclipse的f6 跳到下一步
F7 Step Into 相當于eclipse的f5就是 進入到代碼
Alt+shift+F7 Force Step Into 這個是強制進入代碼
Shift+F8 Step Out 相當于eclipse的f8跳到下一個斷點,也相當于eclipse的f7跳出函數
Atl+F9 Run To Cursor 運作到光标處
ctrl+shift+F9 debug運作java類
ctrl+shift+F10 正常運作java類
alt+F8 debug時選中檢視值
熟悉文法、IDE之後,剩下的就是其系統自身的各種類庫,和其生态體系中的各種架構了。一開始下載下傳IDEA的時候弄錯了,下載下傳的免費版,好多功能沒有,後面重新下載下傳了企業版。
接下來學習spring boot+mybatis+maven
部落格位址: | http://www.cnblogs.com/jiekzou/ |
部落格版權: | 本文以學習、研究和分享為主,歡迎轉載,但必須在文章頁面明顯位置給出原文連接配接。 如果文中有不妥或者錯誤的地方還望高手的你指出,以免誤人子弟。如果覺得本文對你有所幫助不如【推薦】一下!如果你有更好的建議,不如留言一起讨論,共同進步! 再次感謝您耐心的讀完本篇文章。 |
其它: | .net-QQ群4:612347965 java-QQ群:805741535 H5-QQ群:773766020 我的拙作《ASP.NET MVC企業級實戰》《H5+移動應用實戰開發》 《Vue.js 2.x實踐指南》 《JavaScript實用教程 》 《Node+MongoDB+React 項目實戰開發》 已經出版,希望大家多多支援! |