自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 《Head First Java》20200930读书笔记

P235-P256《Head First Java》20200930读书笔记栈与堆:生存空间在Java中,程序员会在乎内存中的两种区域:对象的生存空间堆(heap)和方法调用及变量的生存空间(stack)。当Java虚拟机启动时,它会从底层的操作系统取得一块内存,并以此区域来执行Java程序。至于有多少内存,并以及你是否能够调整它都要看Java虚拟机与平台的版本而定。我们知道所有的对象都存活于可垃圾回收的堆上,但我们还没看过变量的生存空间。而变量存在于哪一个空间要看它是哪一种变量而定。这里说

2020-09-30 23:01:33 87

原创 《Head First Java》20200929读书笔记

P253-P256《Head First Java》20200929读书笔记对象的生命周期如果你把父类想象成子类的父母,那就可以看出来谁是先存在的。父类的部分必须在子类创建完成之前就必须完整地成型。记住,子类对象可能需要动用到从父类继承下来的东西,所以那些东西必须要先完成。父类的构造函数必须在子类的构造函数之前结束。你会发现Hippo的构造函数是第一个被调用的(在堆栈上的第一个),却也是最后一个完成的!每个子类的构造函数会立即调用父类的构造函数,如此一路往上直到Object。等到Objec

2020-09-30 00:13:25 67

原创 《Head First Java》20200928读书笔记

