
java基础
文章平均质量分 82
wangzijian777
这个作者很懒,什么都没留下…
展开
-
类的构造和销毁
<br />额,罪过做过,已经好几天没写博客了,今天多补几篇,嘿嘿。<br />想了想,其实大部分内容都是看书的总结而已,算不上原创,以后如果没有比较多的自己的代码还是写成装载比较好。<br /> <br />这里主要记录一下类的构造,初始化和销毁的过程。<br />构造<br />有如下几个特别的地方java延续了c++的方式使用构造器进行构造。有一个默认构造器,如果自定义了构造器则默认构造器不再存在。构造器能够重载。重载之后如果想调用本类的其他构造器可以使用this(param)。如果是想调用父类的构造转载 2010-11-27 23:24:00 · 603 阅读 · 0 评论 -
java 的优势和特性
<br /> java语言的父亲是james gosling ,最初是应用于电视机机顶盒的语言。后来在网络应用中大放异彩,借用了爪哇岛咖啡豆的名字命名为java。此外java语言在设计其javaee时也用了java bean这个名词,这个bean也是咖啡豆,gosling太喜欢喝咖啡了吧。<br /><br /> java能够如此的流行主要是因为它有着很多的优势。<br /> 跨平台,安全,多线程,运行时才选择执行的代码。 跨平台<br /> 因为java在设计的时候是使用了把原创 2010-11-21 11:19:00 · 589 阅读 · 0 评论 -
新I/O
<br /> 在JDK1.4的java.nio.*包中引入了新的I/O库,主要目的是为了提高速度,原有的I/O库也已经使用nio重新实现过了。速度的提高来自于nio所使用的结构更接近于操作系统执行I/O的方式,使用了通道和缓冲器,我们直需要和缓冲器交互,并把缓冲器派送到通道。<br /> 那么根据上面的说明,我们操作流时所做的事情就应该是得到通道,然后从通道中得到缓冲器,操作缓冲器得到数据。或者是把数据保存到缓冲器然后把缓冲器送给通道。看例子:<br />public class Get原创 2011-01-11 20:54:00 · 605 阅读 · 0 评论 -
正则表达式
<br />java中的正则表达式遵循了像Python,unix中的一些工具相同的语法,使得正则表达式可以通用。<br />正则表达式是强大而灵活的文本处理工具。他们可以让我们以变成编程的方式找到文本中符合某种模式的内容,<br />然后我们能够对这些内容进行处理,例如:匹配、验证、选择等等。<br /><br />介绍常用的正则表达式模式。在jdk文档的Pattern类中有更加详细的模式说明<br />构造 匹配<br />字符<br />x原创 2011-01-11 20:59:00 · 551 阅读 · 0 评论 -
I/O 文件操作
<br />在学习I/O之前,先来了解一下java类库中的文件类,因为后面学习的内容中会使用文件作为流读取的起点和写入数据的终点。<br /><br />File这个类不单单代表了一个文件,还能代表一个目录。第一个例子就是获取一个目录下面制定格式的文件。<br />public class DirList { void filePath(){ File path = new File("."); // new File("/")是获取根目录,对于window来说就是获取到盘符。 S原创 2010-12-21 21:01:00 · 499 阅读 · 0 评论 -
I/O 流的使用
<br />介绍了流的分类之后,我们知道了如果想使用流,就需要在InputStream上加入一定的修饰器来进行操作。那么现在就来看一下通常我们是如何来使用流来进行操作的。<br />看例子:<br />public class IOStreamDemo { /** * 按行读取 */ public String readByLines(File file) throws IOException{ BufferedReader reader = new BufferedReader(原创 2010-12-22 21:51:00 · 519 阅读 · 0 评论 -
I/O 流分类
I/O 就是输入/输出。使我们获取和持久化数据所需要用到的方式。比如从文件中获取内容到内存中,物理设备可能会把硬盘上对应的文件内容加载到内存中。java的I/O类库是采用流的概念来描述这些能够产生数据的源对象和能够接受数据的接受端对象的,以屏蔽物理设备上的操作。按照概念我们就能够知道流分为输入和输出两部分。查看jdk文档就会发现所有的输入流都是通过继承Inputstream和Reader而来的,都含有read()方法,用于读取。相对的所有的输出流都继承了OutputStream或Writer,含有write原创 2010-12-20 22:02:00 · 1495 阅读 · 0 评论 -
持有多个对象-容器
使用数组,我们已经能够持有多个对象了,但当持有的对象的数目在编译时不能确定,用数组就不能满足要求了,这个时候我们需要集合类,好的程序语言都有已经实现了的集合类库,java也不例外。编程语言提供的集合类有可能不相同,java提供的集合类,出于行为和性能的考虑,分为了两大种和很多不同的实现。java提供的容器分为两种collection和map.Collection是一组独立的元素,其子接口中list必须保持元素的顺序,set不能有重复的元素。Map是一组键值对儿。能返回键的Set。值的List。通过这个分类可原创 2010-12-18 18:49:00 · 691 阅读 · 0 评论 -
RTTI运行期类型识别
<br />当我们把一个对象装入容器之中其就会失去自己的类型,当取出来的在作为原来类型使用的时候需要强转,这就是一中运行期类别是别的表现。java中总共的表现有三种形式:强转,Class对象,和instanceof方法。<br /> <br />强转刚才已经说过。<br />Class对象<br />Class对象就是保持了类型信息的对象。当一个类加载之后就会产生一个Class对象,为了得到这个Class对象的引用我们可以有如下的方式:Class.forName()方法。这种方式有个弊端,就是参数必须是全路原创 2010-12-19 18:48:00 · 570 阅读 · 0 评论 -
持有多个对象-数组
<br />当需要持有多个对象的时候,我们可以选择的方式有数组和集合。<br />首先来看一个有关于数组的一些基本概念数组与其他容器的区别在于:效率、类型和持有基本类型的能力。考虑到效率和类型检查应该尽量使用数组。数组是一个引用,引用了堆上的一系列对象。大小固定。如果需要改变大小只能是新建一个数组,然后拷贝数组到新的数组中,ArrayList就是采用的这种方式。数组能够持有基本类型,而其他容器类只能够持有包装之后的类。<br />数组的声明与初始化<br />声明可以使用这样的方式<br />int[] a原创 2010-12-18 18:40:00 · 552 阅读 · 0 评论 -
异常与错误处理
<br />异常这部分含有的内容并不是很多。首先了解一下,什么是异常,异常都有哪些,再来看看如何捕获异常。<br />当java提供的异常不够用时如何创建我们自己的异常,我们是怎么样查看异常从哪里抛出, 以及我们应该如何来使用异常机制。<br />好,开始。<br /> <br />java异常处理概述<br />java的原则是让有危险的代码不能运行,因此它实现了类似于c++的异常机制。异常一旦发生,会在<br />堆上创建一个异常对象,终止当前的执行路径,由异常处理机制接管程序,寻找参数与异常类原创 2010-11-30 23:04:00 · 598 阅读 · 0 评论 -
内部类的使用2--链接到外部类
<br />我们先来看一段用java类库写的代码:<br />ArrayList countryList = new ArrayList(); countryList.add("china"); countryList.add("america"); Iterator it = countryList.iterator(); while(it.hasNext()){ System.out.println((String)it.next()); ; }<br />如果我们原创 2010-11-30 21:50:00 · 455 阅读 · 0 评论 -
内部类的使用1--隐藏实现
<br />内部类的声明和调用语法。内部类就是声明在其他类的内部的类。类中使用内部类,跟使用其他类没有什么不同。内部类作为一个成员跟其他变量也非常相像,能用final修饰,能访问其外部的变量等。在类外面创建一个外部类的实例时有两种方式。非静态时A.B ab = new A().new B()。静态的 A.B AB = A.new B();而通常情况下我们不会直接来new 这个类而是外部类提供一个方法给我们得到内部类的实例。另外一种使用办法是,你做了一件比较复杂的事情,但是又不想被人知道就可以使用内部类。原创 2010-11-29 22:03:00 · 703 阅读 · 0 评论 -
多态(polymorphic)
封装把接口与实现相分离,隐藏了实现的细节。继承允许了类把对象视为自己本身或者是父类就行处理的能力。而多态描述了同一对象对不同消息做出不同的反应。分离了做什么和怎么做。多态的必要条件:继承树,java默认的虚方法,向虚方法发送消息,虚方法在子类中被覆盖。java的基本特性之一就是动态绑定,动态绑定就是在执行的时候才把方法名和对应的代码相关联,能够动态绑定的方法也就是虚方法,也是多态的必要条件,有了动态绑定才能够在使用父类的引用根据实例的不同做出不同的反应。例如:package pacakageBase.pac原创 2010-11-29 21:53:00 · 460 阅读 · 0 评论 -
继承
<br />面向对象语言三个特性,封装继承多态。说完封装说继承。<br />达尔文的物种起源中提到,要用发展的眼光看问题,继承就是为了反映这个的。子类会继承父类中除了private,construtor,static类型以外的所有内容。<br />子类在使用这些方法的时候跟使用自己的没有不同,只是上一篇文章说的那样,继承来的成员的命名空间还是与父类相同的。<br />继承的一些语法规则:使用extends关键字。如果父类中有非默认的构造函数,需要在子类的构造函数中使用super(param)进行显示的调用。原创 2010-11-29 21:35:00 · 395 阅读 · 0 评论 -
封装与隐藏实现。
<br />在java设计原则中有一条是开闭原则,即对扩展开放,对修改关闭。<br />java设计一直以来追求的目标也是把可变的和不变的分开来。<br />我们还经常设想这样一种情况,当我们开发一段公用程序共给别人使用后,他最好只能够使用其中的功能,而不能够进行修改,最好是,我们进行修改的时候不会影响他的使用。<br />这些设计都需要我们能够进行很好的封装,把必要的展示给对方,而把隐私的部分隐藏起来。<br />java是通过java访问权限修饰符来达到这个目的的。<br原创 2010-11-28 00:04:00 · 514 阅读 · 0 评论 -
Java语法上的一些细节
像C++,C#啊,java啊这些高级语言的语法都差不多了。命名规范,基本类型,引用类型,一元二元三元运算符,表达式和流程控制。大概都是这么多内容吧。 这里就一些细节的容易忽略的地方进行记录。java命名规范以Unicode字母、下划线、美元符号开头,包含其他字符的,不是关键字key words保留字的组合,大小写敏感。是基于16bit的unitcode字符的。 java本身的字符集就是Unitcode的,这样在写代码时就会有可能出现乱码的情况,比如在url中出现的字符会自动改为gbk编码,还有在原创 2010-11-22 21:56:00 · 428 阅读 · 0 评论