java,android学习《1》概述

如果程序的数据包涵代码和数据两部分:

面向过程编程 就是以代码为主,用代码控制数据,描述解决问题的方法。

面向过程编程 就是以抽象数据为主,所有处理都围绕数据展开,依赖抽象编程

编程语言知识点:

1 . 流程控制:使用if...else , while, break,continue 代替 过于强大,结构差,不便阅读的goto.

  for, switch,foreach 则可让代码更简洁,清晰。

2.  函数:随着程序代码变得越来越庞大,把握全局逐渐变得困难起来,同时有可能需要多次用到非常相似的操作,于是诞生了函数 。

  把代码的一部分视作一个有机整体,切分出去并为之命名的程序设计机制(便于理解和可重复使用,早期有子程序的称谓)。栈。

3. 错误处理:

  • 用返回值及引用参数传达出错信息。 C,GO采用这一模式
  • 可追加错误类型和可主动触发错误的异常处理机制。

    • C++ ,JAVA,C# 使用throw , try ... catch
    • JAVA,C# 中 可以使用try ... catch ... finally。使用finally,出口只有一个,实现成对操作的无遗漏执行。
    • JAVA 采用检查型异常,要明确声明可能跑出的异常,因为"The Trouble with Checked Exceptions",所以C#未引人。
    • swift此前采用c的模式,2015开发者大会上提到将引入异常处理机制。

4. 命名和作用域(动态作用域、全局作用域、静态作用域),命名空间。public private protected internal

5. 类型:数据如何读取,需要依赖人们为数据附加的类型信息。

  • CPU对操作数的存放方式:Little_endian(从低字节到高字节)和Big_endian(从高字节到低字节)。
  • 以2进制表示10进制,约3.32(log10 / log2)个bit位表示一位。
    • 整形:最高位为符号位。负数采用补码的方式,从而将减法转变为加法。(补码:除符号位外 按位取反 再 加 1  )
    • 浮点:

       以32位为例:

        最高位为符号位,

        之后8位是表示位数的指数部分(0~255,减去127,得到-127~128,-127表下溢出:0,128表上溢出:无穷小或无穷大,剩下的为位数)

        剩下23位为尾数部分,表示小数点以下的部分(通过移动小数点使整数部分变成1后的小数部分)。

        如: 1.75  二进制:1.11 ,无需移位,  符号位:0,指数部分 0111,1111(127),尾数部分:110,0000,0000,0000,0000(0.5 + 0.25)

              3.875 二进制:1.1111 * 2,   符号位:0,指数部分 1000,0000(128右移一位),尾数部分:111,1000,0000,0000,0000

           范围 :-126 / 3.32 ~ 127 / 3.32 约-38~38

               精确度:23/ 3.32 ,6~7位有效数字

        64位则符号位为11位

               范围 :-1022 / 3.32 ~ 1023 / 3.32 约-308~308

               精确度:52/ 3.32 ,15~16位有效数字

  

自定义类型:结构,联合,枚举,类。使用基本数据类型通过组合定义新的类型。

  访问控制:功能上实现封装,代码上解耦

抽象类、接口

泛型、模版

动态类型

6. 容器(数据结构):

7. 对象与类

面向对象编程里的 对象是现实世界的模型。归纳并建立模型的方式多种多样,语言不同,选择也不同,类是最方便的,却不是必须的。

  JS中通过将函数和变量放入散列,以实现将相关联的函数、变量集中到一起的功能。

函数式语言里,则会采用闭包的形式。

   perl 使用包的形式

8.继承

采用封装来建立抽象数据模型,但仅仅只有封装还不够,事物之间是普遍联系的,还需要继承和多态来描述他们之间的关系

 继承需要谨慎使用,否则代码可读性降低,而且扩展困难。遵守 里氏替换原则

C++为多重继承,多重继承使用方便,但会产生冲突,JAVA的解决办法就是只容许单继承,用接口实现多重继承的功能。同时单继承便于统一管理内存。

9. 抽象类,接口  

  抽象类可以有一个抽象方法

  而接口则所有方法都是抽象方法

----------------

程序语言是为了寻求便捷而诞生的,正是因为对便捷的不同需求。 才促成了各种程序语言的发明。

 语言设计的取舍:

易用性与功能,安全性与效率,稳定性与可扩展性。

C:结构化编程 + 高效 + 功能强大 + 易于学习

诞生于1972年

the c programming language 1978由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言

1989.12  第一个完整的C语言标准,简称“C89”,不过人们也习惯称其为“ANSI C”。

