Core java for impatient 笔记

类比c++来学习!

1.在java 中变量不持有对象,变量持有的是对象的引用,可以把变量看做c++中的只能指针,自动管理内存

需要手动初始化(否则就是空指针!)

2.final 相当于c++中的const

java中的嵌套类:

1.静态嵌套类:

类可以获取静态嵌套类中变量和方法的使用权

2.内部类

内部类的方法可以访问它的外部类的实例变量。在这种情况下,它们是外部类的实例变量!

静态嵌套类和内部类的不同之处在与每个内部类对象都有自己外部类对象的引用。

在调用外部类方法的时候实际调用的是 outer.f()

解释内部类的外部类引用的时候,将其称为outer

接口是一种特殊的类,可以可做java对于行为的抽象!接口的默认定义是static和final的变量,可以有默认的实现方法!

继承接口的类必须实现接口的方法!并且将接口的方法声明为public!

在接口的默认方法和父类的方法发生冲突对的时候优先选择父类方法

java中常用的接口

Comparable接口

Comparator接口

Runnable接口,产生一个没有返回值的函数

lambda表达式是一块代码,可以将这一部分作为定义的方法或者对象传递出去。

lambda表达式方法中的this代表的是创建lambda表达式的方法的this参数

经常需要在lambda中访问来自闭合方法或者类的变量:

当lambda定义的行为在线程中调用的时候,引用的变量可能已经不存在了。。。怎么办?

lambda表达式有三个部分:1.代码块2.参数3.自由变量的值(既不是参数变量也不是内部定义的变量)

lambda的表达式必须在数据结构中存储这些值!

就是说这些值已经被lambda表达式捕获了(为了确保被捕获的值是良好定义的,在lambda中你只能引用那些值不会改变的变量,final变量)

可以定义局部类然后返回构造函数,相当于实现简单工厂设计模式。。

子类可以使用关键字super来调用父类的方法或者构造函数。

final方法不能被覆盖,final类不能被继承!
.

java中所有类都是object的子类,提供了toString,hash,Clone,equals等方法。

class加载了java类型的信息,包括类,数组,接口,基本类型

反射库可以让程序在运行过程中访问类的成员,变量和方法!

在向下转换的时候,安全的方法是使用instanceof检测,然后再用强制类型转换方法转换!

抽象方法和类:对某一个对象的特定行为的抽象和对某一类对象的抽象!

当你在子类中定义equals方法的时候首先要调用父类的equals方法,因为当父类的检查都没有通过的时候,对象必定不相等!

自带的clone()在处理引用的引用时是浅拷贝,如果需要深拷贝自己定义。

在处理静态成员的时候要当选新他们的构造次序,由于枚举常量在静态成员之前构建,所以你不能再构造函数里引用任何静态成员。

时间: 2024-08-07 15:19:15

Core java for impatient 笔记的相关文章

Core java for impatient 笔记 ch8 流

流stream 使用了数据视图,让你可以在比集合更高的概念上指定操作使用流,你只需要将操作的调度留给实现,例如,假设你要计算某个属性的平均值,你只需要指定数据源和属性,然后流类库会优化计算,比如使用多线程来求和,计数,合并结果1.迭代器使用了一种明确的遍历策略,同时也阻止了高效的并发执行.2.你可以从集合,数组,生成器和迭代器创建流3.使用filter来选择元素,使用map元素转换4.对于转换刘的其他操作,limit,distinct,sorted5.从stream中获得结果使用归约操作6.Op

Core java I 读书笔记

Static关键字: 我们都知道 static修饰符,表示 相应的 变量或方法,是这个类的实例所共有的,并不需要创建这个类的实例就可以访问. eg. public static final double PI = 3.14...  就可以直接通过Math.PI 获取. 前边的都好理解,static method总有些不明白,下边着重学习一下static mathod: Static methods are methods that do not operate on objects.  比如 M

Core Java 笔记

Core Java 的读书笔记,持续更新中... Core Java笔记 1.对象与类 Core Java笔记 2.继承 Core Java笔记 3.反射

java学习笔记(Core Java)1-3

要准备学习下java了,按着<core java>的内容,简单的做了一下笔记.这本书有很多地方对C++和java的语法作了对比,所以对于从C++向java方向转的人来说,非常有利! javac xxx.java java xxx java applet: appletview xxx.html (浏览器加载) 第三章 基本类型1) 对大小写敏感 强调main方法时公有的 2)java没有无符号类型3)float后面必须有F 标记,double 也可以加上D4) 错误溢出:正无穷 负无穷 NaN

Core Java 学习笔记——1.术语 环境配置/Eclipse汉化字体快捷键/API文档

今天起开始学习Java,学习用书为Core Java.之前有过C的经验.准备把自己学习这一本书时的各种想法,不易理解的,重要的都记录下来.希望以后回顾起来能温故知新吧.也希望自己能够坚持把自己学习这本书的整个过程记录下来. I want to put a ding in the universe. 基本术语:       Object Oriented Programming——OOP——面向对象编程 Application Programming Interface——API——应用程序编程接

Core Java (十一) Java 继承,类,超类和子类

Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报  分类: java(58) 读书笔记(46)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 继承关系 两个类之间存在三种关系: 依赖,uses-a,如果一个类的方法操纵另一个对象,我们就说一个类依赖于另一个类. 聚合(关联),has-a,一个对象包含另外一个对象,聚合关系意味着类A的对象包含类B的对象

HttpClient(JAVA)使用笔记

HTTPCLIENT 此工具是由apache基金会支持开发的一套 开源 http client 组件, 目前属于 http components的一部分, 官网:http://hc.apache.org/index.html http components 健壮地实现了基础HTTP部分, 并可以被扩展, 可以被 客户端和服务器端 HTTP 应用程序使用, 例如  浏览器 爬虫 代理 和 web service, 以及利用和扩展http协议用于分布式通信的系统. http components包括

Android(java)学习笔记160:Framework运行环境之启动Zygote

前面Android(java)学习笔记159提到Dalvik虚拟机启动初始化过程,就下来就是启动zygote进程: zygote进程是所有APK应用进程的父进程:每当执行一个Android应用程序,Zygote就会孵化一个子线程去执行该应用程序(系统内部执行dvz指令完成的)  Å特别注意:系统提供了一个app_process进程,它会自动启动ZygoteInit.java和SystemServer.java这两个类,app_process进程本质上是使用dalvikvm启动ZygoteInit

《深入Java虚拟机》笔记:指令集 (转)

<深入Java虚拟机>笔记:指令集 指令 含义 iconst_m1 把int型常量-1压入栈中 iconst_0 把int型常量压入栈中 fconst_1 把float型常量1压入栈中 lconst_2 把long型常量2压入栈中 dconst_3 把double型常量3压入栈中 bipush byte1 把byte1转换成int型压入栈中 sipush byte1,byte2 把byte1,byte2组成的short转换成int压入栈中 aconst_null 把空对象压入栈中 ldc in