• 1.14 HeadFirstJava 前六章读书笔记总结


    前六章介绍了一些java基础的概念,有c/c++基础的话就但觉很简单

    读书笔记:

    0

    0.1 序

    学习的方法: 形成深入的

       · 可视化    · 深入思考  ·情绪深入

    1 基本概念

    1.1 工作方式

    源代码 -》 编译器 -》 输出 -》 虚拟机

      · 虚拟机(JVM)指可以读取并执行字节码的虚拟Java机器

    1.2 java简史

      Java 1.02 : 250个类 ,bug很多 ,applet是重点

      Java 1.1  : 500个类,功能更强,适用于图形化界面

      Java2(1.2-1.4): 2300个类,可达到平台原始速度,可书写企业级应用程序 ,有3个版本:J2ME ,J2SE ,J2EE

      Java5.0  : 3500个类 ,更加容易开发,语言本身有重大优化

      · java1.02称为java1 ,java1.2,1.3, 1.4 称之为java2 ,java1.5称之为java5(或 Tiger)

    1.3 java程序结构

     

    如图 ,类存在于源文件之中 ,方法存在于类之中 ,语句存在于方法之中

    · 源文件 (.java文件):带有类的定义,类表示程序的组件,类的内容必须在花括号(  { } )里面

    . 类 :带有一或多个方法,方法必须在类内声明

    · 方法 :一组指令的集合,可以看做一个函数或者一个过程

    1.4 带有main( ) 的类

    ·虚拟机运行时会寻找命令列所指定的类,然后锁定到一个特定的方法,这个方法就是main( )方法 虚拟结会执行这个方法中的所有指令。

    · Java中所有东西都会属于某一个类,源文件(.java)经过编译后会形成类文件(.class),真正被执行的是 执行程序就是让虚拟机去加载类,并执行类的main( )方法

    · 一个程序只需要一个main( ),并不是所有类都带main( )

    1.5 循环语句

    ·有while ,do-while ,for三种形式 ,同c语言

    .与c的区别 ,循环条件的测试结果必须boolean值,boolean和integer类型并不相容

    例如 :

    int x = 1;

    while(x){  }  //false ,integer值不能做条件结果

    Boolean isHot = true;

    While( isHot ){ } //true,boolean可做条件测试结果

    1.6条件语句

    .注意点同循环语句

    ·打印输出方法system.out.print 与 system.out.println 区别:

    println输出末尾会换行

    2 类与对象

    2.0 引例:面向对象的优点

    ·编程思想:

    面向过程:根据要求编写过程

    面向对象:构建对象,编写相关方法

    ·当要求更新,需要加入有特定方法的对象时…

    ·面向过程:修改已有代码,添加特判

    ·面向对象:加入新的类,不用修改已有部分(可扩展性)

    ·对于不同对象的重复过程(方法)…

    ·面向过程:本身就是以过程为主编写的,所以不会有重复,但当加入新的对象时可能要对已有过程进行添加修改

    ·面向对象:对于各对象的共同方法可利用继承特性减少代码的重复,对于特定过程可利用覆盖特性完成方法的改变和延伸

    2.1 类与对象的关系

    ·类不是对象,而是同一类对象的模型

    ·对象可以当做类的实例,它有用来表示状态的实例变量(instance variable)和表示执行动作的方法(methods),但这些都是类设计的一部分

    2.2 创建对象

    ·一般创建类时会需要两个类,一个是用来操作的类,另一个是该类的测试类其请名称一般为“受测类 +  TestDrive”,而main()在TestDrive类中,并在其中创建对象并存取对象的变量和方法:

     

    · main()的用途:

    ·测试真正的类

    ·启动Java程序

      真正的java程序重点在让对象交互(相互调用方法)来完成目的,而不是主要在main( )中完成

    2.3其他与补充

    ·全局变量

    全局(global)变量是违反面向对象特性的,在需要全局变量时(例如可被所有对象读取的方法和常量),常用public和static组成类似global的修饰符,这些在第十章进行讨论

    ·java程序与提交

    Java程序是由一组类组成的,其中一个类带有main( )方法。如果用户没有运行java程序的虚拟机的话则需要将之一并提交给用户。

    对于数量庞大的类可以放在不同文件中,然后一并放在依据pkzip格式存档的。Jar文件中,jar文件其中可以引入一个简单的文字文件mainfest来定义启动应用程序的main( )方法。

    3 变量:primitive主数据类型和引用

    3.1 primitive主数据类型

    有六种: byte ,short ,int ,long ,float ,double

     

     ·除非小数后加f,否则所有带小数点的值都会被当double处理

    · int x = y+32 这样赋值是可以的

    ·变量命名规则: 1.只能用下划线,字母,或符合$开头 2.数字不能开头 3.不能用保留关键字

    3.2 引用(reference)

    ·对象并没有变量,而只有引用(reference),引用类似于指针,只有虚拟机知道如何通过引用来取得该对象

    ·我们不用知道引用变量占多少字节,一台虚拟机上所有的引用大小是相同的。

    ·引用变量不能参与计算,这也是同C语言中指针的区别。

    ··没有引用任何对象的引用值是null

    ·堆空间

    如果一个对象没有被任何引用指向后将会无法存取,其空间会被抛弃且回收

    3.3 数组

    ·数组是对象。就算元素类型是主数据类型,数组也依然是对象

    ·对象的数组,数组元素是引用,要记得赋值(初始是null)

    4 方法操作实例变量

    4.1行为和状态

    ·同一类的不同对象可以根据不同的状态(实例变量),来产生不同的行为(方法)

    4.2 方法的形参和实参

    ·同c++

    4.3 参数的传递

    ·java的参数是通过值传递的,也就是拷贝传递

    4.4 封装

    ·同c++,封装是java的良好特性。

    ·最常见的封装方法就是用公有的getter和setter方法来存取私有的实例变量。

    ·setter可以对不正常的参数进行修改,退回,或者抛出异常,getter也是同样的。这样做的好处是可以避免程序修改的时候修改其他部分的程序。

    4.5 实例变量的初始值

    ·就算没有初始化或者调用setter,实例变量还是有初始值的:

    Integer:0   float:0.0  boolean: false   reference:null

    4.6 变量的比较

    ·实例变量与局部变量

    ·实例变量在类内声明,而局部变量在方法内声明

    ·局部变量没有默认初始值,如果没有初始化就会报错

    ·方法的参数实际上也是局部变量,但在传参过程就完成其初始化的过程,所以一般不会报错

    ·== 与 equal( )

    ·运算符==可以判断两个primitive主数据类型是否相等 和 两个引用是否指向同一个对象

    ·若比较两个对象之间是否相等则需要调用equal( )方法

    6 简单java程序设计

    设计流程:

       6.1高层设计

       ·了解设计流程要求,可以用流程图来表示

       ·用面向对象的方法思考需要哪些对象,注意要关注流程中出现的事物,而非动作

    6.2 极限编程(XP)

    一种软件开发思想,这里主要应用其这样一种思想:

    在创造一个类之前先写其测试码,通过编写测试码去了解该类的具体设计需要哪些实例变量和方法

    代码顺序:伪代码 -> 测试码 -> 真实代码

  • 相关阅读:
    JVM——什么是JIT编译器?
    JVM——HotSpot虚拟机常用垃圾收集器参数
    MUI——按钮样式
    MUI——MUI左滑删除、MUI右滑删除、MUI左右滑删除
    JQuery——事件绑定bind和on的区别
    cnblogs美化——在博客文章插入“可运行"js代码
    mysql的一次错误处理
    Composer的使用
    php 实现收藏功能
    在sublime text3 上使用HTML-CSS-JS PRETTY 插件
  • 原文地址:https://www.cnblogs.com/-ifrush/p/12194729.html
Copyright © 2020-2023  润新知