Java之父高斯林是一位加拿大的計算機(jī)天才。
他創(chuàng)造了偉大的編程語言——Java,在TIOBE排行榜上,Java常年排名第一。
現(xiàn)在這位64歲高齡的祖師爺依然戰(zhàn)斗在編程最前線,寶刀不老。
Java之父找不到工作?就算是Java之父,也難逃中老年危機(jī)。
高斯林曾在Facebook上發(fā)表了一段言論:
我曾在面試的時候被HR告知,“通常我們不招你這種年齡的程序員,但你的情況特殊(指的是他Java之父的身份),所以對你特殊考慮?!?/p>
有些程序員開始表示同情高斯林的遭遇,中老年危機(jī)找不到工作。
但是,人家找工作可是不一般呀!
有人找不到工作是找不到一個年薪十幾萬的工作。但這位祖師爺這里人家找不到的是年薪五百萬的工作!
這和有些女神經(jīng)常感嘆,找不到男朋友有點(diǎn)類似。
有個程序員表示,祖師爺也可以找個大學(xué)去教書,將自己的畢生所學(xué)傳給下一代。
還有一個程序員網(wǎng)友表示,我如果哪天有幸收編程的徒弟,就找高斯林的畫像掛墻上,他們要拜祖師爺。
計算機(jī)編程藝術(shù)在編程的過程中,難免要在程序多加入一些代碼,這勢必將讓程序復(fù)雜性增加。
但是你沒有多寫入一些代碼,用戶體驗(yàn)程序就會很復(fù)雜。
高斯林曾談?wù)撨^計算機(jī)編程藝術(shù),他認(rèn)為和精力守恒定理一樣:你投入到程序中的精力越多,用戶使用時遇到的麻煩和折騰的精力就會越少,程序員要做的,正是在開發(fā)端和用戶端之間盡量平衡開發(fā)和用戶的復(fù)雜度。
祖師爺這一段代碼你看懂了嗎?近日,有程序員網(wǎng)友曝光了Java之父寫的一段代碼,祖師爺這段代碼你看懂了嗎,有沒有很牛逼呢?
[Listing One]
PingPong class PingPong extends Thread {
String word; // what word to print
int delay; // how long to pause
PingPong(String whatToSay, int delayTime) {
word = whatToSay;
delay = delayTime;
}
public void run() {
try {
for (;;) {
System.out.print(word + " ");
sleep(delay); // wait until next time
}
} catch (InterruptedException e) {
return; // end this thread
}
}
public static void main(String[] args) {
new PingPong("ping", 33).start(); // 1/30 second
new PingPong("PONG", 100).start(); // 1/10 second
}
}
[Listing Two]
Account class Account {
private double balance;
public Account(double initialDeposit) {
balance = initialDeposit;
}
public synchronized double getBalance() {
return balance;
}
public synchronized void deposit(double amount) {
balance += amount;
}
}
[Listing Three]
synchronized_abs /* make all elements in the array nonnegative /
public static void abs(int[] values) {
synchronized (values) {
for (int i = 0; i < values.length; i++) {
if (values[i] < 0)
values[i] = -values[i];
}
}
}
[Listing Four]
class Queue {
// The first and last elements in the queue
Element head, tail;
public synchronized void append(Element p) {
if (tail == null)
head = p;
else
tail.next = p;
p.next = null;
tail = p;
notify(); // Let waiters know something arrived
}
public synchronized Element get() {
try {
while(head == null)
wait(); // Wait for an element
} catch (InterruptedException e) {
return null;
}
Element p = head; // Remember first element
head = head.next; // Remove it from the queue
if (head == null) // Check for an empty queue
tail = null;
return p;
}
}
[Listing Five]
Thread spinner; // the thread doing the processing
public void userHitCancel() {
spinner.suspend(); // whoa!
if (askYesNo("Really Cancel?"))
spinner.stop(); // stop it
else
spinner.resume(); // giddyap!
}
[Listing Six]
class CalcThread extends Thread {
private double Result;
public void run() {
Result = calculate();
}
public double result() {
return Result;
}
public double calculate() {
// ...
}
}
class Join {
public static void main(String[] args) {
CalcThread calc = new CalcThread();
calc.start();
doSomethingElse();
try {
calc.join();
System.out.println("result is "
+ calc.result());
} catch (InterruptedException e) {
System.out.println("No answer: interrupted");
}
}
}
最后小編給大家準(zhǔn)備了一整套大神的視頻教程,全部免費(fèi)分享給大家
《Java300 集》 由高淇、裴新、李毅老師歷經(jīng)兩年錄制而成。整個教學(xué)視頻從零基礎(chǔ)開始講解,不僅僅注重實(shí)用性、同時注重底層原理講解(內(nèi)存分析、數(shù)據(jù)結(jié)構(gòu)、JDK 源代碼解讀),讓大家不僅快速用于實(shí)戰(zhàn)而且內(nèi)功扎實(shí)。
本書涵蓋了《Java300 集》的核心內(nèi)容。整套視頻由多個項(xiàng)目穿插講解,從零基礎(chǔ)編程寫游戲、手寫 WEB 服務(wù)器、手寫 ORM框架,內(nèi)容覆蓋工作和學(xué)習(xí)的方方面面。并且已經(jīng)被北京大學(xué)教授推薦為學(xué)習(xí) JAVA 必看視頻:
第一階段 :Java基礎(chǔ)
1.認(rèn)知基礎(chǔ)課程
2. java入門階段
3. 面向?qū)ο缶幊?/p>
4. 飛機(jī)小項(xiàng)目
5. 面向?qū)ο蠛蛿?shù)組
6. 常用類
7. 異常機(jī)制
8. 容器和數(shù)據(jù)結(jié)構(gòu)
9. IO流技術(shù)
10. 多線程
11. 網(wǎng)絡(luò)編程
12. 手寫服務(wù)器
13. 注解和反射
14. GOF23種設(shè)計模式
15. 正則表達(dá)式
16. JDBC數(shù)據(jù)庫操作
17. 手寫SORM框架
18. JAVA10新特性
19.數(shù)據(jù)結(jié)構(gòu)和算法
20. JVM虛擬機(jī)講解
21. XML技術(shù)解析
第二階段:數(shù)據(jù)庫開發(fā)全套課程
1.Oracle和SQL語言
2.Mysql快速使用
3.PowerDesigner使用
4.JDBC數(shù)據(jù)庫
5.Mysql優(yōu)化
6.oracle深度講解
第三階段:網(wǎng)頁開發(fā)和設(shè)計
1.HTML基礎(chǔ)
2.CSS基礎(chǔ)
3.JavaScript編程
4.jQuery
5.easyUI
第四階段:Servlet和JSP實(shí)戰(zhàn)深入課程
1.Servlet入門和Tomcat
2.request和response對象
3.轉(zhuǎn)發(fā)和重定向_Cookie
4.session_Context對象
5.JSP
6.用戶管理系統(tǒng)
7.Ajax技術(shù)
8.EL和JSTL標(biāo)簽庫
9.過濾器
10.監(jiān)聽器
第五階段:高級框架階段
1.Mybatis
2.Spring
3.Spring MVC
4.SSM框架整合
5.RBAC權(quán)限控制項(xiàng)目
6.Hibernate3
7.Hibernate4
8.jFinal
9.Shiro安全框架
10.Solr搜索框架
11.Struts2
12.Nginx服務(wù)器
13.Redis緩存技術(shù)
14.JVM虛擬機(jī)優(yōu)化
15.Zookeeper
第六階段:微服務(wù)架構(gòu)階段
1.Spring Boot
2.Spring Data
3.Spring Cloud
第七階段:互聯(lián)網(wǎng)架構(gòu)階段
1.Linux系統(tǒng)
2.Maven技術(shù)
3.Git
4.SVN
5.高并發(fā)編程
6.系統(tǒng)和虛擬機(jī)調(diào)優(yōu)
7.JAVA編程規(guī)范
8.高級網(wǎng)絡(luò)編程
9.Netty框架
10.ActiveMQ消息中間件
11.單點(diǎn)登錄SSO
12.數(shù)據(jù)庫和SQL優(yōu)化
13.數(shù)據(jù)庫集群和高并發(fā)
14.Dubbo
15.Redis
16.VSFTPD+NGINX
第八階段:分布式億級高并發(fā)電商項(xiàng)目
1.基于SOA架構(gòu)介紹
2.VSFTPD和Nginx和商品新增
3.商品規(guī)格參數(shù)管理
4.Jsonp
5.CMS模塊
6.廣告位數(shù)據(jù)緩存
7.SolrJ和SolrCloud
8.商品搜索
9.商品詳情
10.單點(diǎn)登錄
11.購物車
12.訂單系統(tǒng)
13.分庫和分表
14.分布式部署
第九階段:畢設(shè)項(xiàng)目第一季
1. 電子政務(wù)網(wǎng)
2. 企業(yè)合同管理系統(tǒng)
3. 健康管理系統(tǒng)
4. 商品供應(yīng)管理系統(tǒng)
5. 土地檔案管理系統(tǒng)
6. 聊天室設(shè)計和實(shí)現(xiàn)
7. 碼頭配套和貨柜管理系統(tǒng)
8. 百貨中心供應(yīng)鏈系統(tǒng)
9. 病歷管理系統(tǒng)
10. 超市積分管理系統(tǒng)
11. 動漫論壇
12. 俄羅斯方塊
13. 個人博客系統(tǒng)
14. 固定資產(chǎn)管理系統(tǒng)
15. 影視創(chuàng)作論壇
16. 屏幕截圖工具
17. 超級瑪麗游戲
18. 飛機(jī)大戰(zhàn)游戲
19. 雷電
第十階段:畢設(shè)項(xiàng)目第二季
獲取方式:請大家轉(zhuǎn)發(fā)本文+關(guān)注并私信小編 “ 資料 ”,即可免費(fèi)獲取。1. 微博系統(tǒng)
2. 寫字板
3. 坦克大戰(zhàn)
4. 推箱子
5. 電腦彩票系統(tǒng)
6. 記賬管理系統(tǒng)
7. 新聞發(fā)布系統(tǒng)
8. 醫(yī)院掛號系統(tǒng)
9. 倉庫管理系統(tǒng)
10. 停車場管理系統(tǒng)
11. 網(wǎng)絡(luò)爬蟲
12. 酒店管理系統(tǒng)
13. 企業(yè)財務(wù)管理系統(tǒng)
14. 車輛管理系統(tǒng)
15. 員工信息管理系統(tǒng)
16. 旅游網(wǎng)站
17. 搜索引擎
18. 進(jìn)銷存管理系統(tǒng)
19. 在線考試系統(tǒng)
20. 物流信息網(wǎng)
21. 住院管理系統(tǒng)
22. 銀行柜員業(yè)務(wù)績效系統(tǒng)