第二章  一切都是对象

尽管Java是基于C++的,但相比之下,Java是一种更纯粹的面向对象程序设计语言.
c++和Java都是杂合型语言(hybird language)
用引用(reference)操作对象
类似遥控器(引用)来操作电视(对象)
在Java中你可以创建一个引用,但是没有与任何对象关联,比如:
String s;
这个时候如果用则会报错.安全的做法是:
创建一个引用的同时并进行初始化
String s="1111";
必须由你创建所有对象
New关键字的意思是给我一个新对象
String s = new String("1111");
存储到什么地方
1.寄存器(register):这是最快的存储区--处理器内部,数量有限,又编译器根据需求分配
2.堆栈(stack):位于ram(随机存储器)中,仅次于寄存器存储Java对象的引用(不存对象),需知道所有数据的大小,生命周期,因为它必须生成相应的代码,以便上下移动堆栈指针(下,分配新内存,上,释放内存)
3.堆(heap):一种通用的内存池(位于ram中),用于存放所有的Java对象
4.静态存储(static storage):存放程序运行时一直存在的数据,用static标示(ram中)
5.常量存储(constant storage):(存放在rom(read-only memory)中)存放常量
6.非RAM存储(non-RAM-storage):例如持久化对象中,对象呗存放于磁盘上,因此程序终止,他们仍然可以保持自己的状态,在需要时可恢复成常规的基于ram的对象
 
特例:基本类型(primitive type)
基本类型不用new来创建,并非是一个引用而是一个自动变量,并且其用用值,并置于堆栈中,因此更加高效.

 
高精度数字(high-precision number)
BigInteger支持任何精度的整数
BigDecimal支持任何精度的定点数
作用域(scoping)
由花括号的位置决定
{
int x=12;//x可用
{
int q=3;
//x q都可用
}
}
对象作用域(scope of object)
{
String s=new String("111");
}//end scope
引用s在作用域终点就消失了,然而s指向的String对象扔继续占用内存空间.
创建信的类型数据:类
class关键字后面紧跟着新类型的名称
class className{
//class body goes here
}
域(field)和方法(method)
即数据成员(data member)和成员函数(member function)
构造器是特殊的一个方法,通过其对对象进行初始化,以便其与一个实际对象关联
class A{
int i;
float f;//域
public void add(){ //method
//some code...
}
}
基本成员默认值
 
