# jdk生态

时间 版本 特性 描述
1990年末 萌芽 为下一代智能家电编写通用控制系统(嵌入式)
最初考虑使用c++,但是它太复杂,缺少垃圾回收,可移植性,分布式和多线程等功能
试图对c++进行改造扩展,之后放弃,决定创造一个新语言: Oak
Green计划
1992年 萌芽 Green计划完成了新平台的部分功能,包括 Green操作胸痛,Oak程序涉及语言,类库等
成立 FirstPerson有限公司,它是 Sun公司的全资子公司
机顶盒投标失利,近乎夭折
1994年夏天 破壳 同年秋天,完成第一个 java语言的网页浏览器:WebRunner。
此时Oak商标被注册,因此改名为 java
java意为 爪洼,盛产咖啡
1995年初 问世 公布源码,免费使用 振聋发聩的效果
1996年初 JDK1.0 运行环境: 核心API,集成API,用户界面API,发布技术,虚拟机
开发环境:javac程序
第一个稳定版
1997.2.18 JDK1.1 增加 JIT(即时编译)编译器 效率有了较大提升
1995-1998 探索 1996年,Flash问世,在网页领域比 Applet更简单
java没有一个很好的定位,也没有找到它必须存在的理由
生死攸关摸索期
1998.12 JDK1.2 发布了JSP/Servelt规范,EJB等规范
将JAVA分成 J2EE,J2SE,J2ME三个版本
将API分为三大类:核心API,可选API,特殊API
历史上最重要的JDK版本,挽救了JAVA语言,同时也是JAVA飞速发展的时期
2002.2 JDK1.4 有IBM,Symbian等公司参与,成为发展最快的一个版本
涌现大量开源框架如:Struts,Hibernate,Spring;
涌现大量企业应用服务器,如 webLogic,WebSphere,JBoss等
jdk历史上最为成熟的版本
发展最快的一个版本
2004.10 JDK1.5 更名为:JavaSE5.0,JavaEE,JavaME
增加泛型,增强for语句,可变数量的形参,注解,自动拆箱及装箱等功能
发布新的企业级平台规范,EJB3.0,JSF规范
万众瞩目,万众期待
2006.12 JDK1.6 稳步发展 维持大约2年发布一次新版本的习惯
2009.4.20 挫折 SUN 被 Oracle收购
2007年11月,Google推出了Android,其使用JAVA语言进行开发,这位JAVA的新主人,看来是有备而来
江山已改,大清已亡
2011.7.28 javaSE7 引入二进制整数,支持字符串的switch语句,菱形语法(钻石语法),多异常捕捉,自动关闭资源的try语句 历时五年,王者归来
2014.3.18 JavaSE8 Lambda表达式(函数式编程),流式语句,日期库等新特性 jdk5以来,最大的一次版本升级

# java关键类对象

# Object对象

public class Object {

    private static native void registerNatives();
    static {
        registerNatives();
    }

    public final native Class<?> getClass();

    public native int hashCode();

    public boolean equals(Object obj) {
            return (this == obj);
        }

    protected native Object clone() throws CloneNotSupportedException;

    public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }

    public final native void notify();

    public final native void notifyAll();

    public final native void wait(long timeout) throws InterruptedException;

    protected void finalize() throws Throwable { }

}
  • 本地方法:wait,notify,notifyAll,getClass,clone(子类没有实现Clonable会报错),hashCode
  • toString方法:
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
    

# 获取键盘输入

  1.  Scanner scanner= new Scanner(System.in);
     scanner.next();
    
  2.  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
     bufferedReader.readLine();
    

# 注释

  • 单行注释: //xxxx
  • 多行注释: /* xxxx */
  • 文档注释: /** xxxx */