Java编程思想阅读笔记(第二章)一切皆是对象

    第二章主要讲述了关于如何编写一个简单程序的Java编程知识,如何创建一个对象,Java的基本数据类型,对象的作用域以及方法和返回值等等,下面是书中重点概念的摘抄。

2.1用引用操纵对象

    1)Java中一切都看作对象,操纵的标识符实际上是对象的一个“引用”;

    2)定义一个引用并不一定需要有一个对象与之关联;

    eg:String s;

2.2必须由你创建所有对象

    1)一旦创建一个引用就希望它能与一个新的对象关联,通常使用new操作符来实现,new关键字的意思是“给我一个对象”;

    eg:String s = new String("asdf");

2.2.1存储到什么地方

    1)寄存器,最快的存储区,位于处理器的内部,但是数量有限。

    2)堆栈,位于通用RAM(随机访问存储器),堆栈指针向下移动则分配新的内存,若向上移动则释放这些内存。

    3)堆,一种通用的内存池(位于RAM区),用于存放所有的Java对象。

    注:堆是垃圾回收主要发生的区域。

    4)常量存储,常量值通常直接存放在程序代码的内部。

    5)非RAM存储,此时数据完全存活于程序之外,可以不受程序的空值,在程序没有运行时也可以存在,基本的例子就是流对象和持久化对象。

2.2.2特例:基本类型

    1)不用new来创建变量,而是创建一个并非引用的‘自动’变量,这个变量直接存储值,并置于堆栈中。

    2)Java的基本类型、对应的包装类与其所占存储空间的大小如下图:

    3)boolean类型所占的存储空间的大小没有明确指定,仅定义为能够取字面值true或false;

    4)Java提供了两个用于高精度计算的类:BigInteger和BigDecimal,此二者没有对应的基本类型。BigInteger支持人已经读的整数,BigDecimal支持任意精度的定点数。

2.2.3Java中的数组

    1)Java确保数组会被初始化,而且不能在它的范围之外被访问。

    2)当创建一个数组对象时,实际上是创建一个引用数组,并且每个引用都会被初始化为一个特定值,该值拥有自己的关键字null;如果试图使用一个还是null的引用,在运行时就会报错。

2.3永远不需要销毁对象

2.3.1作用域

    1)Java是一种自由格式的语言,所以空格、制表符、换行都不影响程序的执行结果。

    2)作用域决定了在其内定义的变量名的可见性和生命周期,在Java中作用域由花括号的位置决定。

    3)在作用域中定义的变量只可用于作用域结束之前。

2.3.2对象的作用域

    1)由new创建的对象,只要你需要就会一直保留下去。

    2)Java使用垃圾回收器来监视用new创建的所有对象,并辨别那些不会再被引用的对象,随后将其销毁,释放这些对象的内存空间。

2.4创建新的数据类型:类

    1)使用Java使用class来定义一个类:

    eg: class AtypeName {/* Class body gose here*/}

    用new来创建这种类型的对象:

    eg:AtypeName atypeName = new AtypeName();

2.4.1字段和方法

    1)一旦定义了一个类,就可以在类中设置两种类型的元素:字段(数据成员)和方法(成员函数)

    2)基本成员默认值:

基本类型默认值
booleanfalse
char‘\u0000’(null)
byte

(byte)0

short(short)0
int0
long0L
float

0.0f

double0.0d

    若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。值得注意的是当变量作为类的的成员使用的时候,Java才会确保给定其默认值,并不适用于“局部”变量(即并非某个类的字段)。

2.5方法、参数和返回值

    1)Java的方法决定了一个对象能够接受什么样的消息,方法的基本组成包含:名称、参数、返回值和方法体,下面是它最基本的形势:

    ReturnType methodName(/* Argument list */){

       /* Method body */

    }

2.5.1参数列表

    1)方法的参数列表指定要传递什么样的信息给方法,像Java中任何传递对象的场合一样,这里传递的实际上也是引用。

    注:Java没有值传递,只有引用传递。

    2)如果不想返回任何值,可以知识此方法返回void。

2.6构建一个Java程序

2.6.1 名字可见性

    1)Java使用包名的形式来规定了类命名空间,所有的文件都能够存活于他们自己的名字空间内,而且同一个文件内的每个类都有唯一的标识符。

2.6.2运用其他构件

    1)import指示编译器导入一个包,也就是一个类库。

    eg:import java.util.ArraryList;

    也可以使用通配符“*”来实现一次导入一群类。

2.6.3 static关键字

    1)通过static关键字可以满足:1.只想为某特定域分配单一存储空间,而不用去考虑究竟需要创建多少对象,甚至根本不用创建对象。2.希望某个方法不与包含他的类的任意对象关联在一起,即使没有创建对象,也能够调用这个方法。

    注:通常我们称之为静态变量和静态方法

2.7你的第一个Java程序

    1)打印一个字符串,然后打印当前日期:

// HelloDate.java
import java.util.*;
public class HelloDate{
    public static void main(String[] args){
        System.out.println("Hello, it's: ");
        System.out.println(new Date());
    }
}

    2)java.lang 是默认导入到每个Java文件中的,它的所有的类都可以被直接使用。

2.8注释和嵌入式文档

    1)Java提供了两种注释风格:

        /*注释方式一*/

       //注释方式二

2.9编码风格

    1)在“Java编程语言编码约定”中代码风格规定:类名的首字母需要大写,如果类由几个单词构成,那么把它们合并到一起,其中每个内部单词的首字母都采取大写形式。方法名、字段名以及对象引用名称也采用这种方式命名,只是标识符的第一个字母采取小写。

注:关于命名规范建议看看阿里巴巴Java开发手册。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值