本文目錄一覽:
- 1、開發語言java與jee的學習方式與不同?
- 2、用java語言開發的軟體並進行銷售,算侵權嗎?為什麼?
- 3、軟體著作權登記,編程語言是java,版本號怎麼寫呢?
- 4、使用java語言需不需要給甲骨文付專利費
開發語言java與jee的學習方式與不同?
1、打好基礎是重中之重
基礎部分可能很枯燥,但是一定要耐心堅持下去。因為打基礎好比是在造輪子造汽車,沒有打好基礎在後面的學習就好比走路,可以說後面遇到的百分之七八十的問題都是基礎沒學好造成的。
2、多看官方文檔多讀源碼
一定要看JDK相關類庫、常用框架各種功能的源碼,去了解其底層實現的原理。總的來說這個也是在打基礎的部分,Java基礎非常紮實才能看懂,在我們學習一個類的源碼時,肯定會衍生出其他各種各樣的問題,供我們來了解和學習,這也就是我們下一步學習的目標和方向。慢慢的,我們就會學習更多的知識,並積累更多的經驗。
3、系統性學習,循序漸進
不要急於求成,每個知識點都要看,並且每個知識點都要勤加練習。有的同學在學習過程中覺得這個知識點簡單,就跳著學習,其實這是個很大的問題,知識點細節必須要了解。我們學習Java需要循序漸進,一步一步來,不能操之過急。
4、遇到問題
遇到不會做的問題,當然不能置之不理。先在網上查,目前網路上針對很多問題都有完美的解決方案,如果網上沒有類似的問題,那可能是你犯了什麼小錯誤。也不要在這個問題上花費太多時間,這需要一定的學習技巧。Java中的知識有很強的相關性,有不懂的地方,可以用其他周邊相關知識再回過頭來理解,這樣既不會耽誤學習進度,又能理解自己不懂的地方
1)jvm有很多種,其實jvm是一個標準,sun做的那個叫hotspot,作者就是後來v8的作者lars bak,其他公司也做過jvm,其中做得比較好的有bea的jrockit,其他的包括ibm的r9,apple的jvm等在內,都做得不行,所以jvm主要是整合淘汰掉這些做得不好的jvm(s),整合成一個統一的openjdk。
2)java是典型的oop語言,其執行效率的優化,最早就是lars bak等人從smalltalk等長期優化的經驗中總結出來並apply到hotspot上去滴,而smalltalk在早期apple機上搞出了那種拖拖拽拽就開發出app的做法,後來vc,delphi之類的其實都是抄襲或者說借鑒apple的smalltalk的做法,jobs說微軟從頭到尾都在抄襲apple是空穴來風,這裡空穴來風跟王垠使用的空穴來風是一個意思,有趣的是,java的gui並沒有繼承這種搞法,反而對這種拖拖拽拽就作出app的做法批判有加,到今天,其實java的gui都還不能真正做到拖拖拽拽就作出來,問題很多,個人建議對於純java的gui開發,還是以寫代碼為主。
3)jee也是一個或者說是一堆標準,知乎上有些人把maven,jenkins都算做jee是不對滴,jee的標準核心是ejb,其實就是一個xml配置化的java文件,這個標準在4的時候,達到了頂峰狀態,幾乎所有的挨踢大廠都主動支持該標準,之後開始走下坡路,支持的廠越來越少。
4)java和javascript的關係比很多人認為的要密切,javascript裡面的java這四個字母可不是白叫的,比如js的版權和商標都控制在oracle手裡,oracle對於js的支持甚至超過其對java的支持,並且喜歡捆綁銷售,比如jvm裡面就有一個js引擎。
5)jvm裡面除了js engine以外還有一個瀏覽器排版引擎webkit,就是apple safari和google chrome用的那個那個。
6)java支持絕大多數腳本語言,你能叫得上名字的腳本語言,幾乎都可以在jvm上執行,比如常見的js,ruby,python,甚至php,lua,只不過除了js以外你需要找到相關的腳本引擎。
7)spring的版權被控制在vmware手裡,其實spring的那一大堆東西,本質上是一個非標準的jee實現,比如在jee裡面用的inject,在spring裡面就是autowire,當然spring曾經深刻滴影響了jee,所以有些東西比如di標準,是spring影響下制定出來的,所以spring的做法會比較特例一點。
8)maven上的jars數量前兩天突破800萬,其他語言的類庫,排名第二的是npm,大概數量是maven的十分之一,也就是幾十萬,不知道現在突破100萬沒有,然後是gem,也就是ruby那個,大概是十幾萬,下來是python的module,大概數量級是幾萬,沒突破十萬。
9)java的標準是由一個叫做jcp的組織制定的,所有標準需要經過jcp的執行委員會通過方可執行,jcp幾乎包括了你所知道的絕大多數知名挨踢公司和組織,比如google,apple,ibm,intel,arm,red hat,twitter等,還有一些教育機構,比如我國的北京大學,阿里最近一次申請jcp執行委員會成員資格,似乎投票不通過,最近一次執行委員會新增兩個成員是arm和jetbrains。
10)微軟也曾經是jcp甚至是java的主要貢獻者,但是利益驅使下,想擴展java,從而破壞java跨平台的特性,所以跟sun鬧翻,其本質原因就是想讓客戶寫的java代碼跟windows綁定,sun堅決不同意,鬧翻,今天回頭看這個結果,只能說:雙輸,sun掛了,微軟的ria也離掛不太遠了,silverlight已經放棄了,比起當年ie自帶有jvm的支持來說,那完全就是兩回事。
11)除了微軟以外,jcp還缺少一個重要組織apache,因為apache跟oracle也鬧翻了,oracle似乎並不在乎開源組織,而更在意商業公司的支持。
12)java曾經有一個內置的資料庫,9之後被剝離。
13)j2me是j2se的子集。
14)vert.x作者tim fox最早在vmware做spring時候看到了node.js,萌生出了製作支持多核的node.x的想法,並在離開vmware後加入red hat將其實現,vmware看到後開始耍無賴,claim node.x後來改叫vert.x的版權,不惜跟red hat打官司,後來各方妥協,將其交給eclipse foundation。
15)oracle在收購bea之前,一開始的目標並不是bea和bea的weblogic,而是jboss,但是jboss表現出了極為有種的一面,在oracle收購成功之前,投入了red hat的懷抱,因為都是開源組織,從此jboss成了red hat的一個子部門,oracle收購jboss失敗之後,轉向bea,庄思浩氣死了,但是沒用,最後還是被惡意收購。
16)sun在玩不下去之前最早嘗試接觸的目標是ibm,ibm嫌太貴,放棄之後,被轉手給了oracle。(Java學習交流QQ群:589809992 我們一起學Java!)
17)vert.x的作者tim fox在離開red hat之前曾經發過twitter抱怨,外人比如我們,猜測是因為red hat內部已經有了一個jboss,所以跟vert.x在應用上有了重疊,所以導致tim fox的出走,但是出走之後,red hat答應對vert.x做持續性的戰略投入,所以vert.x core的幾個developers,其實拿的是red hat的工資,但是vert.x的版權並不在red hat手裡,而在eclipse foundation手裡。
18)vert.x的幾個核心開發人員都是google summer of code的導師,每年年初時候會招收在校大學生搞項目。
19)教育機構相關:scala的作者馬丁是德國人,eth的博導,groovy的主要領導人是法國人,jruby背後是東京大學,jboss的作者是法國大學校x的校友,x就是伽羅瓦考不進去的那所大學,伽羅瓦進不了x,所以改讀巴黎高師,tim fox畢業於帝國理工,主席去的那個,netty作者trustin lee是acm銀牌,現在line工作,畢業於sky裡面的延世大學,kotlin是毛子公司jetbrains的作品,看linkedin,很多人畢業自聖彼得堡大學,spring作者rod johnson是悉尼大學的音樂博士,hibernate作者gavin king是澳洲莫那什大學的數學本科畢業生,james gosling這種cmu和calgory的估計爛大街了,sun是斯坦福大學網路的意思,夾帶兩個私貨,aspectj有一個維護小組在mcgill,hbase跟waterloo關係密切。
20)java早期被人認為慢,跟java堅持不用硬體加速渲染有關,死活就是不肯接入directx和opengl,7之後總算開竅,搞了一個圖形引擎接入了directx/opengl。
21)casssandra是facebook做失敗的項目,被貢獻給了apache之後老樹開花。
22)groovy被貢獻給了apache,現在叫做apache groovy,ceylon被貢獻給了eclipse,現在叫做eclipse ceylon。
23)netflix現在是java shop,之前是用.net的。
先想到這麼多,有空再寫。
用java語言開發的軟體並進行銷售,算侵權嗎?為什麼?
你是不是看到Java使用了GPL開源軟體協議?對於普通的採用GPL協議的庫或軟體,你可以對軟體進行任何形式的修改,複製和銷售。但是有一個限制,就是一旦你發布軟體,就必須向你的發布對象公布你的源代碼,否則就是不遵守GPL開原協議(就是說,如果你的軟體中使用的基於GPL的庫,並且你把你的軟體賣個A,則必須同時向A提供源代碼)。這是普通的GPL協議的規定,而java雖然也使用GPL開源協議,開源了java系統類庫的代碼,但是他的協議同時提出了一個例外條件,就是只要你修改java本身提供的類代碼,你可以不向軟體發布人員公開你的源碼。這就是為什麼java可以免費使用,而且在通常情況下可以不公開源代碼的原因。
不過國內的版權意識比較淡薄,很多軟體使用了GPL開源庫,也沒有公開源碼,按嚴格意義上講這是違反版權的,自由軟體基金會可以按協議向法院起訴開發人員………….
軟體著作權登記,編程語言是java,版本號怎麼寫呢?
都是一樣的 一般習慣 jdk1.7
jdk 1=jdk1.1
jdk2=jdk1.2
jdk3=jdk1.3
jdk4=jdk1.4
jdk5=jdk1.5
jdk6=jdk1.6
jdk7=jdk1.7
使用java語言需不需要給甲骨文付專利費
當然需要,GOOGLE ANDROID因沒有支持專利費最後被法院判罰賠償ORACLE88億美元
JAVA、ANDROID等普通人學習和使用是免費的
但像GOOGLE ANDROID使用JAVA API賺取巨額收入,你憑什麼不支付專利費
三星晶元也是 JAVA定製的,自然也需要支付專利費,技術支持肯定不是免費(開發和維護一門編程語言成本可不低),但是這種產業鏈頂端涉及到知識產權的事情,除非有重大事情否則外界無法獲知詳情,偶也是在工作時涉及到貼微軟商標支付龐大費用才意識到這類問題,很多人印象微軟產品到處都是盜版和免費,但是忽略在商場使用人家系統沒有經過人家認證一但被告需要付出多大的代價,這個世界上沒有比「專利案」更被律師喜愛的案件了,索尼連一個個角色都要老老實實地漫威手裡購買而不敢未經對方同意擅自使用(目前索尼擁有900多漫威角色,索尼電影實際上漫威漫畫關係不大甚至徹底顛覆)
網上有朋友說GOOGLE ANDROID支付ORACLE JAVA專利費賠大發了,那你們知不知道GOOGLE要求微軟每年支付40億美元專利費,若不支付則停售XBOX。最後結果是雙方和解,但誰勝誰負專利費最終每年多少就不被外界知道了(傾向於微軟還是GOOGLE,也就是誰贏了官司,庭外和解,就是其中一方認輸了同意對方的條件(這個條件實際上依然是法官的最後裁決數字,庭外和解僅僅是避開了法庭宣判),庭外和解從來不是哥兒兩好的意思)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/254557.html