Thinking In Java 学习笔记 1-5 章
第1章 对象导论
本章主要讲OOP的思想及一些OOP基本概念
1、抽象过程:万物都是对象,对象具有状态、行为和标识。对象拥有属性和方法,以及在内存中的唯一地址。
2、每个对象都有一个接口:通过接口给对象发送消息请求来控制和操作对象,这里的接口是指对象的方法。
3、每个对象都提供服务:将对象想象成服务提供者,调用对象提供的服务来实现某一目的。
4、被隐藏的具体实现:对象对外界只提供服务接口,而隐藏内部的实现细节,通过关键字(public、private、protected)来设定边界。
5、复用具体实现:新建的类可以复用创建好的类实现更加复杂的功能。
6、继承:导出类可以拥有父类所有的特性。
7、多态:不同子类可以不同的方式实现基类的方法。
8、单根继承:OOP的所有类都继承自Object。
9、容器:对象的集合List、Map、Set,参数化类型ArrayList<String>实现正确的转型
10、对象的创建和生命周期:Java采用动态内存分配方式,new一个对象存储在堆中,因为是动态分配管理所以创建时间将远远大于直接在堆栈(C++存储在此)中创建空间的时间,动态分配可以带来更大的灵活性,C++需要通过编程方式来销毁对象不然可能会导致内存泄漏,Java通过垃圾回收器自动内存释放。
11、异常处理:Java内置了异常处理机制。
12、并发:Java的并发内置于语言中。
13、Java与Internate。
第2章 一切都是对象
1、用引用操纵对象。
2、对象都由new 来创建,存储数据的5个地方 寄存器(不能认为控制)、堆栈(RAM区)、堆(RAM区,所有的Java对象都存于此)、常量存储(程序代码内部)、非RAM存储(存储存活于程序之外的数据)。
3、Java类的基本成员会自动设置默认值。
4、类创建的所有对象的Static字段只分配一个内存。
第3章 Java操作符
1、==和!=比较的是对象的引用
Integer n1=new Integer(47);//new 的就是对象
Integer n2=new Integer(47);
System.out.println(n1==n2); //false
System.out.println(n1!=n2); //true
比较两个对象的实际内容是否相同用equals(),这个方法不适用与基本类型,基本类型用==和!=即可
System.out.println(n1.equals(n2)); //true
下一种情形:
class Value{
int i;
}
Value v1=new Value();
Value v2=new Value();
v1.i=v2.i=100;
System.out.println(v1.equals(v2)); //false
由于equals默认行为是比较引用,所以这句输出的是false,上例中基本类型Interger的equals方法是覆盖过的,所以输出的是true。
第4章 控制执行流程
1、
if-else
while
do-while :至少执行一次do的内容
for
Foreach:for(String s : str) str是一个String数组
2、标签:Java需要使用标签的唯一理由是因为有循环嵌套,而想从多层嵌套中break或Continue
标签的语法: label: 标签后面跟有冒号的标识符
Outer: //定义标签
while(true){
while(true){
i++;
if(i==3)
continue Outer; // 带标签的continue会到达标签的位置,并重新进入紧接在那个标签后的循环。
if(i==5)
break Outer; //带标签的break会中断并跳出标签所指的循环。
}
...
}
3、Switch的参数必须是int或char的整数值或者enum值。
第5章 初始化与清理
1、用构造函数确保初始化:与类同名且没有返回值
2、初始化顺序:自动初始化将在调用构造器之前,按类中变量定义的先后顺序
3、可变参数:Object......args
4、枚举:enum.values(),enum.ordinal() 获取声明顺序
Thinking In Java 学习笔记 1-5 章的更多相关文章
- 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试
20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...
- Java 学习笔记 ------第三章 基础语法
本章学习目标: 认识类型与变量 学习运算符的基本使用 了解类型转换细节 运用基本流程语法 一.类型(基本类型) 所谓基本类型,就是在使用时,得考虑一下数据用多少内存长度存比较经济,利用程序语法告诉JV ...
- Java 学习笔记 ------第四章 认识对象
本章学习目标: 区分基本类型与类类型 了解对象与参考的关系 从打包器认识对象 以对象观点看待数组 认识字符串的特性 一."=" 和 "==" 当=用于基本类型时 ...
- Java 学习笔记 ------第五章 对象封装
本章学习目标: 了解封装的概念与实现 定义类.构造函数与方法 使用方法重载与不定长度自变量 了解static方法 一.Java封装概念 在面向对象程式设计方法中,封装(英语:Encapsulation ...
- Java 学习笔记 ------第六章 继承与多态
本章学习目标: 了解继承的目的 了解继承与多态的关系 知道如何重新定义方法 认识java.lang.object 简介垃圾回收机制 一.继承 继承是java面向对象编程技术的一块基石,因为它允许创建分 ...
- [core java学习笔记][第十一章异常断言日志调试]
第11章 异常,断言,日志,调试 处理错误 捕获异常 使用异常机制的技巧 使用断言 日志 测试技巧 GUI程序排错技巧 使用调试器 11.1 处理错误 11.1.1异常分类 都继承自Throwable ...
- [core java学习笔记][第四章对象与类]
4.3 用户自定义类 4.3.1 类数组的声明 需要两次new Employee[]=staff=new Employedd[3]; staff[0]=new Employedd(参数列表); sta ...
- thinking in java学习笔记:14章 类型信息
14.2 Class 对象 https://github.com/zhaojiatao/javase 1.什么是Class对象,Class对象是用来做什么的? Class对象是java程序用来创建类的 ...
- Effective Java 学习笔记----第7章 通用程序设计
第7章 通用程序设计 第29条 将局部变量的作用域最小化 使一个局部变量的作用域最小化,最有力的技术室在第一次使用它的地方声明. 第30条 了解和使用库 效率提高.如果你不知道库 ...
- [core java学习笔记][第六章接口与内部类]
接口域内部类 接口 描述类具有什么功能,不给出具体实现. 内部类 用于设计协作关系的类集合 代理 实现任意接口的对象. 6.1 接口 接口声明 public interface Comparable ...
随机推荐
- 跨服务器备注SQL数据库 分类: SQL Server 2015-03-05 08:52 227人阅读 评论(0) 收藏
任务:把服务器1上的SQL数据库自动备份到服务器2上,命名格式=数据库名+年月日+小时. 说明: 服务器2=>192.168.0.22 数据库名=>Book 共享文件夹路径:192.168 ...
- ELK初学搭建(kibana)
ELK初学搭建(kibana) elasticsearch logstash kibana ELK初学搭建 kibana 1.环境准备 centos6.8_64 mini IP:192.168.10. ...
- div页面居中(上下左右)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...
- Microsoft office word关闭英文输入首字母大写设置
1.概述: 在使用office word的时,经常出现输入一段不需首字母大写的英文时,通常敲击完回车时word会自动将首字母大写,需要重新将首字母修改成小写,这样操作很不方便.于是需要对这个功能进行一 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请 系列目录 创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分 ...
- [转][JAVA]定时任务之-Quartz使用篇
[BAT][JAVA]定时任务之-Quartz使用篇 定时任务之-Quartz使用篇 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与 ...
- iOS 百度地图 小的特点demo
先上图的样子 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDEyMzIwOA==/font/5a6L5L2T/fontsize/400/fill ...
- 瑕疵(bug)严重性定义
======================== 严重性定义缺陷: o 最先进的–造成执行中断(应用程序崩溃),该功能未预期实现,测试等工作无法进行. o 急-事件是非常重要的,须要立即给予关注. o ...
- iOS 高仿:花田小憩3.0.1
前言 断断续续的已经学习Swift一年多了, 从1.2到现在的2.2, 一直在语法之间徘徊, 学一段时间, 工作一忙, 再捡起来隔段时间又忘了.思来想去, 趁着这两个月加班不是特别多, 就决定用swi ...
- PHP编译错误Don't know how to define struct flock on this system, set --enable-opcache=no
编辑 /etc/ld.so.conf 加入 /usr/local/lib 再执行 ldconfig