业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地!

从今天开始,我将会持续更新java基础知识,欢迎关注。

java的诞生

说起java的由来也许也是一个比较有意思的事情。20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。sun公司为了抢占市场,就想在这些产品中嵌入一些程序去智能化的操控这些产品,这样就会极大的方便用户。然后呢,java之父,詹姆斯高斯林,所在的一个小组名字叫green~就准备开始搞了,开始计划用c++完成,但是C++程序过于复杂和庞大,并且如何完成跨平台性这个成了一个难题,然后开发了一种名称为Oak(英文翻译为橡木,橡树)的面向对象语言,但是由于这个语言,他们在已有的硬件和软件平台基础上,按照自己所指定的规范,用软件建设了一个运行平台,整个系统除了比C++更加简单之外,没有什么大的区别。然后找硬件生产商,推广他们的新语言,期望硬件厂商根据他们的特定规范生产芯片,但是没有哪家厂商愿意为一个未知的技术去承担风险。随后3年就被搁浅了,直到1995年互联网的蓬勃发展给了Oak机会。因为Oak是一种精简的语言,程序非常小,适合在网络上传输。Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将Oak更名为Java,因为在申请注册商标时,发现Oak已经被人使用了,在想了一系列名字之后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java词语,java来自于印尼的一个爪哇岛,爪哇岛是世界著名的咖啡豆产地,所以我们看到java的图标就是一杯热气腾腾的咖啡~

什么是java?

java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
 
简单性:在开始描述的时候我们就阐述了,java的诞生就是因为c++过于复杂和庞大;
面向对象:Java是一个面向对象的语言。对程序员来说,这意味着要注意应用中的数据和操纵数据的方法(method),而不是严格地用过程来思考;
分布性:Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(Stream)网络连接,所以用户可以产生分布式的客户机和服务器;
编译和解释性:Java编译程序生成字节码(byte-code),而不是通常的机器码;
稳健性:Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。可靠性方面最重要的增强之一是Java的存储模型。异常处理是Java中使得程序更稳健的另一个特征;
安全性:Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器;
可移植性:Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写;
动态性:Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的;
 
 
 
 
文中若有不正之处,欢迎批评指正!
 
 

JAVA基础第一章-初识java的更多相关文章

  1. Java 面向对象编程——第一章 初识Java

      第一章    初识Java 1.  什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...

  2. Java 第一章 初识Java

    第一章笔记 什么是计算机程序:算机为完成某些功能生产的一系列有序指令集合 Java技术包括: java SE:标准版 java EE:企业版 Java ME:移动版 开发Java程序步骤:1.编写 2 ...

  3. java基础第一章

    有一定的基础,但是还是要重新开始,2020.10.6 1.手写Hello World public class HelloWorld{ public static void main(String[] ...

  4. java 基础知识一 初识java

    java  基础知识一初识java 1.java语言的特点 (1)简洁有效(2)可移植性(3)面向对象(4)解释型(5)适合分布式计算 2.java的源文件扩展名为.java 编译后的扩展名为.cla ...

  5. 初识Java——第一章 初识Java

    1. 计算机程序: 为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合. 2. JAVA相关的技术:      1).安装和运行在本机上的桌面程序      2).通过浏览器访问的面向 ...

  6. 深入学习重点分析java基础---第一章:深入理解jvm(java虚拟机) 第一节 java内存模型及gc策略

    身为一个java程序员如果只会使用而不知原理称其为初级java程序员,知晓原理而升中级.融会贯通则为高级 作为有一个有技术追求的人,应当利用业余时间及零碎时间了解原理 近期在看深入理解java虚拟机 ...

  7. JAVA基础第二章-java三大特性:封装、继承、多态

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  8. 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)

    编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...

  9. “全栈2019”Java多线程第一章:认识多线程

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

随机推荐

  1. git如何移除某文件夹的版本控制

    目录结构如下 project bin lib src ...... 执行如下的操作 git add . git commit -m "add bin/ lib/ src/" git ...

  2. Interesting卡常数

    C++ Interesting卡常数 作为一名OIer,在Noip中卡(kǎ 我就爱读kǎ)常数可以说是必备技巧.在此总结一下我所知卡常数的神奇手法: IO优化 fread 和 fwrite ,如果还 ...

  3. linux配置https站点

    配置https站点呢,那就需要https证书,证书从何而来,花钱买?no,no,no,阿里有免费的,只是比较难发现,下面就图文解说一下怎么买免费的阿里https证书 首先阿里云,登录,购买链接———— ...

  4. python中的类

    以下内容是python tutorial的读书笔记: 一.命名空间的分层 二.local赋值语句,nonlocal和global的区别 local赋值语句,它是无法实现对于最里层的作用域的重新绑定的 ...

  5. 妙用this关键字

    妙用this关键字 ## this关键字一般this关键字都是指的是对象的本身,在类的所有方法.构造器都可以拿到this引用,这是jvm"偷偷"帮我们传递进来的引用,指向调用方法对 ...

  6. 【转】java中PriorityQueue优先级队列使用方法

    优先级队列是不同于先进先出队列的另一种队列.每次从队列中取出的是具有最高优先权的元素. PriorityQueue是从JDK1.5开始提供的新的数据结构接口. 如果不提供Comparator的话,优先 ...

  7. Django 项目创建之前的环境搭建

    安装虚拟管理环境 sudo apt install virtualenv 在项目中运行 virtualenv fruitenv 进入到环境中 source fruitenv/bin/activate ...

  8. 修改ZendStudio新建php文件时的模板

    zendstudio默认的模板不适用,可以自己到Window -- preferences -- php -- code style -- code templates -- code -- samp ...

  9. 进阶-Redis 知识梳理

    redis介绍 1.什么是NoSQL NoSQL(统称),泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充. 2.NoSQL数据库的四大分类如下: 键值(K ...

  10. sh 脚本执行sql文件传参数

    一.前言 今天做数据删除,用的命令行输入参数,并且调用执行的sql文件,我采用了sed命令,进行替换. sh脚本如下 #! /bin/sh echo "Please enter the ba ...