戏说Java

本文只是个人闲余之际写的,查阅了些许资料,仅当娱乐。如有雷同,纯属巧合。
 
如果要学好一个东西,就应该要把他拟人化,当做一个你的好朋友,对他产生兴趣,那么你自然而然就会学习好他了。俗话说:兴趣是最好的老师。
 
真是一个听起来很有道理的话,而且也很有趣,不妨试一下。
 
现在我要学习Java,那么我就要和Java交朋友。
 
首先,作为一个朋友,我应该对他要有所了解吧。
 

Java的发展

诞生

问问度娘(百度),度娘告诉我,Java诞生于1992年的一个夏天,最初的名字叫Oak,他的父亲是Sun公司(给钱的金主),他的母亲(给他生命的人)是詹姆斯 高斯林(James Gosling),就是下面这个大神
 
 
这个项目叫做Green,可能他的母亲希望他像绿色一样孕育生命,而且像Oak(橡树)一样基业长青,所以给他取名叫做Oak(橡树)。
 

改名

1995年,Java三岁那年,由于受到时代的召唤,Java飞速发展,并且有了一个形影不离的兄弟Applet,这个时候Oak正式改名为Java(因为Oak已经被人抢先注册了,真是可恶啊,肯定是故意的,想借机坑SUN公司一笔,老高带着朋友在公司楼下喝着Java咖啡,然后——
一拍大腿,好吧,就叫Java吧,然后。。。就叫Java了,图案是一杯热咖啡。。。)
 
 
 

第一个里程碑(小学)

1996年,Java四岁那年(幼儿园毕业,准备上学——学前班啦)SUN公司发布了Java的第一个JDK1.0,这是Java发展史的第一个里程碑,标志这Java成为独立开发工具。
 

第二个里程碑(初中)

2004年-2005年,java已经12,13岁的时候(上初中啦),Java发展史的第二个里程碑,Java又一次改名(J2SE,J2ME,J2EE,改名为JavaSE,JavaME,JavaEE),并且有了一个代号“Tiger”(初中的叛逆少年,所以给了“老虎”这个称号,吼吼)
 

第三个里程碑(高中)

2006年,Java这小老虎14岁,初中毕业,准备进高中,已经略显成熟,迎来Java发展史的第三个里程碑,Java开源啦。Java技术作为免费软件对外发布,之后,全世界开发人员都可以对Java源代码进行修改。
 

第四个里程碑(大学)

2009年,Java已经17岁了,高中毕业,准备进入大学,第四个里程碑,穷爸爸SUN走了,来了一个富爸爸Oracle。但是高妈妈很贞洁,秉持“一女不事二夫”的原则,还有“性格不合”等因素(一般离婚大多数的借口就是“性格不合”啊),高斯林离开了Oracle。
 
 
ok,作为一个朋友,了解到这里,基本上算是认识Java啦,至于Java的“性格”(特性),则需要以后慢慢了解啦。
 
一些大致的特点,可以提前说一下啊,Java为了简洁和安全稳定,在C++的基础上,去掉了一些不常用的特性,形成了Java(所以Java也可以叫做C++-)
 

Java的性格

 

简单

比如,Java去掉了C++的指针(这个可以伪造的不安全因素),多继承(避免混乱),go to语句(也是避免混乱),Java不使用主文件(免去预处理程序),Java没有结构体(数组和串都是对象),自动内存回收。
 

面向对象

Java是面向对象的语言,代码复用的更加方便,类——用来封装代码,对象——用来封装数据。
 

稳健

Java是强类型的语言,在编译阶段就可以检测出类型不匹配的问题。Java不支持指针,消除了重写存储和讹误数据的可能。
 

可移植

Java只需要一次编写,便可以到处跑,可以在各个平台跑。
 
多线程,动态,高性能,安全等
 
 
ok,就到这里。
 
 

