何俊林 2019-11-11
Java之父高斯林是一位加拿大的计算机天才。
他创造了伟大的编程语言——Java,在TIOBE排行榜上,Java常年排名第一。
现在这位64岁高龄的祖师爷依然战斗在编程最前线,宝刀不老。
之算是Java之父,也难逃中老年危机。
高斯林曾在Facebook上发表了一段言论:
我曾在面试的时候被HR告知,“通常我们不招你这种年龄的程序员,但你的情况特殊(指的是他Java之父的身份),所以对你特殊考虑。”
有些程序员开始表示同情高斯林的遭遇,中老年危机找不到工作。
但是,人家找工作可是不一般呀!
有人找不到工作是找不到一个年薪十几万的工作。但这位祖师爷这里人家找不到的是年薪五百万的工作!
这和有些女神经常感叹,找不到男朋友有点类似。
有个程序员表示,祖师爷也可以找个大学去教书,将自己的毕生所学传给下一代。
还有一个程序员网友表示,我如果哪天有幸收编程的徒弟,就找高斯林的画像挂墙上,他们要拜祖师爷。
在编程的过程中,难免要在程序多加入一些代码,这势必将让程序复杂性增加。
但是你没有多写入一些代码,用户体验程序就会很复杂。
高斯林曾谈论过计算机编程艺术,他认为和精力守恒定理一样:你投入到程序中的精力越多,用户使用时遇到的麻烦和折腾的精力就会越少,程序员要做的,正是在开发端和用户端之间尽量平衡开发和用户的复杂度。
近日,有程序员网友曝光了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 集》 由高淇、裴新、李毅老师历经两年录制而成。整个教学视频从零基础开始讲解,不仅仅注重实用性、同时注重底层原理讲解(内存分析、数据结构、JDK 源代码解读),让大家不仅快速用于实战而且内功扎实。
本书涵盖了《Java300 集》的核心内容。整套视频由多个项目穿插讲解,从零基础编程写游戏、手写 WEB 服务器、手写 ORM框架,内容覆盖工作和学习的方方面面。并且已经被北京大学教授推荐为学习 JAVA 必看视频:
第一阶段 :Java基础
1.认知基础课程
2. java入门阶段
3. 面向对象编程
4. 飞机小项目
5. 面向对象和数组
6. 常用类
7. 异常机制
8. 容器和数据结构
9. IO流技术
10. 多线程
11. 网络编程
12. 手写服务器
13. 注解和反射
14. GOF23种设计模式
15. 正则表达式
16. JDBC数据库操作
17. 手写SORM框架
18. JAVA10新特性
19.数据结构和算法
20. JVM虚拟机讲解
21. XML技术解析
第二阶段:数据库开发全套课程
1.Oracle和SQL语言
2.Mysql快速使用
3.PowerDesigner使用
4.JDBC数据库
5.Mysql优化
6.oracle深度讲解
第三阶段:网页开发和设计
1.HTML基础
2.CSS基础
3.JavaScript编程
4.jQuery
5.easyUI
第四阶段:Servlet和JSP实战深入课程
1.Servlet入门和Tomcat
2.request和response对象
3.转发和重定向_Cookie
4.session_Context对象
5.JSP
6.用户管理系统
7.Ajax技术
8.EL和JSTL标签库
9.过滤器
10.监听器
第五阶段:高级框架阶段
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虚拟机优化
15.Zookeeper
第六阶段:微服务架构阶段
1.Spring Boot
2.Spring Data
3.Spring Cloud
第七阶段:互联网架构阶段
1.Linux系统
2.Maven技术
3.Git
4.SVN
5.高并发编程
6.系统和虚拟机调优
7.JAVA编程规范
8.高级网络编程
9.Netty框架
10.ActiveMQ消息中间件
11.单点登录SSO
12.数据库和SQL优化
13.数据库集群和高并发
14.Dubbo
15.Redis
16.VSFTPD+NGINX
第八阶段:分布式亿级高并发电商项目
1.基于SOA架构介绍
2.VSFTPD和Nginx和商品新增
3.商品规格参数管理
4.Jsonp
5.CMS模块
6.广告位数据缓存
7.SolrJ和SolrCloud
8.商品搜索
9.商品详情
10.单点登录
11.购物车
12.订单系统
13.分库和分表
14.分布式部署
第九阶段:毕设项目第一季
1. 电子政务网
2. 企业合同管理系统
3. 健康管理系统
4. 商品供应管理系统
5. 土地档案管理系统
6. 聊天室设计和实现
7. 码头配套和货柜管理系统
8. 百货中心供应链系统
9. 病历管理系统
10. 超市积分管理系统
11. 动漫论坛
12. 俄罗斯方块
13. 个人博客系统
14. 固定资产管理系统
15. 影视创作论坛
16. 屏幕截图工具
17. 超级玛丽游戏
18. 飞机大战游戏
19. 雷电
第十阶段:毕设项目第二季
1. 微博系统
2. 写字板
3. 坦克大战
4. 推箱子
5. 电脑彩票系统
6. 记账管理系统
7. 新闻发布系统
8. 医院挂号系统
9. 仓库管理系统
10. 停车场管理系统
11. 网络爬虫
12. 酒店管理系统
13. 企业财务管理系统
14. 车辆管理系统
15. 员工信息管理系统
16. 旅游网站
17. 搜索引擎
18. 进销存管理系统
19. 在线考试系统
20. 物流信息网
21. 住院管理系统
22. 银行柜员业务绩效系统