**P249-P253**《Head First Java》20200928读书笔记构造函数小回顾构造函数是在新建类时会执行的程序。Duck d = new Duck();构造函数必须与类的名字一样,且没有返回类型。public Duck(int size){ }如果你没有写构造函数,则编译器会帮你写一个没有参数。public Duck(){ }一个类可以有很多个构造函数,但不能有相同的参数类型和顺序,这叫作重载过的构造函数。public Duck(){

2020-09-28 23:47:29 103

原创 《Head First Java》20200927读书笔记

P245-《Head First Java》20200927读书笔记Duck的简易饲养方法一定要有不需参数的构造函数。如果Duck的构造函数需要一项参数会怎样?上一页的Duck只有一个构造函数,且它需要一个int型的size参数。想象一个你可以让用户在创建Duck时有两个选项:一个可以指定Duck的大小(通过构造函数的参数),另外一个使用默认值而无需指定大小。你无法只依靠单一的构造函数就能够很清楚地达到这个目的。要记得,如果某个方法或构造有一项参数,你就必须在调用该方法或构造函数的时候传入适

2020-09-27 23:59:42 1330

原创 《Head First Java》20200926读书笔记

P242-《Head First Java》20200926读书笔记构造新的Duck构造Duck构造函数的一项关键特征,是它会在对象能够被赋值给引用之前就执行。这代表你可以有机会在对象被使用之前介入。也就是说,在任何人取得对象的遥控器前,对象有机会对构造过程给予协助。在Duck的构造函数中,我们没有作出什么有意义的事情,但还是有展示出事件的顺序。构造函数让你有机会可以介入new的过程public class Duck{ public Duck(){ System.out.printl

2020-09-26 23:55:54 69

原创 《Head First Java》20200925读书笔记

P239-《Head First Java》20200925读书笔记实例变量如果局部变量生存在栈上,那么实例变量呢?当你要新建一个CellPhone()时,Java必须在堆上帮CellPhone找一个位置。这会需要多少空间呢?足以存放该对象所有实例变量的空间。没错,实例变量存在于对象所属的堆空间上。记住对象的实例变量的值是存放于该对象中。如果实例变量全都是primitive主数据类型的,则Java会依据primitive主数据类型的大小为该实例变量留下空间。int需要32位,long需要

2020-09-25 23:33:14 84

原创 《Head First Java》20200924读书笔记

P237-P238《Head First Java》20200924读书笔记方法会被堆在一起当你调用一个方法时,该方法会放在调用栈的栈顶。实际被堆上栈的是堆栈块,它带有方法的状态,包括执行到哪一行程序以及所有的局部变量的值。栈顶上的方法是目前正在执行的方法(先假设只有一个)。方法会一直待在这里直到执行完毕,如果foo()方法调用bar()方法则,bar()方法会放在foo()方法的上面。punlic void doStuff(){ boolean b = true; go(4);}

2020-09-24 23:20:06 90

原创 《Head First Java》20200923读书笔记

P235-P237《Head First Java》20200923读书笔记第9章 构造器与垃圾收集器对象有生有死。编写Java程序,就必须创建对象,早晚要将它们释放掉,不然就会出现内存不足的问题。这一章会讨论对象如何创建,存在于何处以及如何让保存和抛弃更有效率。这代表我们会述及堆、栈、范围、构造器、超级构造器、空引用等。栈与堆:生存空间在Java中,程序员会在乎内存中的两种区域:对象的生存空间堆(heap)和方法调用及变量的生存空间(stack)。当Java虚拟机启动时,它会从底层的操作

2020-09-24 00:14:13 68

原创 《Head First Java》20200922读书笔记

P226-《Head First Java》20200922读书笔记不同继承树的类也可以实现相同的接口当你把一个类当作多态类型运用时,相同的类型必定来自同一个继承树,而且必须是该多态类型的子类。定义为Canine类型的参数可以接受Wolf与Dog,但无法忍受Cat或Hippo。但当你用接口来作为多态类型时,对象就可以来自任何地方了。唯一的条件就是该对象必须是来自有实现此接口的类。允许不同继承树的类实现共同的接口对Java API来说是非常重要的。如果你想要将对象的状态保存在文件中,只要去实

2020-09-22 23:12:26 65

原创 《Head First Java》20200921读书笔记

P212-《Head First Java》20200921读书笔记当Dog不再是Dog传入一个Dog给会返回同一个Dog对象的类型引用的方法时public void go(){ Dog aDog = new Dog(); Dog sameDog = getObject(aDog); //无法过关。虽然这个方法会返回同一个Dog,但编译器认为这只能赋值给Object类型的变量 //编译器无法得知方法返回的其实是Dog,因此不会同意这项赋值}public Object getObject

2020-09-21 15:15:35 179

原创 《Head First Java》20200920读书笔记

P206-P212《Head First Java》20200920读书笔记回顾//ArrayListboolean remove(Object elem)//根据索引参数移动对象,如果list中没有元素返回trueboolean contains(Object elem)//如果和对象的参数相匹配的话返回trueboolean isEmpty()//如果list中没有元素返回trueint indexOf(Object elem)//返回对象参数的索引值或-1Object

2020-09-20 23:55:57 61

原创 《Head First Java》20200919读书笔记

《Head First Java》20200919读书笔记使用Object类型的多态引用开始以Object类型使用所有超适用性参数和返回类型之前,你应该要考虑到使用Object类型作为引用的一些问题。注意此处的讨论不涉及制作出Object类型的实例,这是在说以Object类型作为引用的其他类型。当你把对象装进ArrayList时,它会被当作Dog来输入与输出。ArrayList<Dog> myDogArrayList = new ArrayList<Dog>();//保存Do

2020-09-19 22:46:51 95

原创 《Head First Java》20200918读书笔记

《Head First Java》20200918读书笔记对象之母:Object在Java中的所有都是从Object这个类继承出来的。Object这个类是所有类的源头,它是所有类的父类。如果Java中没有共同的父类,那将无法让Java的开发人员创建出可以处理自定义类型的类,也就是说无法写出像ArrayList这样可以处理各种类的类。就算你不知道,但实际上所有的类都是从对象给继承出来的。你可以把自己写的类想象成是这样声明的:public class Dog extends Object{}事实

2020-09-18 22:08:10 68

原创 《Head First Java》20200917读书笔记

P206-《Head First Java》20200917读书笔记Java抽象类在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。父类包含了子类集合的常见的方法,

2020-09-17 22:55:24 195

原创 《Head First Java》20200916读书笔记

《Head First Java》20200916读书笔记P201 编译器不会让你初试化抽象类抽象类代表没有人能够创建出该类的实例。你还是可以使用抽象类来声明为引用类型给多态使用,却不用担心哪个创建该类型的对象,编译器会确保这件事。abstract public class Canine extends Animal{ public void roam(){ }}public class MakeCanine{ public void go(){ //这是可以的,因为你可以赋值子类对象

2020-09-16 23:11:36 47

原创 《Head First Java》20200915读书笔记

P197《Head First Java》20200913读书笔记第8章 接口与抽象类我们需要超越简单的继承并前进到只有通过设计与编写接口规格,才能达成的适应性与扩展性。很多Java功能若没有接口就无法工作。接口是一种100%纯抽象的类。抽象类是无法初始化的类。P200 不会被初始化的类通过标记类为抽象类的,编译器就知道不管在哪里,这个类就是不能创建任何类型的实例。让这个类不能被new出来,防止类被初始化。当你设计好继承结构时,你必须决定哪些类是抽象的,而哪些是具体的。具体的类是实际可以

2020-09-15 23:46:33 56

原创 20200914读书笔记

20200914读书笔记Java基础语法一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的行为和状态。方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。Java变量一个类可以包含以下类型变量

2020-09-14 16:33:07 56

原创 《Head First Java》20200913读书笔记

《Head First Java》20200913读书笔记多态通过声明为父型类型的对象引用来引用它的子型对象。运用多态时,引用类型可以是实际对象类型的父类

2020-09-13 17:51:31 103

原创 《Head First Java》20200912读书笔记

P182-P191《Head First Java》20200912读书笔记继承的意义避免了重复的程序代码定义出共同的协议继承让你可以确保某个父型之下的所有类都会有父型所持有的全部方法也就是说,你会通过继承来定义相关类间的共同协议多态的运行运行多态时,引用类型可以是实际对象类型的父类参数和返回类型也可以多态class Vet{ public void giveShot(Animal a){ //a参数可以用任何Animal的类型对象来当传入。执行到makeNoise()的

2020-09-12 16:55:21 82

原创 《Head First Java》20200911读书笔记

P165-P181《Head First Java》20200911读书笔记第七章 继承与多态子类会自动获得父类的功能。覆盖的意思是由子类重新定义继承下来的方法以改变或延伸此方法的行为。父类比较抽象,子类比较具体。继承的运行方法在设计继承时,把共同的程序代码放在某个类中,然后告诉其他的类,说此类是它们的父类。当某个类继承另一个类的时候,也就是子类继承自父类。以Java的方式说,这就是“子类继承父类”。继承的关系意味着子类继承了父类的方法。当我们提及“类的成员”时,成员的意思就是实例变量和

2020-09-11 19:08:10 125

原创 《Head First Java》20200910读书笔记

P156-P164《Head First Java》20200910读书笔记P156 第六章要点ArrayList是个Java API的类。使用add( )来新增ArrayList的元素。使用remove( )来删除ArrayList中的元素。要寻找某项元素的位置,使用indexOf( )。使用isEmpty( )来判别ArrayList是否为空。要取得ArrayList的大小,可以使用size( )方法。传统的数组可以用length这个变量取得大小。ArrayList会自动地调整大小

2020-09-10 21:05:47 54

原创 《Head First Java》20200909读书笔记

《Head First Java》20200909读书笔记第六章 开发真正的Sink a Dot Com游戏创建一个攻击格子游戏,有7X7的格子和3间DotCom公司。每个DotCom占用3个格子。游戏目标:以最少的猜测次数打掉计算机所安排的DotCom网站。计算机会根据你的表现来评分。初试设置:程序启动后,计算机会在虚拟的7X7方格上安排3个DotCom网站。安排完成后,游戏会要求你开始猜坐标。进行游戏:命令行进行。计算机会提示你输入所猜测的位置(格子),你会输入“A3”或“C5”等

2020-09-09 21:44:00 168

原创 《Head First Java》20200908读书笔记

第六章DotComBust游戏class DotComBustpackage SinkaDotCom;import java.util.*;public class DotComBust { private GameHelper helper = new GameHelper(); private ArrayList<DotCom> dotComsList = new ArrayList<DotCom>(); private int numOfGuesses

2020-09-08 20:14:49 93

原创 《Head First Java》20200907读书笔记

P137《Head First Java》20200907读书笔记P137一般数组在创建时就必须确定大小存放对象给一般数组时必须指定位置一般数组使用特殊的语法在Java5.0中的ArrayList是参数化的

2020-09-07 22:33:07 82

原创 《Head First Java》20200906读书笔记

P125-P137《Head First Java》20200906读书笔记第6章 认识Java的APIJava内置有数百个类核心Java函数库是由一堆等着被你当作组件使用的类集合而成的,可以大量运用这些预先创建好的组件来写程序ArrayListArrayList的操作创建ArrayList<Egg> myList = new ArrayList<Egg>();//创建出Egg类型的List//新的ArrayList对象会创建在堆上加入元素E

2020-09-06 18:17:06 130

原创 《Head First Java》20200905读书笔记

《Head First Java》20200905读书笔记第五章 编写程序for(int cell : locationCells) { }循环的声明:对locationCells中每个元素执行一次,每次循环都会将内容赋给cell变量。for循环对nameArray中的每个元素执行一次创建名称为name的String变量将nameArray的第一个元素值赋给name执行重复的内容赋值给下一个元素name重复执行至所有元素都被运行为止转换成primitive主数据类型

2020-09-05 21:48:55 80

原创 《Head First Java》20200904读书笔记

P95《Head First Java》20200904读书笔记第五章 编写程序高层设计游戏的简单版程序的编写:找出类应该做的事列出实例变量和方法编写方法的伪码编写方法的测试用程序实现类测试方法除错或重新设计每个类的编写:编写伪码编写测试码编写真实码伪码:实例变量的声明、方法的声明、方法的逻辑测试码:先写出测试用的部分class SimpleDotComTestDrivepackage SimpleDotComGame;public class S

2020-09-04 21:31:42 149

原创 《Head First Java》20200903读书笔记

P82《Head First Java》20200903读书笔记P82GoodDog.javapackage GoodDog;class GoodDog { private int size; public int getSize() { return size; } public void setSize(int s) { size = s; } void bark() { if(size > 60) { System.out.println

2020-09-03 15:38:21 101

原创 《Head First Java》20200902读书笔记

P78-P82《Head First Java》20200902读书笔记P78 参数和返回值类定义对象所知及所为。对象所知者是实例变量。对象所为者是方法。方法可依据实例变量来展现不同的行为。方法可使用参数,这代表你可以传入一个或多个值给方法。传给方法的参数必须符合声明时的数量、顺序和类型。传入与传出的值类型可以隐含地放大或是明确地缩小。传给方法的参数值可以是直接指定的文字或数字,或者是与所声明参数相同类型的变量。如果方法声明了非void的返回类型,那就一定要返回与声明类型相同的值。

2020-09-02 23:54:57 107

原创 《Head First Java》20200901读书笔记

P71-P77《Head First Java》20200901读书笔记P71状态影响行为,行为影响状态。对象有状态和行为两种属性,分别由实例变量与方法来表示。面向对象的重点——行为依据状态来决定。方法会用到实例变量的值。在编写类时,是在描述Java虚拟机应该如何制作该类型的对象。类所描述的是,对象知道什么与执行什么。P73敲一下实例:package DogBarkDifferent;public class Dog { int size; String name;

2020-09-01 21:30:08 96

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除