java是一种跨平台、适合于分布式计算机环境的面向对象编程语言。具有以下特性:简单性、面向对象、分布性、解释性、可靠、安全、平台无关、可移植性、高性能、多线程、动态性等特点。

  面向过程和面向对象可以用以下两种公式表示:

  面向过程:程序=算法+数据

  面向对象:程序=对象+属性

  所有面向对象语言都有以下三个概念:继承、多态和封装;

  继承:一个对象直接使用另一个对象的属性和方法。

  多态:多种表现形式,java的多态主要有两种表现形式:重载和重写。

  封装:封装是一个自主性的框架,把对象的属性和方法放在一起,形成一个整体。

  Java的平台无关性:实现java的平台无关性主要依靠JVM(java虚拟机)。JVM是一种抽象的机器,附着于具体的操作系统之上。它本身具有一套虚拟机器指令,并有自己的栈、寄存器组等。

JVM上,有一个Java解释器,用它来解释Java编译器编译后的程序。所以不同的平台只要安装了java解释器以后,就能运行这个程序。

  Java程序的可靠性、安全性:

    1、Java是强类型语言,要求用显示的方法声明。这样保证了编译器可以发现方法调用错误,保证程序更加可靠。

    2、Java不支持指针,杜绝了内存的非法访问。

    3、Java的自动单元收集功能,可以防止内存丢失等动态内存分配导致的问题。

    4、Java解释器运行时实施检查,可以发现数组和字符串的访问越界。

    5、Java提供了异常处理机制,程序员可以把错误代码放在一起,这样可以简化错误处理任务,便于恢复。

    

java的特点的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. html跳页面传值

    从a.html跳转到b.html并且把a.html的值name传入b.html  在a.html页面,url路径后面带参数,参数与url之间用?隔开 window.location.href = &q ...

  2. Grunt相关

    安装Grunt 在命令行输入npm install -g grunt-cli

  3. css实现三角形标

    .iszb{ position: absolute;top: -75px;right:-75px;text-align: center;color: red; width: 150px;height: ...

  4. django 之admin使用

    Admin注册 内容发布的部分由网站的管理员负责查看.添加.修改.删除数据,开发这些重复的功能是一件单调乏味.缺乏创造力的工作,为此,Django能够根据定义的模型类自动地生成管理模块. 1)准备工作 ...

  5. SQL server 数据库的数据完整性

    存储在数据库中的所有数据值均正确的状态.如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性. 详细释义 数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或 错误信息 ...

  6. 输入框占位符placeholder

    占位符placeholder的益处不用多说,但是很不幸的是,在IE8之前的浏览器里是无法实现placeholder这一属性的,所以在需要兼容IE8之前的浏览器的情况下,我们不得不想办法模拟实现plac ...

  7. uva-10026-贪心

    题意:有N项工作,每项工作完成需要n天,如果不开始做每天罚fee,开始做即不罚钱,求任务的执行顺序,使得罚钱最少.如果有多组答案,取下标排列最小的那组 解题思路: 考虑工作tn(dn,fn) , 假如 ...

  8. 1. easyui tree 初始化的两种方式

    /** * 查询角色分类 */function queryRoleCategoryTree(selectId) { var url = basePath + 'rest/roleCategoryCon ...

  9. 浏览器和对象的dom属性

    1 DOM对象:var obj=document.getElementById('*'); obj.scrollWidth 是对象的实际内容的宽,不包边线宽度,会随对象中内容的多少改变(内容多了可能会 ...

  10. NDK samples以及部分博客

    谷歌的ndk samples Android NDK samples with Android Studio http://developer.android.com/ndk 引用C/C++文件请参考 ...