定义: 在类中使用static修饰的静态方法会随着类的定义而被分配和装载入内存中;而非静态方法属于对象的具体实例,只有在类的对象创建时在对象的内存中才有这个方法的代码段。...原因: 因为静态方法和静态数据成员会随着类的定义而被分配和装载入内存中,而非静态方法和非静态数据成员只有在类的对象创建时在对象的内存中才有这个方法的代码段。...return t; } } } 总结: (1)static修饰的静态方法会随着类的定义而被分配和装载入内存中,编译器只为整个类创建了一个静态变量的副本...(2)静态不能引用非静态这一特性,是由于静态的会随着类的定义而被分配和装载入内存中这一关键点决定的;如果静态引用了非静态的,根本无法从内存中找到非静态的代码段,势必会出错,这种做法是Java虚拟机决不允许的...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
Exception 的作用,这个问题是一个开放性的问题,没有标准的答案,不同经历的人可能会有不同的答案,也就是说经历过惨痛的经历后,才会对Java Exception 有深刻的认识,单纯理论学习,按部就班的按所谓的规范使用...Java 中的NullPointerException 对外提供的信息极少,所以应用系统应该尽可能catch 这类异常,包装为信息量更加丰富的异常抛出。...其实,大都数异常,程序都应该有一定的相应的处理逻辑,例如,ArrayIndexOutOfBoundsException,这类异常在编码过程中应该能够被预见,并需要做出现相应的逻辑控制,有经验的程序员,在编码的过程中就已经考虑到各种异常的情况...有什么区别,在什么场景下定义,也是一个仁者见仁,智者见智的问题,Java 没有任何指导建议,按我个人的判断,JDK中也有很多的定义也不是特别合理,例如:IndexOutOfBoundsException...结论 针对Java 异常的解读是我个人的见解,就像古诗词一样,不同人有不同的解读,相信JDK 的设计者也无法给 Java Exception 一个明确的解释和原则,只能靠历史经验的积累和不断的错误中,逐形成相对完整的理论
Object类的getClass的用法: Object类中有一个getClass方法,m a r k- t o- w i n:它会返回一个你的对象所对应的一个Class的对象,这个返回来的对象保存着你的原对象的类信息...,比如你的原对象的类名叫什么,类里有什么方法,字段等。...在高级编程当中用的很多,和反射相关。马克-to-win:现在这个阶段还说不清楚,只能先打个比方,反射就像镜子,你觉得生活当中的镜子有用吗?
让我们了解一下它对我们有什么作用以及如何使用。 抽象主义:无原则者出售的未经惩罚的产品。Al Capp 我猜您听说过称为ADD或注意力缺陷障碍的疾病。...Java抽象类 Java具有不完整的抽象类。它们不能像常规类那样实现,必须对抽象类进行子类化才能使用。在这些类中,我们可以声明抽象方法。抽象类类似于Java中的接口。让我们更深入地进行比较。...比较 像接口一样,抽象类无法实例化。如果接口仅包含方法签名,则抽象类可以包含方法主体。抽象类可以声明非静态和final字段。 Java教程在使用抽象类时提供了一些很好的指导。...如您所见,抽象类在Java中占有一席之地。与interface(接口)相似,但使用方式不同。 您在哪里使用过Java接口? 结尾 在这里,这篇翻译就结束了。...这是篇Java的基础入门级文章,但是也体现出了Java abstract(抽象类)的重要性,以及简单的入门。
抽象类和抽象方法有什么用呢?马克-to-win:当初sun公司为什么要设计抽象类和抽象方法呢?...当你在做车的系统设计时,当你设计车这个通用类时,假如你确认别人实例化车这个通用类没有意义时(不知道是bike还是豪华轿车),你就坚决的在车这个通用类的类名前冠以abstract,将来就没人能实例化车这个类了...所以你写个驾驶steer方法,冠以abstract,这样后来的子类,必须得把这个抽象方法实现掉。通过这种方法,你做架构设计的人就规定了后人的行为:必须得把驾驶这个抽象方法实现。
1.1 ArrayList的用法 马克-to-win:ArrayList是List接口的众多实现类其中的一个: 可以使我们快速访问元素,马克-to-win:为什么?...因为它的内部组成结构就像Array一样,而且提供了可以直接访问第几个元素的方法比如下面例子中的get(index),但往其中插入和删除元素时,速度却稍慢。与LinkedList相比,它的效率要低许多。...(新手可忽略)和vector相比: (from java documentation: ArrayList is roughly equivalent to Vector, except that it...但多数情况下不使用Vector,因为线程安全需要更多的系统开销。...一个ArrayList的实例: 例:1.1.1 import java.util.ArrayList; public class TestMark_to_win { public static
3.7 TreeMap的用法 马克-to-win:TreeSet是按升序顺序输出的。...TreeMap也是按升序输出,但是和它的区别就是TreeSet存储的是单个元素,而TreeMap存储的是一个一个的键值对。...例:3.7.1 import java.util.*; public class TestMark_to_win { public static void main(String args[]...tm.put("ww", new Double(2345.00)); tm.put("zl", new Double(3323.22)); /* entrySet取出一个一个的键值对
3.1 Vector的用法 马克-to-win:Vector和ArrayList很类似,前面讲了二者的区别,就在于同步的问题上,Vector的使用是非常简单的:先创建一个,再用addElement(...)置入对象,以后用elementAt()取得那些对象 例:3.1.1 import java.io.*; import java.util.*; public class TestMark_to_win
2.2 TreeSet的用法 TreeSet 二叉查找书,所以结果为升序,任何顺序添加打印结果都为升序。 ...例:2.2.1 import java.io.*; import java.util.*; public class TestMark_to_win { public static void
2.1 HashSet的用法 对象也必须定义hashCode(),比如下面例子2.1.1中的String类中就定义了hashCode方法。...h.add("1"); 但随着Set的增大,它的性能不会大打折扣。这是由Hash的低层结构决定的。HashSet不保证输出的顺序。...例:2.1.1 import java.util.*; public class TestMark_to_win { public static void main(String args[
3.8 HashMap的用法 马克-to-win:HashMap和HashSet很像,只不过它里面存的是一个一个的键值对。...例:3.8.1 import java.util.*; public class TestMark_to_win { public static void main(String[] args
一个Collections的例子 马克-to-win: 在操纵ArrayList里面的内容时, 通常我们利用Collections。Collections是集合框架中的一个工具类。...例:1.1.3 import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; public
3.4 Arrays的用法 马克-to-win:Arrays这个类包含着操纵Array的方法。...例:3.4.1 import java.util.Arrays; public class TestMark_to_win { public static void main(String args... System.out.print(a2[i]); /*public static boolean equals(int[] a1, int[] a2) 判断两个数组是否包含同样多的元素
一个Iterator的实例 想遍历ArrayList里面的内容,通常先生成一个“迭代器”(Iterator), 之后利用它里面的iterator()方法,马克-to-win:Iterator就像一面镜子...,能照出集合类中的内容。...通过遍历,能得到集合类中的内容。...例:1.1.2 import java.util.ArrayList; import java.util.Iterator; public class TestMark_to_win {
3.9 Properties的用法 马克-to-win:Properties里面存着也是键值对,而且它更方便java对配置文件,字符串的操作, 例:3.9.1 import java.util
3.6 Comparator的用法 马克-to-win:和Comparable的思路一样,只不过排序规则这次是在Comparator的继承类的compare方法中定义。...例:3.6.1 import java.util.*; // A reverse comparator for strings. class MyComp implements Comparator {...java.lang Class Object implement equals method, so its sub-class MyComp does not need to ...implement equals method, while java.lang Class Object does not implements compare mathod. *
1.2 LinkedList的用法 LinkedList也是List接口的实现类,提供快速的顺序访问性能,同时可以高速地在列表中插 入和删除。但随机访问时,速度却很慢,此时应换用ArrayList。...马克-to-win: 前面讲这是由他们的内部结构决定的。...例:1.2.1 import java.util.*; public class TestMark_to_win { public static void main(String args[])
C#的类中可以包含两种方法:静态方法和非静态方法。 使用了static 修饰符的方法为静态方法,反之荝是非静态方法。 ...1.static方法是类中的一个成園方法,属于整个类,即不用創建任何对象也可以直接调用! static内部只能出现static变量和其他static方法!...洏且static方法中还不能使用this....等关键字..因为它湜属于整个类! 2.静态方法效率上要比实例化高,静态方法的缺点是不洎动进垳销毁,洏实例化的则可以做销毁。 ...3.静态方法和静态变糧创建后始终使用哃一赽内存,而使用實例的方式会创建多个内存. 4.C#中哋方法有两种:实例方法,靜态方法. ...,所以悱靜态成员可以直接访问类中静态的成员.
神奇的是:java的IO包里的各种各样的类竟然把上面的所有IO情况(文件、控制台、网络连接)都能一把抓轻松搞定。这章我们学文件,控制台, 下章我们学网络连接。
异常的意义:马克-to-win:通过上面的例子,我们看出通过引入异常这种技术,即使出现不测(用户把0赋给除数),也可以让程序不崩溃,还能继续优雅 的运行。那,这种技术有用,值得学。...马克-to-win:当你批量下载文件时,如出现什么错误,你是不是希望下载器能告诉你出现了什么问题,比如硬盘不足 等等,在你提供了足够的硬盘空间以后,下载继续自动进行。