一、程序

  对每个程序来说,不管用什么语言开发出来的,他的功用分为三种:

    1、接收输入流

    2、处理数据

    3、传出输出流

  接收输入流,包括从网络、文件、用户输入等;传出输出流,包括网络、文件、显示设备等;处理数据,指程序通过算法处理接收到的输入流。

  总体来说,程序是接收输入流,然后算法处理,传出输出流,不断的重复,直到程序结束。

二、Java与C/C++的比较

  Java应用也一样,他是一个程序,也遵循这个程序规律。Java程序跑在jvm上,执行起来和普通程序是一样的,但是编写就有些不一样了。其他语言编程,比如C、C++等是面向操作系统编程的,而java是面向jvm编程,与操作系统无关。操作系统的差异性,jvm已经帮我们处理了。如下图:

  对C、C++程序来说,换个操作系统,代码得做相应的修改编译;而Java来说就可以直接运行。

三、Java层次

  Java应用都是基于jdk api编写的,而jdk api里的有些实现是通过关键字native调用系统接口的。调用系统接口要么是需要用到系统的资源如:输入输出硬件设备资源的使用、线程等其他资源的使用,要么是系统已经有现成的算法实现,而且效率还不错。Java层次如下图:

  由这三者共同组成java应用。

Java应用的理解的更多相关文章

  1. Java基础之理解Annotation(与@有关,即是注释)

    Java基础之理解Annotation 一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata) ...

  2. Java 集合深入理解(8):AbstractSequentialList

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天有点无聊,来学学 AbstractSequentialList 解解闷 吧! AbstractSequentialLi ...

  3. Java 集合深入理解(7):ArrayList

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天心情有点美丽,学学 ArrayList 放松下吧! 什么是 ArrayList ArrayList 是 Java 集合 ...

  4. Java 集合深入理解(4):List<E> 接口

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 蓝瘦!香菇! 连着加班几天,醉了.学学 List 放松下! 在 Java 集合深入理解:Collection 中我们熟悉了 ...

  5. java线程安全理解

    java线程安全理解 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. ...

  6. java常量池理解

    String类两种不同的创建方式 String s1 = "zheng"; //第一种创建方式 String s2 = new String("junxiang" ...

  7. java多线程的理解

    java多线程的理解   线程的5种状态:新建,就绪,运行,阻塞,死亡. Thread.sleep:线程  运行状态 转为  阻塞状态,(其它线程启动运行) Thread.yield:   线程 运行 ...

  8. 学习java的阶段性理解(其它语言也一样)

    打算从今天开始学java啊,待会滚去找资料了.现在谈一下学习java阶段性的理解.由于现在对java真的啥也不知道啊,不过还是要瞎鸡儿写点自己的看法,以下看法应该也使适用于其它语言: 第一阶段,入门级 ...

  9. 谈谈你对 Java 平台的理解

    声明 本篇所涉及的提问,正文的知识点,全都来自于杨晓峰的<Java核心技术36讲>,当然,我并不会全文照搬过来,毕竟这是付费的课程,应该会涉及到侵权之类的问题. 所以,本篇正文中的知识点, ...

  10. Java六大必须理解的问题

    Java六大必须理解的问题 对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列.内容 ...

随机推荐

  1. 【DSP开发】DSP程序优化

    此文是在http://blog.csdn.net/guanchanghui/article/details/1181851基础上,通过自己的学习理解修改而来.暂且算作是自己的原创吧.如有侵权,联系,立 ...

  2. [转帖]Docker学习之Dockerfile命令详解

    Docker学习之Dockerfile命令详解 https://it.baiked.com/system/docker/2436.html 图挺好的 前言 之前,制作镜像的伪姿势搭建已经见过了,今天介 ...

  3. H2内嵌数据库的使用

    H2内嵌数据库的使用 H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制. 同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容. H2还提供兼容模式,可以兼容一些主流 ...

  4. ARC099E. Independence

    考虑一个子问题.给定无向图 $G$,如何判断能否将 $G$ 的点集分成两部分 $S$.$T$ 使得 $S$ 和 $T$ 导出的子图都是完全图? 这个问题把我难住了.解法是考虑 $G$ 的补图 $G'$ ...

  5. SpringBoot起飞系列-数据访问(九)

    一.前言 前边我们已经学些了开发的基本流程,最重要的一步来了,怎么样和数据库交互才是最重要的,毕竟没有数据那就相当于什么也没做,本文我们来学习使用springboot整合jdbc.mybatis.jp ...

  6. 怎么将本地项目放到码云(gitee)上面?图文详解

    git的好处什么的,在此就不多赘述.现在很多公司都在用git了. 那么怎么将本地已经有的项目放到码云(gitee)上呢? 前置条件说明: 1:原来项目所在位置:D:\workspace01\class ...

  7. 取整math函数

    floor(a); ceil(a);  

  8. 老贾的幸福生活day6 整型和布尔值的转换 字符串讲解 for 循环简介

    整型和布尔值的转换: 整型: python 2 整型 int long(长整型) /获取的是整型 python 3 整型 int 获取的是浮点数(小数) 十进制转二进制: print(bin(36)) ...

  9. Lazy的SDL教程 翻译----Lesson 22 Timing

    原文:http://lazyfoo.net/tutorials/SDL/22_timing/index.php Timing 计时 Last Updated 3/10/14 Another impor ...

  10. Jmeter之TCP取样器

    1.在线程组中添加“TCP取样器” 2.填写数据 以下截图是必须配置的 TCPClient classname:  填写TCP报文格式(有三类),默认前缀:org.apache.jmeter.prot ...