最新标准在2011年12月8日发布,称为ISO/IEC9899: 2011,简称为“C11”。

 C++, 1979年发明,最初称“带类的C”,1983年正式更名为C++

重视代码执行效率,语言规范相应的非常复杂。

JAVA 1991年构想,92年初步实现,95年公开发布。

目标是实现体系结构中立,而万维网的发展成就了JAVA,因为万维网需要可移植程序。JAVA对网络编程的意义就如同C对系统编程的意义一样:都是改变世界的革命性力量。

时间: 2024-11-05 19:45:34

java,android学习《1》概述的相关文章

Java基础学习_01 概述及环境配置

一.概述 1.Java语言平台版本 1.1J2SE(Java 2 Platform Standard Edition)标准版 为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发. 1.2.J2ME(Java 2 Platform Micro Edition)小型版 为开发电子消费产品和嵌入式设备提供的解决方案. 1.3.J2EE(Java 2 Platform Enterprise Edition)企业版 为开发企业环境下的应用程序提供的一套解

Java -Android 学习(第三天)

Android程序入口点 在第一天中,"⑤.程序入口点."提到了程序入口点的问题,但是比较笼统, 这里,再说一遍:  <application         android:allowBackup="true"         android:icon="@drawable/ic_launcher"         android:label="@string/app_name"         android:the

Java 集合学习--集合概述

一.集合框架 集合,通常也叫容器,java中有多种方式保存对象,集合是java保存对象(对象的引用)的方式之一,之前学习的数组是保存对象的最有效的方式,但是数组却存在一个缺陷,数组的大小是固定的,但是往往我们在写程序的时候,并不知道需要保存多少个对象,或者是否需要用更复杂的方式来存储对象.而java提供集合类来解决这个问题.java中集合大家族的成员实在是太丰富了,有常用的ArrayList.HashMap.HashSet,也有不常用的Stack.Queue,有线程安全的Vector.HashT

Java -Android 学习(第二天)

今天继续熟悉Eclipse IDE,记录下来点点滴滴 ①.在Import已有项目的时候,提示"invalid project description." 的问题 导致此错误的很有可能的原因之一为: 此项目在eclipse的工作目录之下.所以,将项目拷贝到另一个目录下,然后再尝试导入,大部分情况下是可以解决此问题的. 但是,导入的项目名称却改变了,这个时候,就可能要"重命名"... ②.Eclipse 项目名称重命名 右键→Refactor→Rename:或者使用快捷

Java -Android 学习(第六天)

今天主要是记录一些琐碎的东西,陆续的还会补充进来新遇到的东西. ①.android:gravity和android:layout_gravity 介绍 与 区别: gravity 有以下属性:center(居中),bottom(下),top(上),right(右),left(左).也可以组合使用,比如:left| bottom,表示左下: android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text 相对于view的靠左,靠右等位置

Java -Android 学习(第五天)

Android 布局拾贝 +页面跳转 一.Android 布局拾贝 这两天在界面布局方面的补充(以后可能还会陆续的补充进来): a).ScrollView ScrollView(滚动视图)是指当拥有很多内容,屏幕显示不完时,需要通过滚动轴来显示的视图:ScrollView只支持垂直滚动: 这个视图,在条形的级别的栏目较多时是一个很好的选择. b).View 我们若要想将一个区域划分为不同子区域,并且区域之间有明显的分割(可以是一个分割线:也可以是一定高度的分割区域), 那么使用<View/>不

Java -Android 学习(第四天)

添加新的Activity     我们已经了解到一个Activity就相当于是一个界面(当然了,这样说并不严格,但易于理解). 当我们创建一个安卓应用程序之后,就默认创建了: ①.一个继承Activity的Class(该类会实现父类的Oncreate方法并setContentView(R.layout.activity_main)): ②.一个默认的布局文件(res-layout文件夹下): ③.一个<activity></activity>节点(安卓应用程序清单(AndroidM

Android学习笔记_JNI_c调用java代码

1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // C调用java空方法 public void helloFromJava() { System.out.println("hello from java"); } // C调用java中的带两个int参数的方法 public int Add(int x, int y) { int res

java/android 设计模式学习笔记(14)---外观模式

这篇博客来介绍外观模式(Facade Pattern),外观模式也称为门面模式,它在开发过程中运用频率非常高,尤其是第三方 SDK 基本很大概率都会使用外观模式.通过一个外观类使得整个子系统只有一个统一的高层的接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节.当然,在我们的开发过程中,外观模式也是我们封装 API 的常用手段,例如网络模块.ImageLoader 模块等.其实我们在开发过程中可能已经使用过很多次外观模式,只是没有从理论层面去了解它. 转载请注明出处:http://bl