方法(method) 参数(argument)和返回值(return value)
returnType methodName(Argument list){
//method body
}
java中的方法只能作为类的一部分来创建,其只有通过对象才能被调用.
objectName.methodName(arg1,arg2,arg3);
Static关键字
为某特定数据分配一份存储空间,而不考虑要创建多少对象甚至不需要创建对象
希望某一个方法不与包含他的类的任何对象关联在一起
(不new对象也可以调用)
一个static域对每个类来说都只有一份存储空间  而非static域则是对每个对象都有一个存储空间
编译运行
比如我们有个HelloDate.java源文件,命令行切换到改目录下,并键入:
javac HelloDate.java
进行编译
java HelloDate
运行
文档注释
/** comment */
注意:javadoc只能为public和protected成员进行文档注释
代码风格
类名的首字母要大写,例如MyFirstClassName,称为驼峰风格
方法,域也都采用此种方式.只是标识符的第一字母采用小写,例如:
int myFirstInt;
void myFirstMethod(int newValue){//..}

Java编程思想笔记(第二章)的更多相关文章

  1. java编程思想笔记(第一章)

    Alan Kay 第一个定义了面向对象的语言 1.万物皆对象 2.程序是对象的集合,他们彼此通过发送消息来调用对方. 3.每个对象都拥有由其他对象所构成的存储 4.每个对象都拥有其类型(TYpe) 5 ...

  2. Java编程思想——第17章 容器深入研究 读书笔记(三)

    七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...

  3. Java编程思想 第21章 并发

    这是在2013年的笔记整理.现在重新拿出来,放在网上,重新总结下. 两种基本的线程实现方式 以及中断 package thread; /** * * @author zjf * @create_tim ...

  4. Java编程思想——第17章 容器深入研究(two)

    六.队列 排队,先进先出.除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: add ...

  5. java编程思想笔记(1)

    java编程思想笔记(1) 一,对象的创建和生命周期 对象的数据位于何处?怎样控制对象的生命周期? 在堆(heap)的内存池中动态地创建对象. java完全采用了动态内存分配方式. 二,垃圾回收器 自 ...

  6. Java编程思想 笔记

    date: 2019-09-06 15:10:00 updated: 2019-09-24 08:30:00 Java编程思想 笔记 1. 四类访问权限修饰词 \ 类内部 本包 子类 其他包 publ ...

  7. #Java编程思想笔记(一)——static

    Java编程思想笔记(一)--static 看<Java编程思想>已经有一段时间了,一直以来都把笔记做在印象笔记上,今天开始写博客来记录. 第一篇笔记来写static关键字. static ...

  8. 2.1(java编程思想笔记)位移操作

    java位移操作主要有两种: 有符号位移:有符号位移会保留原有数字正负性,即正数依然是正数,负数依然是负数. 有符号位左移时,低位补0. 有符号右移时:当数字为正数,高位补0.当数字为负时高位补1. ...

  9. 《深入理解Java虚拟机》笔记--第二章、Java内存区域与内存溢出异常

    Java程序员把内存的控制权交给了Java虚拟机.在Java虚拟机内存管理机制的帮助下,程序员不再需要为每一个new操作写对应的delete/free代码,而且不容易出现内存泄露和溢出. 虚拟机在执行 ...

随机推荐

  1. 什么是WEBserver? 经常使用的WEBserver有哪些?

    什么是WEBserver? 经常使用的WEBserver有哪些? 一.什么是WEBserver Webserver能够解析HTTP协议.当Webserver接收到一个HTTP请求,会返回一个HTTP响 ...

  2. Python输出文件由线解释和扩展的具体内容

    结束此处的测试代码中作者写的,第一段包含不正确的版本号,后者是正确的版本号: #! /usr/bin/python2.7 try:     filename = raw_input('please i ...

  3. java编程接口(1) ------ Swing基金会

    本文提出了自己的学习笔记.欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 近期想学下java的界面编程,在此记录下.    大多数的Swing应用都被构 ...

  4. bigdata_hiveserver2报错_thrift

    问题一: php客户端,链接hiveserver2 ,报错 如下 1: server.TThreadPoolServer (TThreadPoolServer.java:run(215)) - Err ...

  5. HDU 4107 线段树

    给出N个节点,M次操作,和p 每次操作 对l-r区间的每一个节点+c,若节点值>=p,则加2*c: 结点存当前区间伤害最小值,最大值,以及lazy操作.更新到假设最小值大于等于P,或者最大值小于 ...

  6. 使用excel微调button调整日期

    笔者:iamlaosong excel提供了一个调整的数字button.用来调节单元格增加或减少数量.因为它需要值是0-30000.所以不能直接用其调节日期.但能够使用"初始日期+调节值&q ...

  7. c++双缓冲技术,以避免闪烁绘图

    当数据量非常大时,画图可能须要几秒钟甚至更长的时间,并且有时还会出现闪烁现象,为了解决这些问题.可採用双缓冲技术来画图. 双缓冲即在内存中创建一个与屏幕画图区域一致的对象,先将图形绘制到内存中的这个对 ...

  8. XCL-Charts圈图

    我不知道是不是叫图,无论如何,所以叫它. 图形是今天我Circliful这个jQuery 插件上看到的. 认为非常好看. 就想把它实现出来,由于之前画过环形图.且我如今的图表基类基本已成型,所以非常快 ...

  9. 传智播客.Net培训就业班入学测试题

    2.对学员的结业考试成绩评测,要求在控制台中提示用户输入学员考试成绩,写一个方法,根据用户输入的成绩,返回一个等级:90分以上A级.80~90分B级.70~80分C级.60~70分B级.60分以下C级 ...

  10. 内网穿透&UDP打洞

    这两天找度度重新回忆了一下关于内网穿透的事情,在百度文库上找到了两三篇写的比较通俗易懂的文章,把内网穿透做个简单总结. 首先文章建议 Cone NAPT 还有希望,要是 Symmetri NAPT 就 ...