一切皆对象

一切都是对象

用引用操纵数据

  • 这里要用例子去形象的去理解:比如你用一个page对象, 分页的时候会用到,
    用page对象的引用,传到一个方法中, 方法中实现的功能是去数据库拿值, 拿到后在方法中进行改变。这样做结果是否会改变?
  • 这样的题目问的其实就是传递和引用传递,
    引用传递改变的其实是,地址,这样做会改变地址中存储的值的数据。而如果传递的是一个基本数据类型的引用, 那么传递的则是数值, 也就不会影响。

必须由你创建所有对象

存储引用到哪里去呢

  1. 存到寄存器,寄存器,位于Cpu存储器的内 部,是速度最快的存储方式。另外C和C++允许你 向编译器建议存储在何处,而Java不行。
  2. 堆栈,位于RAM中,random accept memory,速度仅次于寄存器, 它有一个指针向上移动则释放内存,向下移动则分配新的内存空间。创建程序时候,系统必须知道的确切的生命周期,为了上下移动,分配和释放资源,这样做做法灵活性,特别是对象的引用会放在堆栈当中
  3. , 一种通用的内存池,编译器不需要知道存储的数据在堆中的生命周期,自动进行分配,但是这种灵活性是有代价的, 代价是付出性能的代价。
  4. 常量存储,常量值通常放在代码内部(也就是代码段中), 这样比较安全,对于这话的理解,我是觉得 final int a = 3; 里面的3是位于data段,里面的 a 也就是常量位于代码段中,所以书中作者翻译过来是放下代码内部。
    程序在内存中的组织形式是段,有堆栈段、数据段和代码段。对于数据指针指向数据,函数指针则指向某个代码。
    Alt text
  1. RAM存储,意思是指存活在程序之外, 程序运行在内存cpu的寄存器, 活于程序之外就是指在内存之外, 也就是说在磁盘内。被人称做流对象,或者持久化对象, 就像Java中IO流的流一样, 数据就像流水一样。所以用流。

基本数据类型是比较特殊的类型,因为他们不需要new一个对象,因为他们是放在堆栈中的, 引用中是直接存放,而不是存放地址的引用。所以不需要
6.基本数据类型的字节数,要在脑海中这个印象,不需要记成具体数字,

  • 比如byte 1字节, short2字节, int 4个字节, long 8个字节, float 4个字节, double 8个字节。 浮点型要比整型精度来的低, 换算的规则是 1字节等于八位Bite, 也就是2的8次方。 Boolean类型占2字节, char类型得看编码, Unicode的中文char是占两个字节
  • 还有一个存放更大的数据的类。叫做BigInteger, BigDecimal支持任意精度
  • 关于数组:c++和c中是用于直接操作内存, 所以在初始化之前使用数组之前是很危险的事情。而在Java中创建数组其实就是创建一个数组的引用, 创建数组的引用的化,会自动初始化的时候为引用赋值, 初始化的规则:整型为0, 浮点型为0.0, char类型为/u000, Boolean型为false, String等引用类型为null.

永远不需要销毁对象

  1. 作用域:
  • 作用域scope 是决定于变量的生命周期。
  • 关于c语言中的一个局部变量和全局变量同名的时候,在c语言中是可以进行重新定义的, 而在Java中是不允许的, 设计者认为这样会让人们混乱。
  • 关于new出来的, 占据着 堆空间的引用。 在出作用域的时候是还存在的, 可是它的引用已经消失了, 所以也就不存在了,但还存在的堆内存会被垃圾回收器,在适当的时候给清理掉。

创建新的数据类型:类

这边说了一个基础数据类型的初始化值。
还有局部变量不能不赋值, 否则的话会返回错误信息

方法、参数、返回值

里面提到了方法和c或者c++只是叫法不同罢了

  • 关于方法签名的概念: 是指参数和方法名称能够唯一地标识方法。 而返回值不行
  • 又提起了。return关键字不仅仅在方法返回值的时候用还可以在想用退出程序的时候用

构建一个Java程序

  • 首先讲述了, 包相对于c中的命名空间。为了让相同类名的类可以区分开。
  • 第一, 一个类在后面才被定义, 但在之前直接引用使用也是可以的, 它具有向前引用的功能。
  • 第二, 类位于其他文件的时候, 我们要用imort , 这么设计, 是为了指定特定的类进行导入本类中。
  • static关键字, 就是静态的数据, 而不需要进行new , 来绑定在某一个对象上。讲述了它的两个特性, 第一, static修饰的对象都只有一个存储空间。

你的第一个Java程序

java.lang是默认, 自动地导入到文件中。

注释和嵌入式文档

  • 注释所需要知道的,就只是要单行, 多行,文档注释。 而文档注释可以导出成文档格式。然后上传到gitHub wiki 这样的项目文档系统上面去。
    关于这个注释文档, 不在冗述,自行jdk

编码风格

  • 这章节讲述的编程的风格,知道驼峰命名法就行。
posted @ 2017-11-25 18:06  老螃蟹  阅读(195)  评论(0编辑  收藏  举报