【原】戏说Java的更多相关文章

  1. 原子类java.util.concurrent.atomic.*原理分析

    原子类java.util.concurrent.atomic.*原理分析 在并发编程下,原子操作类的应用可以说是无处不在的.为解决线程安全的读写提供了很大的便利. 原子类保证原子的两个关键的点就是:可 ...

  2. 点单登录原理和java实现简单的单点登录

    引用自:http://blog.csdn.net/zuoluoboy/article/details/12851725 摘要: 单点登录(SSO)的技术被越来越广泛地应用到各个领域的软件系统当中.本文 ...

  3. 戏说Java多线程

    戏说Java多线程. package com.cmp.chengfu.app.jdk6.desktop; import java.awt.Desktop; import java.io.File; i ...

  4. Java 原子类 java.util.concurrent.atomic

    Java 原子类 java.util.concurrent.atomic 1.i++为什么是非线程安全的 i++其实是分为3个步骤:获取i的值, 把i+1, 把i+1的结果赋给i 如果多线程执行i++ ...

  5. 【原】Java学习笔记026 - 集合

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...

  6. 【原】Java学习笔记023 - 字符串缓冲区_正则表达式

    package cn.temptation; import java.util.Arrays; public class Sample01 { public static void main(Stri ...

  7. 【原】Java学习笔记022 - 字符串

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 字符串 // 定义 ...

  8. 【原】Java学习笔记013 - 阶段测试

    package cn.temptation; import java.util.Scanner; public class Sample01 { public static void main(Str ...

  9. 【原】Java学习笔记004 - 运算符

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 运算符:对常量 或 ...

随机推荐

  1. .Net Core在Middleware中解析RouteData

    在ASP.Net Core中,如果直接在Middleware中获取RouteData返回的是空值,这是因为RouterMiddleware还没执行.但有些情况下需要获取RouteData,这要怎么做呢 ...

  2. 程序媛计划——python正则表达式

    #定义 正则表达式是对字符串操作的一种逻辑公式,通过它我们能筛选过滤出我们需要的内容,如判断一串数字是否是电话号码. #原理 先把正则表达式的字符串转换成 Pattern 对象,接着用这个对象处理文本 ...

  3. python del 方法的使用

    在Python 的自带函数中 del 函数是一个非常特殊但是又非常使用的函数 my_list = [1,2,3] my_dict = {"name":"lowman&qu ...

  4. [Virus Analysis]恶意软件分析(二)玩出花的批处理(中)

    本文作者:i春秋作家——Sp4ce 0×01上一篇文章部分 首先是文件目录 整理后的目录 整理前的部分文件代码 update.bat %%Q %%Q %%Q %%Q %%Q %%Q %%Q %%Q % ...

  5. 使用泛型SwingWorker与EDT事件分发线程保持通讯

    为什么要使用SwingWorker 在swing开发中,如果一个应用程序,执行一些任务,需要大量的时间来完成,比如下载一个大文件或执行一个复杂的数据库查询. 我们假设这些任务是由用户使用一个按钮触发的 ...

  6. Python小白学习之路(十九)—【文件操作步骤】【文件操作模式】

    一.文件操作步骤 step1:打开文件,得到文件句柄并赋值给一个变量step2:通过句柄对文件进行操作step3:关闭文件 举例: a = open('hello world', 'r', encod ...

  7. linux安装应用程序

    实验:为 Linux 主机安装应用程序   环境:vmware workstation 14  . redhad-server-6.4 需求:1.使用 RPM 包的方式安装 Mozilla Firef ...

  8. 【xsy1097】 拼图 构造题

    题目大意:请你使用n个图形拼成一个矩形.要求:①这每个图形都由1×1的小正方形组成,而且第i个图形由i个小正方形组成.②除了第1个和第2个图形以外,任意一个图形的所有小正方形,不都在一条直线上. 数据 ...

  9. 【xsy1232】Magic 最小割

    题目大意:给你一个$n$个点,$m$条有向边的图,每个点有一个点权$a_i$,同时你可以用$b_i$的代价将$a_i$变为$0$ 另外你要付出$\sum\limits_{i=1}^n\max\limi ...

  10. 【NOIP2013】 华容道 bfs预处理+bfs

    这一题我们考虑一个最裸的算法: 我们设$dp[i][j][k][l]$表示当前棋子在$(i,j)$且空格在$(k,l)$时的最小步数 然后显然随便转移一下就好了,时间复杂度为$O(q(nm)^2)$. ...