学习
文章平均质量分 62
zhixiakanshanhe
这个作者很懒,什么都没留下…
展开
-
【Thinking in Java】一切都是对象
存储位置:1. 寄存器(CPU)2. 栈(内存)3. 堆(内存)4. 程序代码内部5. 流对象和持久化对象new出来的对象都放在堆里(堆的分配很灵活,但是需要消耗时间),基本类型对象放在栈里,String放在堆里。对象不需要销毁(垃圾回收机制)。static关键字,“当声明一个事物是static时,就意味着这个领域或方法不会与包含他的那个类的原创 2016-09-12 22:24:55 · 231 阅读 · 0 评论 -
【Thinking in Java】操作符
Java在方法调用过程中传递的是“对象的引用”,但对于基本数据类型,传递的是参数的拷贝。所以下列代码输出的分别是Z和4。public class Letter { char c;}public class PassObject { public static void main(String args[]){ Letter x=new Letter(); int a=4;原创 2016-09-13 21:23:09 · 325 阅读 · 0 评论 -
【Thinking in Java】控制执行流程
逗号操作符和逗号分隔符:逗号分隔符用来分隔函数中的不同参数,而Java中唯一用到逗号操作符的是for循环的初始化和步进控制部分。利用逗号操作符,for循环可以定义具有相同类型的多个变量,只能是相同类型。foreach语法:public class ForEachInt { public static void main(String args[]){ int[]原创 2016-09-14 23:49:57 · 274 阅读 · 0 评论 -
【Thinking in Java】初始化与清理(一)
方法重载方法名相同,方法参数列表不同(参数个数、类型、顺序),称之为重载。参数顺序不同虽然也能区分两个方法,但是会使得代码难以理解,不建议使用。方法的返回值是不能区分方法的。对于一个返回int的func()和一个返回void的func(),你都能在代码里直接调用func()而不赋值给另一个变量,所以不能通过返回值重载。默认构造器每个类都有一个默认构造器,但是当你定义了一原创 2016-09-19 00:55:18 · 364 阅读 · 0 评论 -
【Thinking in Java】复用类
复用的三种方式:组合、继承、代理(代理是组合和继承的结合,Java中没有直接支持。通过将A类组合在B类中,并在B类中暴露A的所有接口来实现)组合:将对象引用置于新类中即可。表示has-a关系。继承:子类从父类继承得到父类的方法和变量,再根据自己需要对方法和变量进行增加和修改。表示is-a关系。可以认为子类对象中包含了一个父类对象,所以在构造一个子类对象时,会原创 2016-10-08 23:42:42 · 288 阅读 · 0 评论 -
【Thinking in Java】初始化与清理(二)
局部变量不会自动进行初始化,而类变量会在new出一个对象时,Java会在堆中为此对象分配一个内存块,并将内存块上的数据全部清零。这就是为什么类变量会自动初始化成0和null的原因。初始化顺序静态变量—>类变量—>构造方法,且静态变量只初始化一次,类变量可能会初始化多次(eg: 对同一个类new出两个对象时)。数组的“复制”把一个数组赋值给另一个数组,其实真正做的原创 2016-09-19 23:55:23 · 310 阅读 · 0 评论 -
【Thinking in Java】访问权限控制
访问权限控制等级原创 2016-10-08 23:40:05 · 364 阅读 · 0 评论 -
【Thinking in Java】多态
方法调用绑定:将一个方法调用和方法主体关联起来叫做绑定。即:编译器遇到了一个方法调用,就会把程序陷入进与之绑定的方法主体内。绑定分为前期绑定和后期绑定。前期绑定:在程序运行前绑定,即编译连接过程中。我的理解是:Java不会去找是哪个对象进行了这次方法调用(因为这时根本就没有对象),而是在引用所在的类中找到相应方法并绑定。以下代码同理,Father类型的引用f不能调用Son类原创 2016-10-09 23:47:33 · 240 阅读 · 0 评论