Java应用的理解
一、程序
对每个程序来说,不管用什么语言开发出来的,他的功用分为三种:
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应用的理解的更多相关文章
- Java基础之理解Annotation(与@有关,即是注释)
Java基础之理解Annotation 一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata) ...
- Java 集合深入理解(8):AbstractSequentialList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天有点无聊,来学学 AbstractSequentialList 解解闷 吧! AbstractSequentialLi ...
- Java 集合深入理解(7):ArrayList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天心情有点美丽,学学 ArrayList 放松下吧! 什么是 ArrayList ArrayList 是 Java 集合 ...
- Java 集合深入理解(4):List<E> 接口
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 蓝瘦!香菇! 连着加班几天,醉了.学学 List 放松下! 在 Java 集合深入理解:Collection 中我们熟悉了 ...
- java线程安全理解
java线程安全理解 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. ...
- java常量池理解
String类两种不同的创建方式 String s1 = "zheng"; //第一种创建方式 String s2 = new String("junxiang" ...
- java多线程的理解
java多线程的理解 线程的5种状态:新建,就绪,运行,阻塞,死亡. Thread.sleep:线程 运行状态 转为 阻塞状态,(其它线程启动运行) Thread.yield: 线程 运行 ...
- 学习java的阶段性理解(其它语言也一样)
打算从今天开始学java啊,待会滚去找资料了.现在谈一下学习java阶段性的理解.由于现在对java真的啥也不知道啊,不过还是要瞎鸡儿写点自己的看法,以下看法应该也使适用于其它语言: 第一阶段,入门级 ...
- 谈谈你对 Java 平台的理解
声明 本篇所涉及的提问,正文的知识点,全都来自于杨晓峰的<Java核心技术36讲>,当然,我并不会全文照搬过来,毕竟这是付费的课程,应该会涉及到侵权之类的问题. 所以,本篇正文中的知识点, ...
- Java六大必须理解的问题
Java六大必须理解的问题 对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列.内容 ...
随机推荐
- 利用sklearn的Pipeline简化建模过程
很多框架都会提供一种Pipeline的机制,通过封装一系列操作的流程,调用时按计划执行即可.比如netty中有ChannelPipeline,TensorFlow的计算图也是如此. 下面简要介绍skl ...
- redis的单线程模型
redis的单线程模型 redis使用文本事件处理器file event handler ,整个文件事件处理器是单线程的, 所以才叫做单线程模型,他采用IO多路复用机制同时监听多个socket,根据s ...
- [CF544D]Destroying Roads_最短路_bfs
D. Destroying Roads 题目大意: In some country there are exactly n cities and m bidirectional roads conne ...
- js报Uncaught SyntaxError: Unexpected token <错误 解决方法
js报Uncaught SyntaxError: Unexpected token <错误 解决方法 错因 js被shiro的拦截器拦下,访问不了 #shiro的配置 shiro: hash-a ...
- c++ erase 中的坑
先看一段正常的代码 #include <iostream> #include <string> using namespace std; int main() { " ...
- 1-N(1的总数)找规律
见:https://blog.csdn.net/dormousenone/article/details/75208903 #define IOS ios_base::sync_with_stdio( ...
- mysql-tpcc测试
os: centos 7.4 db: mysql 5.7 software: tpcc-mysql TPC-C是专门针对联机交易处理系统(OLTP系统)的规范. tpcc-mysql是percona基 ...
- Java EE javax.servlet中的ServletContext接口
ServletContext接口 public interface ServletContext (https://docs.oracle.com/javaee/7/api/javax/servlet ...
- flume收集日志直接sink到oracle数据库
因为项目需求,需要保存项目日志.项目的并发量不大,所以这里直接通过flume保存到oracle 源码地址:https://github.com/jaxlove/fks/tree/master/src/ ...
- 用eclipse启动tomcat时报Could not publish server configuration for Tomcat v8.0 Server at localhost..错误
网上的解决方法是: 1.如果是使用的eclipse tomcat 插件,需要在你的工作空间 找到如下文件:.metadata.plugins\org.eclipse.wst.server.cor\e\ ...