Java之父高斯林是一位加拿大的計算機天才。
他創(chuàng)造了偉大的編程語言——Java,在TIOBE排行榜上,Java常年排名第一。
現(xiàn)在這位64歲高齡的祖師爺依然戰(zhàn)斗在編程最前線,寶刀不老。
Java之父找不到工作?就算是Java之父,也難逃中老年危機。
高斯林曾在Facebook上發(fā)表了一段言論:
我曾在面試的時候被HR告知,“通常我們不招你這種年齡的程序員,但你的情況特殊(指的是他Java之父的身份),所以對你特殊考慮?!?/p>
有些程序員開始表示同情高斯林的遭遇,中老年危機找不到工作。
但是,人家找工作可是不一般呀!
有人找不到工作是找不到一個年薪十幾萬的工作。但這位祖師爺這里人家找不到的是年薪五百萬的工作!
這和有些女神經常感嘆,找不到男朋友有點類似。
有個程序員表示,祖師爺也可以找個大學去教書,將自己的畢生所學傳給下一代。
還有一個程序員網友表示,我如果哪天有幸收編程的徒弟,就找高斯林的畫像掛墻上,他們要拜祖師爺。
計算機編程藝術在編程的過程中,難免要在程序多加入一些代碼,這勢必將讓程序復雜性增加。
但是你沒有多寫入一些代碼,用戶體驗程序就會很復雜。
高斯林曾談論過計算機編程藝術,他認為和精力守恒定理一樣:你投入到程序中的精力越多,用戶使用時遇到的麻煩和折騰的精力就會越少,程序員要做的,正是在開發(fā)端和用戶端之間盡量平衡開發(fā)和用戶的復雜度。
祖師爺這一段代碼你看懂了嗎?近日,有程序員網友曝光了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");
}
}
}
最后小編給大家準備了一整套大神的視頻教程,全部免費分享給大家
《Java300 集》 由高淇、裴新、李毅老師歷經兩年錄制而成。整個教學視頻從零基礎開始講解,不僅僅注重實用性、同時注重底層原理講解(內存分析、數(shù)據(jù)結構、JDK 源代碼解讀),讓大家不僅快速用于實戰(zhàn)而且內功扎實。
本書涵蓋了《Java300 集》的核心內容。整套視頻由多個項目穿插講解,從零基礎編程寫游戲、手寫 WEB 服務器、手寫 ORM框架,內容覆蓋工作和學習的方方面面。并且已經被北京大學教授推薦為學習 JAVA 必看視頻:
第一階段 :Java基礎
1.認知基礎課程
2. java入門階段
3. 面向對象編程
4. 飛機小項目
5. 面向對象和數(shù)組
6. 常用類
7. 異常機制
8. 容器和數(shù)據(jù)結構
9. IO流技術
10. 多線程
11. 網絡編程
12. 手寫服務器
13. 注解和反射
14. GOF23種設計模式
15. 正則表達式
16. JDBC數(shù)據(jù)庫操作
17. 手寫SORM框架
18. JAVA10新特性
19.數(shù)據(jù)結構和算法
20. JVM虛擬機講解
21. XML技術解析
第二階段:數(shù)據(jù)庫開發(fā)全套課程
1.Oracle和SQL語言
2.Mysql快速使用
3.PowerDesigner使用
4.JDBC數(shù)據(jù)庫
5.Mysql優(yōu)化
6.oracle深度講解
第三階段:網頁開發(fā)和設計
1.HTML基礎
2.CSS基礎
3.JavaScript編程
4.jQuery
5.easyUI
第四階段:Servlet和JSP實戰(zhàn)深入課程
1.Servlet入門和Tomcat
2.request和response對象
3.轉發(fā)和重定向_Cookie
4.session_Context對象
5.JSP
6.用戶管理系統(tǒng)
7.Ajax技術
8.EL和JSTL標簽庫
9.過濾器
10.監(jiān)聽器
第五階段:高級框架階段
1.Mybatis
2.Spring
3.Spring MVC
4.SSM框架整合
5.RBAC權限控制項目
6.Hibernate3
7.Hibernate4
8.jFinal
9.Shiro安全框架
10.Solr搜索框架
11.Struts2
12.Nginx服務器
13.Redis緩存技術
14.JVM虛擬機優(yōu)化
15.Zookeeper
第六階段:微服務架構階段
1.Spring Boot
2.Spring Data
3.Spring Cloud
第七階段:互聯(lián)網架構階段
1.Linux系統(tǒng)
2.Maven技術
3.Git
4.SVN
5.高并發(fā)編程
6.系統(tǒng)和虛擬機調優(yōu)
7.JAVA編程規(guī)范
8.高級網絡編程
9.Netty框架
10.ActiveMQ消息中間件
11.單點登錄SSO
12.數(shù)據(jù)庫和SQL優(yōu)化
13.數(shù)據(jù)庫集群和高并發(fā)
14.Dubbo
15.Redis
16.VSFTPD+NGINX
第八階段:分布式億級高并發(fā)電商項目
1.基于SOA架構介紹
2.VSFTPD和Nginx和商品新增
3.商品規(guī)格參數(shù)管理
4.Jsonp
5.CMS模塊
6.廣告位數(shù)據(jù)緩存
7.SolrJ和SolrCloud
8.商品搜索
9.商品詳情
10.單點登錄
11.購物車
12.訂單系統(tǒng)
13.分庫和分表
14.分布式部署
第九階段:畢設項目第一季
1. 電子政務網
2. 企業(yè)合同管理系統(tǒng)
3. 健康管理系統(tǒng)
4. 商品供應管理系統(tǒng)
5. 土地檔案管理系統(tǒng)
6. 聊天室設計和實現(xiàn)
7. 碼頭配套和貨柜管理系統(tǒng)
8. 百貨中心供應鏈系統(tǒng)
9. 病歷管理系統(tǒng)
10. 超市積分管理系統(tǒng)
11. 動漫論壇
12. 俄羅斯方塊
13. 個人博客系統(tǒng)
14. 固定資產管理系統(tǒng)
15. 影視創(chuàng)作論壇
16. 屏幕截圖工具
17. 超級瑪麗游戲
18. 飛機大戰(zhàn)游戲
19. 雷電
第十階段:畢設項目第二季
獲取方式:請大家轉發(fā)本文+關注并私信小編 “ 資料 ”,即可免費獲取。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. 網絡爬蟲
12. 酒店管理系統(tǒng)
13. 企業(yè)財務管理系統(tǒng)
14. 車輛管理系統(tǒng)
15. 員工信息管理系統(tǒng)
16. 旅游網站
17. 搜索引擎
18. 進銷存管理系統(tǒng)
19. 在線考試系統(tǒng)
20. 物流信息網
21. 住院管理系統(tǒng)
22. 銀行柜員業(yè)務績效系統(tǒng)
