从头梳理 Java 的诞生,语言特点-阅读笔记

JAVA: Java 是一种可以撰写 跨平台-应用软件-的面向对象的程序设计语言,
它是有 sun Microsystems 公司与 1995年推出的 Java程序设计语言和Java平台(JavaSE javaEE JavaME)

Java的 前身 是Oak ,oak开发历时18个月,目标定位事作为家用电器等小型系统的编程语言,用于家电的控制和通讯问题,后来发现市场需求不高,就准备放弃。但是在放弃的时候发现 互联网应用发展给该系统提供了新的发展契机。Sun 看到了OAK 在计算机网络上的广阔应用前景,于是改造了oak ,以java命

很枯燥的概念,但是我觉得我们从事Android开发,应该对自己所应用的语言有一点基本的了解。

Java语言的特点 简单性,平台无关性,面向对象性,分布式,安全性,支持多线程,健壮性,动态性。

简单性:

 java的简单性是于C++相比较。Java不在支持运算符的重载,多继承 及 广泛的自动强制等 容易混肴和极少使用的特性。(把一些不比较的特性给去除了),增加了内存空间自动垃圾收集的功能,复杂性的省略和使用功能的增加使程序开发变得简单而又可靠。

平台无关性:

平台无关性 是Java最吸引人的地方,Java是一种网络语音,而网络上充满了各种不同类型的机器和操作系统。Java采用了解释执行而不是编译执行的运行环境,
首先——代码编译成字节码 ——然后装载与校验——在解释成不同的机器码来执行。即 JAVA虚拟机 的思想。屏蔽了具体的平台环境的要求。

面向对象:

面向对象:封装 、继承 、多态 等特性优点。Java在保留这些优点的基础上,又具有动态编程的特性。更能发挥出面向对象的优势。
刚开始学Java的时候,面向对象 的概念被反复强调。如今入行三年之后,回头 然后解释不清楚 面向对象的概念。

(面相对象 注释)面向对象三大基本特征,五大基本原则

封装特性:也就是把客观的事物封装成抽象的类,并且类可以把自己的数据或方法只让可信的类或者对象进行操作,对不可信的类进行隐藏。

继承特性:就是让某个类型的对象获得另一个类型的属性的方法。继承是指这样的一种能力,它可以使用现有类的所用功能,并可以在无需重新编写这些类的情况下,对原有类的方法进行扩展。通过继承创建的类被称为 子类 派生类,被继承的类被称为 基类、父类 超类、
继承分为两类,实现继承 与 接口继承
实现继承是指直接使用基类的属性和方法,而无需额外编程。
接口继承是指仅仅使用 属性,和方法的名称,子类必须提供实现能力。(接口继承就为了达到让子类必须执行某些操作的功能)

多态特性:开始这个是最容易搞混的地方,所谓多态就是指一个类实例的相同方法在不同情形有不同的表现。多态机制具有不同内部结构的对象,可以共同使用相同外部接口,这意味着 针对不同对象的具体操作不同,但可以通过一个公共类,通过相同的方式予以调用。
例子:猫、狗。都有 叫 和 吃的 方法行为。但是相同的方法行为所执行的具体操作不同,如:猫吃的猫粮,狗吃的是狗粮。但是她们同属于 宠物 这个基类。宠物的实例,具体 吃 ,和叫的方法。那么调用猫,或狗 吃的方法。可以通过调用基类 吃 的方式调用。

面相对象六大基本原则:参考[这里写链接内容](http://blog.csdn.net/qq_30974087/article/details/54601571)

分布式:

Java建立在扩展 TCP/IP网络平台上,库函数提供了用HTTP和FTP 协议传输和接受信息的方法,Java应用程序通过URL对象访问网络资源。

安全性

Java有简历在公共密钥技术基础上的确认技术,提供的足够的安全保证。

支持多线程

多线程机制使应用程序能能同时进行不同的操作,处理不同的时间,Java有一套成熟的同步语言(稍后会总结Java多线程技术),保证对共享数据的正确操作。

健壮性

java是强类型语言,编译器和类载入器保证所有方法调用的正确性。
java没有指针,不能引用内存指针,避免了内存或数组越界访问。(会不会很疑惑,程序开发中的空指针是怎么回事)注释:1、确定一点,java也可以说有指针,但是在java中被称为 引用  就是内存地址的值拿到该引用就相当于得到了该内存地址存入的对象。2、java可以使用指针(引用)。但是不能修改指针,同样拿C++对比:pointer++在java 中是错误的(Integer,Float除外,因为java拥有自动封箱解箱特性)例如:java可以做飞机到达指定位置,但是不能自己操作飞机(为了安全)。C++可以自己操作飞机。

注释 封箱 解箱:基本数据类型包装到对象中作为对象来使用,这是封箱,这个封箱过程是java自动实现,也就叫做自动封箱。
int类型可以作为integer类型使用,这叫做自动封箱
integer类型可以作为int类型使用,这叫做自动拆箱(前文中的 integer,Float除外,就是java可以自动拆箱。改变为 int、float类型。而int、float类型的操作符 ++是自增操作符。程序不会报错)

java进行自动内存回收,编程人员无法意外释放内存,不需要判断应该在何处释放内存。(其实开发中,可以 使用 obj = null 或者 调用System.gc() 来建议内存回收器开始工作)稍后会加入内存回收机制详解
java在编译和运行时,都要对可能出现的问题进行检查。

下面可能是这篇文章唯一的干活:

java程序的工作过程:

java语言包括三种核心机制:Java虚拟机、垃圾回收机制和代码安全监测
java程序开发过程中大致分为以下三个阶段:
    1、编写java源文件,将编译好的源程序以扩展名“.java”保存起来,即保存成*.java文件
    2、编译java源程序,使用java编译器编译成“.java”源程序,从而得到字节码文件 *.class .
    3、运行java程序。

一个APK,从安装到启动,程序做什么操作

在Android系统启动的过程中,系统会通过PackageManagerService来扫描特定的目录,以便可以对保存在里面的apk进行安装。PackageManagerService主要做两件事情:
- 解析这个apk的配置文件AndroidManifest.xml以便获得它的安装信息
- 为这个apk分配Linux用户ID和用户组ID以便apk在系统中可以获取到合适的运行权限

猜你喜欢

转载自blog.csdn.net/qq_30974087/article/details/78559989