Java编程思想_笔记_第二章_一切都是对象
第二章对于知识只是点到,会在以后章节会详细展开。
笔记的侧重会偏向记录自己知识模糊的地方。比如 xxx 很重要很难很实用,但是已经熟练使用就没有记录,而
“使用对象.成员名称来使用成员变量”,较简单而且易懂,但是比较模糊就记录了。
1. 使用引用操作对象
2. 堆 存放所有的java对象
堆栈 存储对象的引用
特例: 基本数据类型存储在堆栈中
3. java 每种基本类型占用固定的存储空间大小,不像大多数语言那样与机器硬件架构相关,
也是java程序更具有移植性的原因之一
4. 所有的数据值类型都是有符号类型
字节 byte ,位 bit,1byte = 8bit
char 2字节
int 4字节
C语言中 会有int占2或4个字节的说法 c语言规范中应该有规定各种数据类型的最小范围
5. BigInteger 支持任意精度的整数
BigDecimal 支持任意精度的定点数
6. 创建一个数组对象时,实际是创建了一个引用数组,每一个会自动初始化为null
存储基本数据类型的数组,java也会保证数据被初始化
C,C++中数组是内存块,访问下标外的内容,或者访问未被初始化的数组内容会产生意料之外的结果。
7. C、C++、java中,作用域由花括号的位置决定。
int a = 0;
{
int b = 0;
System.out.println(b);
5 }
6 System.out.println(b); //Error
在作用域中定义的变量只可用于作用域结束之前。
以下代码在C、C++是合法的,但是在Java、C#不能这样
C、C++会将较大作用域里面的变量隐藏起来。
{
int x = 0;
{
int x = 1;
}
}
8. 可以使用对象.成员名称来使用成员变量。
工作中一般是private修饰成员变量,使用getter/setter操作/获取成员变量。
用对象.成员名称有种C语言的风格,感觉很陌生
9. 基本成员默认值
如果类的某个成员是基本数据类型,即使没有初始化,Java也会确保它会获取一个默认值。
但是 不适用于局部变量,(不是类里面的字段,而是方法里面的定义)
int x;
x不会被初始化,如果x在使用前依旧忘记初始化,Java在编译时会返回一个错误。
10 函数是按值传递的。
但是 对于对象来说,我们使用引用操作对象的,虽然传递给函数的是值,但是这个值可能是一个引用,
调用函数是有可能改变的实参的。
# 未完
2.6 构建第一个Java程序
Java编程思想_笔记_第二章_一切都是对象的更多相关文章
- Java编程思想读书笔记(二)【一切都是对象】
begin 2018年1月9日17:06:47 第二章 一切都是对象 Java语言假设我们只进行面向对象的程序设计. 2.1 用引用操纵对象 每种编程语言都有自己的操纵内存元素的方式 操纵内存元素的方 ...
- [Java编程思想-学习笔记]第3章 操作符
3.1 更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...
- 《Java编程思想》笔记 第七章 复用类
1.组合 将其他类的对象引用置于新的类中. 3.继承 extends 从已知的一个类中派生出新的一个类,叫子类.子类实现了父类所有 非私有化 非静态 的属性和方法,并能根据自己的实际需求扩展出新的行为 ...
- [Java编程思想-学习笔记]第2章 一切都是对象
2.1 创建新的数据类型:类 通过第一章掌握了面向对象的理论后,我们知道每个对象必定属于一个类型,那么Java如何创建新的数据类型?如下程序所示: class Circle { // 属性 // 方 ...
- [Java编程思想-学习笔记]第1章 对象导论
1.1 抽象过程 Java是一门面向对象的语言,它的一个优点在于只针对待解问题抽象,而不用为具体的计算机结构而烦心,这使得Java有完美的移植性,也即Java的口号"Write Once, ...
- Java编程思想第四版第二章练习题答案
练习1:创建一个类,它包含一个int域和一个char域,它们都没有被初始化.将他们的值打印出来,以验证Java执行了默认初始化 public class JavaThinking { private ...
- Java编程思想读书笔记--第14章类型信息
7.动态代理 代理是基本的设计模式之一,它是你为了提供额外的或不同的操作,而插入的用来代替“实际”对象的对象.这些操作通常涉及与“实际”对象的通信,因此代理通常充当着中间人的角色. 什么是代理模式? ...
- [Java编程思想-学习笔记]第4章 控制执行流程
4.1 return 关键字return有两方面的用途:一方面指定一个方法结束时返回一个值:一方面强行在return位置结束整个方法,如下所示: char test(int score) { if ...
- java编程思想第四版第二章要点总结
1. 基本类型 基本类型 二进制位数 包装器类 boolean - Boolean byte 8 Byte char 16 Character short 16 Short int 32 Intege ...
- 《Java编程思想》笔记 第十七章 容器深入研究
1 容器分类 容器分为Collection集合类,和Map键值对类2种 使用最多的就是第三层的容器类,其实在第三层之上还有一层Abstract 抽象类,如果要实现自己的集合类,可以继承Abstract ...
随机推荐
- netty的好处
netty作为一个高性能的异步通信框架,它到底有哪些好处了,又用到哪些基础技术呢? 1.使用ServerBootstrap 作为netty服务端的启动辅助类,并且在创建ServerBootstrap时 ...
- 请收好这份NLP热门词汇解读
文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 微软研究院AI头条 编者按:在过去的一段时间,自然语言处理领域取得了许多重要的进展,Tran ...
- 【Android】用Cubism 2制作自己的Live2D——初见!
前言- 现在很多手游的UI上都不约而同的放置一个Live2D模型,这仿佛已经成为了一个业界的潜规则之类的东西.作为一名深受手机游戏毒害的90后,我也没有忘记小时候励志当一名技术宅的梦想,也想试试自己做 ...
- STL源码剖析-vector
STL(Standard Template Library) C++标准模板库,acm选手一定对它不陌生,除了算法,那几乎是“吃饭的家伙了”.我们使用库函数非常方便,且非常高效(相对于自己实现来说). ...
- 【English】五、颜色相关
一.常见颜色 黑色 black 白色 white 蓝色 blue 橙色 orange 黄色 yellow 灰色 gray ...
- 啰嗦的 java,简洁的 lombok —— lombok 的使用及简单实现单例模式注解
lombok 是什么? lombok 是一个非常神奇的 java 类库,会利用注解自动生成 java Bean 中烦人的 Getter.Setting,还能自动生成 logger.ToString.H ...
- python使用rabbitMQ介绍三(发布订阅模式)
一.模式介绍 在前面的例子中,消息直接发送到queue中. 现在介绍的模式,消息发送到exchange中,消费者把队列绑定到exchange上. 发布-订阅模式是把消息广播到每个消费者,每个消费者接收 ...
- ORM初探(一)
Object Relational Mapping(ORM): 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象 ...
- Centos7 安装mysql-8.0.13(rpm)
yum or rpm? yum安装方式很方便,但是下载mysql的时候从官网下载,速度较慢. rpm安装方式可以从国内镜像下载mysql的rpm包,比较快.rpm也适合离线安装. 环境说明 操作系统: ...
- 做嵌入式,C语言相关的朋友不要错过
前言 相对来讲嵌入式相关的人群总体来说比较少,那么有没有一个聚集地呢? 为回馈读者,「编程珠玑」与「嵌入式linux」,「EmbeddDeveloper」三个公众号联合组织了此次福利活动,「编程珠玑」 ...