
JAVA
damon-lin
这个作者很懒,什么都没留下…
展开
-
加强版的for循环
加强版的for循环从Java5.0开始,Java语言就有称为加强版的for循坏,它能够很容易地逐个运行数组或其他集合的元素。这是个很好的强化功能,因为这是for循环很常见的用途。我们会在讨论非数组的集合时再次看到加强版的for循环。for (String name : nameArray) { }1、String name--声明会带有数组单一元素的循环变量,数组元素的类型原创 2013-08-15 20:12:52 · 1486 阅读 · 0 评论 -
抽象类与具体类
抽象类与具体类不是抽象的类就被称为具体类。在Animal的继承树下,如果我们创建出Animal、Canine与Feline的抽象类,则Hippo、Wolf等就是具体的类。查阅Java API你就会发现其中有很多的抽象类,特别是GUI(Graphical User Interface即图形用户界面的缩写)的函数库中更多。GUI的组件类是按钮、滚动条等与GUI有关的类。你只会对组件原创 2013-08-16 09:36:04 · 1502 阅读 · 0 评论 -
从某个构造函数调用重载版的另一个构造函数
从某个构造函数调用重载版的另一个构造函数如果有某个重载版的构造函数除了不能处理不同类型的参数之外,可以处理所有的工作。那要怎么办?你不想让相同的程序代码出现在每个构造函数中,所以你想把程序代码只摆在某个构造函数中(包括对super()的调用)。如此一来,所有的构造函数都会先调用该构造函数,让它来执行真正的构造函数。这很容易,只要调用this()或this(aString)或this原创 2013-08-16 17:59:09 · 1105 阅读 · 0 评论 -
非静态方法与静态方法的差别
非静态方法与静态方法的差别Java是面向对象的,但若处于某种特殊的情况下,通常是实用方法,则不需要类的实例。static这个关键词可以标记出不需要实例的方法。一个静态的方法代表说“一种不依靠实例变量就能够调用的方法”。带有静态方法的含义带有静态的方法的类通常(虽然不—定是这样)不打算要被初始化。这并不是说有一个或多个静态的方法的类就不能被初始化。因此你可以任意地在类中组合静原创 2013-08-16 18:05:28 · 727 阅读 · 0 评论 -
关键字final的用法!!
静态的final变量是常数一个被标记为final的变量代表它一旦被初始化之后就不会改动。也就是说类加载之后静态final变量就一直会维持原值。以Math.PI为例:public static final double PI = 3.141592653589793;此变量被标记为public,因此可供各方读取。此变量被标记为static,所以你不需要Math的实例。此原创 2013-08-16 18:36:01 · 727 阅读 · 0 评论 -
java进阶--继承类
java进阶--继承类原创 2014-04-30 13:46:49 · 890 阅读 · 0 评论 -
java进阶--嵌套类和接口
java进阶--嵌套类和接口原创 2014-05-06 13:25:23 · 1771 阅读 · 0 评论 -
java单例模式--工厂模式
java单例模式--工厂模式原创 2014-04-22 21:20:26 · 1215 阅读 · 0 评论 -
android开发要点
android开发要点原创 2014-05-10 23:50:25 · 1064 阅读 · 0 评论 -
正则表达式
正则表达式原创 2014-04-26 13:55:29 · 844 阅读 · 0 评论 -
常用正则表达式
常用正则表达式原创 2014-04-26 14:34:10 · 830 阅读 · 0 评论 -
think in java 读书笔记
think in java 读书笔记原创 2014-06-08 16:36:22 · 1247 阅读 · 0 评论 -
java中ArrayList和LinkList的区别
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势转载 2014-07-07 08:15:19 · 1056 阅读 · 0 评论 -
Java Collection
在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便。这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟知的。例如Map,Set,List等。并且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负担。程序员也可以以这个集合框架为基础,定义更高级别的数据抽象,比转载 2014-07-07 08:42:17 · 704 阅读 · 0 评论 -
JavaIO总结
JavaIO总结原创 2014-10-29 22:23:12 · 1129 阅读 · 0 评论 -
抽象类
Animal对象应该长什么样子?创建出Wolf对象或Hippo对象或Tiger对象是很合理的,但是Animal对象呢?它应该长什么样子?什么颜色,大小,几条腿?我们一定要有Animal这个类来继承和产生多态。但是要限制只有它的子类才能够被初始化。我们要的是Lion、 Hippo对象,而不是Animal对象。幸好,有个方法能够防止类被初始化。换句话说,就是让这个类不能被“new”原创 2013-08-16 09:29:00 · 667 阅读 · 0 评论 -
接口interface
接口是我们的救星!接口可以用来解决多重继承的问题却又不会产生致命方块这种问题。接口解决致命方块的办法很简单:把全部的方法设为抽象的!如此一来,子类就得要实现此方法,因此Java虚拟机在执期间就不会搞不清楚要用那一个继承版本。接口的定义:public interface Pet {…}接口的实现:public class Dog extends Canine im原创 2013-08-16 16:10:43 · 683 阅读 · 0 评论 -
万能的Object
非Animal呢?为何不写个万用类?你知道这要怎么做。我们可以修改数组的类型,并且调整add()方法的参数,以处理Animal之上的类。那便是更通用、更抽象的类。但是真的有这种类吗?我们设计的Animal并没有父类不是吗?事实上是有的。还记得ArrayList的方法吗?它们是通过对象Object这个类型来操纵所有类型的对象。在Java中的所有类都是从Object这个类继承出原创 2013-08-16 09:49:34 · 756 阅读 · 0 评论 -
集合ArrayList
集合ArrayList在Java里还有一类东西与数组类似,也是有着特性的一组数(或是对象),叫做集合类(ArrayList),集合类能够根据元素的多少自动缩小放大,还能够让你取出数据而不必管理集合的细节。ArrayList的操作1、创建ArrayList myList = new ArrayList ();//新的ArrayList对象会创建在堆上2、加入元素原创 2013-08-15 20:31:30 · 798 阅读 · 0 评论 -
使用函数库(Java AP)
使用函数库(Java AP)在Java的API中,类是以包的形式进行组织和管理的。要使用API中的类,你必须知道它被放在哪个包中。在Java函数库中的每个类都属于某个包,这些包都有个名字, ArrayLisi是放在java.util这个包中。顾名思义,java.util放了很多工具类。使用来自API的类是很简单的。只要把它们当作是自己写的就好,但是其中还有一个很大的不同:在原创 2013-08-15 20:41:37 · 1675 阅读 · 0 评论 -
了解继承
了解继承在设计继承时,你会把共同的程序代码放在某个类中,然后告诉其他的类此类是它们的父类。当某个类继承另一个类的时候,也就是子类继承自父类。以Java的方式说,这是“子类继承父类”。继承的关系意味着子类继承了父类的方法。当我们提及“类的成员”时,成员的意思就是实例变量和方法。举例来说,如果PantherMan是个SuperHero的子类,则PantherMan会自动地继承S原创 2013-08-15 20:48:56 · 732 阅读 · 0 评论 -
封装
封装在此之前我们已经犯了—个在面向对象界最糟糕的错误。我们哪里有错呢?泄露资料!我们并没有注意到数据会被全世界的人看到,甚至还可以被改动。你可能经历过暴露出实例变量的不愉快感觉。暴露的意思是通过圆点运算符来存取,像是:theCat.height = 27;你可以把这件事情看做是直接通过远程控制修改theCat的实例变量,若远程控制落入不当之人的手上。变量就可能会成为杀原创 2013-08-15 20:17:59 · 589 阅读 · 0 评论 -
比较ArrayList与一般数组
比较ArrayList与一般数组1、一般数组在创建时就必须确定大小但对干ArrayList来说,你只需要创建出此类型的对象就行。它不需要指定大小,因为它会在加入或删除元素时自动地调整大小。new String[2]; //需要制定大小new ArrayList (); //不需要指定大小2、存放对象给一般数组时必须指定位置(必须要指定介于0到比length小1原创 2013-08-15 20:37:23 · 758 阅读 · 0 评论 -
调用哪个方法?
调用哪个方法?Wolf这个类有4个方法,其中一个继承自Animal,一个来自Canine(实际上也是覆盖过Animal的方法),还有两个是自己覆盖过的。当你创建出一个Wolf对象并赋给它变量时,你可以使用圆点运算符来调用变量所引用对象的方法。但是这会调用哪个版本的方法呢?Wolf w = new Wolf(); //创建大野狼对象w.makeNoise();原创 2013-08-15 21:20:15 · 641 阅读 · 0 评论 -
继承到底有计么意义?
继承到底有计么意义?通过提取出一组类之间共同的特性,你能够去掉重复的程序代码而将这个部分放在父类中,如此一来,如果有共同的部分需要改变,就只修改一个地方就可以了,且这样的改变会应用到所有继承此行为的子类,修改之后只需要重新编译就行,不必动子类!这样,换上修改过的父类,则所有扩充过它的类都会自动使用到新的版本。Java程序只是由一堆类组成的,因此,子类不需要重新编译就能运用到新版原创 2013-08-15 21:22:20 · 742 阅读 · 0 评论 -
多态的运行
多态的运行若要观察多态是如何运行的,我们就必须先退回看看一般声明引用和创建对象的方法,对象声明,创建与赋值的3个步骤:Dog myDog = new Dog();1.声明一个引用变量要求Java虚似机分配空间给引用变量,并将此变量命名为myDog。此引用变量将永远被固定为Dog类型。2.创建对象要求Java虚拟机分配堆空间给新建立的Dog对象。3.连接对象和原创 2013-08-15 21:35:41 · 799 阅读 · 0 评论 -
设计继承树1
设计继承树1以狮子、老虎、狗、猫、狼、河马为例设计继承树。步骤如下:1、找出具有共同属性和行为的对象这6种动物有什么共同点?这些类型有什么相关性? 这么问有助于执行后面几个步骤。2、设计代表共同状态与行为的类这些对象都是动物,因此我们可以用Animal作为共同父类的名称。我们会把所有动物都需要的方法和实例变量加进去。public class Animal {原创 2013-08-15 20:58:35 · 1738 阅读 · 0 评论 -
设计继承树2
设计继承树24、通过寻找使用共同行为的子类来找出更多抽象化的机会我们观察到这六种动物都有makeNoise()和eat()两种方法的共同部分,而Wolf与Dog可能有某些共同的行为,在Lion、Tiger、Cat之间也是如此。5、完成类的继承层次因为动物本来就有组织化的层次(界、门、纲、目、科、属、种),我们可以用这些层次来制作有意义的类设计。我们使用猫科和犬科动物的分原创 2013-08-15 21:02:59 · 1111 阅读 · 0 评论 -
不同继承树的类也可以实现相同的接口
不同继承树的类也可以实现相同的接口当你把一个类当作多态类型运用时,相同的类型必定来自同一个继承树,而且必须是该多态类型的子类。定义为Canine类型的参数可以接受Wolf与Dog,但无法忍受Cat或Hippo。更棒的是类可以实现多个接口!通过继承结构,Dog对象IS-A Canine、IS-A Animal、IS-A Object的关系是成立的。但Dog IS-A Pet是原创 2013-08-16 16:18:17 · 809 阅读 · 0 评论 -
如何调用父类的构造函数?
如何调用父类的构造函数?如果想要在子类的构造函数中调用父类的构造函数该怎么办呢?调用父类构造函数的唯一方法是调用supper()。它看起来会像下面这样:public class Duck extends Animal { int size; public Duck{int newSize) { super(); //调用父类的构造函数原创 2013-08-16 16:48:07 · 1977 阅读 · 0 评论 -
有参数的父类构造函数
有参数的父类构造函数如果父类的构造函数有参数该怎么办?你能够传值进去吗?如果不行的话,则没有无参数构造函数的类将不能被继承。想象这个情景:所有的动物都有名字。所以Animal这个类有个getName()可以返回name实例变量的值。此实例变量是被标记为私有的,但Hippo这个子类有把getName()继承下来。这时候问题来了:Hippo有getName()这个方法但是没有nam原创 2013-08-16 16:51:54 · 1716 阅读 · 0 评论 -
多态的使用
多态的使用假设我们不知道有ArrayList这种类而想要自行编写维护的类以保存Dog对象,此时我们可以采用数组的方式来实现。在这个例子中我们只会写出add()方法。我们使用大小为5的简单Dog数组(Dog[])来保存新加入的Dog对象。当Dog对象超过5个时,你还是可以调用add()方法,但是什么事情也不会发生。如果没有越界,add()会把Dog装到可用的数组位置中,然后递增可用索原创 2013-08-16 09:45:38 · 869 阅读 · 1 评论 -
金三银四面试季节之Java 核心面试技术点 - JVM 小结
描述一下 JVM 的内存区域程序计数器(PC,Program Counter Register)。在 JVM 规范中,每个线程都有它自己的程序计数器,并且任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的 Java 方法的 JVM 指令地址;或者,如果是在执行本地方法,则是未指定值(undefined)。Java 虚拟机栈(Java Virtual...原创 2019-03-24 11:27:35 · 293 阅读 · 0 评论