
Java软件编程学习杂谈
文章平均质量分 63
liuwei1981
IT技术人,研发技术和研发管理知识分享,分享一个技术人的生活心得
展开
-
0.Java软件编程开篇
1.学习Java的目的是什么? 你到底是抱着什么样的目的要来学习Java的?为什么在众多的编程语言中选择了Java? 也许学习Java的目的很简单,你是一名计算机专业的学生(无论是大学生还是IT培训生),Java编程语言课程只是你众多专业课程中的一门而已,你学习Java只是为了拿到一个好成绩,获得好的的学分,然后顺利毕业,那么你对Java的了解就不需要那么多了,搞清楚考试的考点...原创 2011-09-03 14:56:53 · 130 阅读 · 0 评论 -
1.Java语言简介
这里我们简单介绍一下Java的由来以及发展简史,这些内容仅仅是作为Java编程学习的一个开篇罢了。跳过这部分内容,对你学习Java编程是不会有任何负面影响的。如果对Java的一些相关历史“八卦”感兴趣的话,可以作为消遣的资料来读一读,加入没什么兴趣,完全可以跳过去看接下来的内容了。 Java语言是由Sun公司设计发明,基础源自于C++语言。时间要追溯到1991年,Sun公司准备设计一个...原创 2011-09-03 14:58:04 · 147 阅读 · 0 评论 -
2.Java技术体系架构
自从Java1.2版本发布以来,Sun每次发布新的Java版本,都将Java分为三个体系,分别是:J2ME(Java 2,Micro Edition)、J2SE(Java 2,Standard Edition)、J2EE(Java 2,Enterprise Edition)。在推出5.0版本后,Java体系名称改成了Java ME(Java, Micro Edition)、Java SE(Java...原创 2011-09-03 14:59:17 · 113 阅读 · 0 评论 -
3.Java编程语言独特的运行机制
计算机高级编程语言,按照程序执行的方式来分的话,主要分为两大类型:编译型语言和解释型语言。下面我们先来说说这两种类型语言的分别。如果对这部分内容已经很清楚的话,可以跳过。 1.编译型: 编译型语言是指使用专门的编译器、针对特定平台(操作系统)将某种高级语言源程序一次性“翻译”成可被该平台硬件运行的机器码(包括指令和操作数),并包装成该平台的操作系统所能识别和运行的格式。这一过程...原创 2011-09-03 15:01:15 · 129 阅读 · 0 评论 -
4.Java语言运行机制基础——JVM
Java引进Java虚拟机技术,针对不同的平台,完全由软件模拟或由软件和硬件共同模拟,实现一台虚拟的计算机。在Java中引入了虚拟机的概念,即在机器和编译器之间加入了一层抽象的虚拟的机器。 这台虚拟的机器在任何平台上都提供给编译器一个共同的接口。编译器只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来执行。在一些JVM实现中,还可能会将虚拟机代码转换为特定系统的机器码执行,以提...原创 2011-09-03 15:02:15 · 113 阅读 · 0 评论 -
5.Java语言运行机制深入——JRE与JDK
Java运行时环境(Java Runtime Environment)提供了Java的运行环境。它主要由三部分组成:类加载器(class loader)、字节码校验器(bytecode verifier)以及运行时执行引擎(Java Runtime Execution Engine)组成。它们完成不同的功能:类加载器负责从一输入流加载Java字节代码;字节码校验器分析与Java类对应的字节代码流并...原创 2011-09-03 15:02:54 · 117 阅读 · 0 评论 -
开始恢复更新
因为工作的原因,不再从事IT软件开发培训这个行业了,转而继续干着自己以前的很熟悉的老本行。工作中总能克服自己的很多惰性的。比如一直想看看extJS的东西的,一直以各种理由拖着。工作中extJs成了重点,业余时间也花费了很多在这上面,算是有了比较清楚的认识和应用。反而是前期一直想做的Java开发培训积累停了下来。 现在的工作进入了稳定期,有了比较稳定的空余时间了。准备在最近恢复这个栏目的博客...原创 2012-06-18 09:39:17 · 95 阅读 · 0 评论 -
学习编程,API很重要么?
学习编程,API的重要性几何?在培训中,很多人问到了,学习Java,是否需要学习那些大量API的用法,从而成为一个精通Java编程开发的coder? 首先,学习Java,API是很重要的,这是毋庸置疑的。一门编程语言,学习起来,除了API,就是一些基本的语义和语法(再加上一些花边历史),如果只学习这些,那么基本上一周就够了。我记得当初学ruby,买了一本programming ruby...原创 2012-06-19 09:39:52 · 444 阅读 · 0 评论 -
关于Java学习博客的一些说明
刚才看了看这个分类前面发布的博客,这些博客基本是按照我培训的课程体系顺序来写的。如果你已经有一些编程的基础和经验(比如其他的编程语言,c,php等),看起来比较容易,如果完全是初学者一张白纸的话,只对计算机编程了解非常少的话,确实看起来云里雾里不知所云。 事实上这个课程体系设计,当初针对的学群是理工类专业三年级以上的学生,还假定有一定的计算机理论基础。后来该课程转而给初学入门的学生来讲授,...原创 2012-06-19 10:28:55 · 111 阅读 · 0 评论 -
6.Java的垃圾回收机制(GC)
这篇博客是有关Java开发平台基础部分最后一篇了,下一篇就开始进行实际操作了,看到希望的曙光了吧。 现在编程已经非常平民化了,不像之前那都是计算机天才干的事情。比如操作计算机的内存和寄存器的使用,甚至cpu的操作等等。现在编程使用高级编程语言,使用接近于人类自然语言进行编程,就像是写博客一样(当然还没有那么夸张),这是多么的平民啊。关于计算机的底层硬件操作,命令处理,完全不用你操作,你要做...原创 2012-06-19 12:08:10 · 89 阅读 · 0 评论 -
初学Java,非Java编程书籍推荐《代码大全》
做软件开发这么多年,再加上培训这段时间的总结回顾,越来越觉得,做软件开发,软件开发的思维锻炼的重要性。 自己上大学的时候还是很喜欢软件开发这个方向的。但是学习上不得其法,头绪有点乱,甚至在还未好好掌握一门开发编程语言,就开始看起来项目软件设计、需求分析以及管理方面的东西来。 虽然走了一些弯路,但是回过头来看的话,这些也没有浪费时间。等真正的去学习编程开发,直至工作做软件...原创 2012-06-19 23:30:37 · 122 阅读 · 0 评论 -
7.Java开发运行环境架设
接着来讲Java开发的内容。 今天终于可以动动手,做些事情了。估计看了那么多的长篇大论也有点烦了。 其实前几篇看见篇幅多而且长,但真的在课程体系安排中,也就三个课时,一个大课。大家像听八卦花边一样,混个耳熟就行了。在以后的课程里面,有机会还会翻过来再说。 前面讲过了,Java是一个跨平台的技术,所以再真正进行Java的编程开发学习之前,还需要在你的计算机上,把Java这个平...原创 2012-06-20 10:15:28 · 131 阅读 · 0 评论 -
8.第一个可以run起来的Java程序
当之前的Java开发运行环境安装配置好之后,就可以开始编写第一个Java程序,当然,只要你的过程没有问题,它是可以run(运行)起来的。 听说是C语言开了这个头的,基本上所有的编程语言的开门程序范例都是Hello world,我们这里也没有必要在做什么创新了,也用Hello world这个范例来开始我们的Java编程历程。 工欲利其器,必先利其器。用什么来编写Java程序? ...原创 2012-06-25 10:59:18 · 152 阅读 · 0 评论 -
9.开发Java程序的一些注意的地方
虽然前面的那个范例已经足够简单,但是就像俗话说的一样,万事开头难,根据我的培训经验来说,这里的错误仍然会发生,主要是以下几个方面,这里来补充说明一下。 第一,拼写,大小写,因为第一次用的是记事本,所以没有任何的代码提示,语法高亮,所以拼写错误的发生,是最常见的了。因为还没有任何Java编程基础和语法学习,所以很多不明白之处这里不详细讲解,对照源代码,仔细找不同吧。 publi...原创 2012-06-25 11:45:32 · 103 阅读 · 0 评论 -
10.简单说说类和对象
前面说了很多遍Java是面向对象的编程语言,在我们的第一个Java编程范例中,也提到了class这个关键字,涉及到了类的概念。那么在开始正式进行Java编程语法之前,先简单说说什么是类,什么是对象,这样在进行面向对象编程中,才能有比较完备的面向对象的编程思想。 根据以前培训的印象来说,如果以前有编程的学习过程,但是学习的是其他的非面向对象编程语言,或者即使学习的是面向对象编程语言,但是没有...原创 2012-06-29 09:58:34 · 124 阅读 · 0 评论 -
11.Java语言中的类
前面说了类和对象比较宽泛的定义,现在专在Java编程语言中,来说说说Java中类,以及如何写出一个合乎编译器要求的类来。 前面说了,类可以看做是对象的蓝图,它是用来描述一组具有相同特征对象的。那么,对象中,最重要的两种特征内容,就是: 1.数据2.行为 数据就是描述对象的信息的静态信息了。比如一辆汽车,它的型号,价格,出厂日期等等,都是这个汽车对象的静态信息数据。行...原创 2012-07-02 11:01:40 · 91 阅读 · 0 评论 -
项目管理中的“双语”
这两天在上下班路上,看了看《启示录》这本书。 书里的很多东西,看起来好像很浅显,但是仔细琢磨起来,感觉是豁然开朗,可惜英文不好,书里很多东西都是简单的阐述了下,很多详细的示例、说明都是在作者的博客上,读起来很费劲,只能试着去读读看。 今天看书里讲到了产品经理的双语技能。感觉很受用。 现在工作过的公司和项目组,基本上做企业级应用软件,定制型,所以没遇到过项目经理这个职位的人...原创 2012-07-02 11:21:41 · 146 阅读 · 0 评论 -
12.Java类声明说明
继续上篇的例子来讲讲类中属性和方法的声明定义。 public class Student { // 定义属性 private String name; private String sex; private int grade; private int age; // 定义属性“name”的设置方法 public void setName(S...原创 2012-07-03 11:23:23 · 130 阅读 · 0 评论 -
13.Java类构造器
接着来说Java类中的最重要的部分——构造器。 在Java类中,每个类都必须至少有一个构造器。可以这么理解,构造器就是Java类中的特殊的方法,所以构造器也常被成为构造方法。 在定义好一个类之后,我们需要根据类来创建我们要操作的对象。就像类作为蓝图,只是一个虚拟的构想,有了设计图纸,还是没有地方可以住的。得根据设计图纸,将图纸上的设计构想,实现为一栋真正的房子,才可以用来住。我们根...原创 2012-07-04 11:23:36 · 109 阅读 · 0 评论 -
14.Java默认构造器
上篇说到了Java类中重要的部分:构造器,说到一个类中,至少必须有一个构造器,否则就无法使用构造器来创建对象了。 如果类中没有构造器,按理说是不符合Java语言规定的,但是看我们前面的示例,很明显类中没有定义构造器,但是也通过了Java编译器的编译,而且也能正常运行。 是我们说错了么,当然不是。 是这样的,如果在程序中没有定义任何的构造器,则编译器将会自动加上一个不带任何参...原创 2012-07-04 11:38:23 · 210 阅读 · 0 评论 -
15.对象的创建和使用
前面基本上将Java类的声明的内容讲完了。 类就是对象的蓝图,是一组对象的抽象。现在我们已经完成Java的类的声明,现在有了类,就像是有了设计蓝图,下面就是根据蓝图来实现设计了。 换成Java的说明来说,就是根据声明的类,来完成对象的创建。 正确的声明了Java类,就可以在其他的类或者应用程序中使用该类了,比如创建该类对象并访问操作对象成员等。 对象成员是指一个对象...原创 2012-07-05 13:06:50 · 107 阅读 · 0 评论 -
16.信息的隐藏
面向对象的三大特征:封装、继承与多态。 只要某个编程语言是属于面向对象编程语言,它就必须具有这三个特征。Java也不例外。 下面我们会先来说说面向对象特征中的封装,但是在说它之前,还是先来说说信息的隐藏。这里,隐藏就像是封装的先锋官,没有了隐藏,封装就无从谈起。 我们已经知道了,Java中类和对象的概念,来自于我们的真实世界的抽象。那么我们在声明一个类,并根据类来创建对象的...原创 2012-07-09 16:28:52 · 90 阅读 · 0 评论 -
17.面向对象特征——封装
前面说了隐藏,那么顺理成章的,下面就是封装。 有了隐藏,封装的存在就有其重要的目的了。 前面我们已经将类中的属性修饰为private,隐藏起来,只能在类本身里面来操作。那么很多时候,属性的信息数据都是来自于其他的用户(其他类或者对象),那么其他的类和对象如何把信息数据交给对象,由相应的属性进行记录保存? 这就是封装了。 先看看封装的简单说明: 封装指的是将对...原创 2012-07-09 16:47:48 · 104 阅读 · 0 评论 -
18.Java源文件结构
在基本的Java类和对象说完之后,下面的主要内容就是Java的基本语法了。 慢着,在这之前,我们再插播一些别的内容,这样,在正式开始Java语法内容之前,先对Java的源文件(即代码)有一个整体性的概括了解。当然,很多的内容如果要详细了解的话,需要后面的内容帮助,只是一个大概的了解,不需要多么的清楚。后面的内容会一一进行详细的解释说明的。 下面就来说说Java源文件结构,毕竟以后无...原创 2012-07-10 15:59:32 · 128 阅读 · 0 评论 -
19.package语句
接着来讲讲在Java源文件中,除了类之外,另外非常重要的两个部分:package和import。 这篇来说package。 按照一般的解释来说,package的出现,是为了解决同名类的问题的。 这么说吧, 如果你现在有两个同名的文件,要保存在你的硬盘上,你怎么处理?不要提重命名,不允许改名。怎么办?其实建立两个文件目录,把两个同名文件分别放到两个不同的目录中,...原创 2012-07-12 10:59:19 · 314 阅读 · 0 评论 -
20.import语句
这次来讲讲import的作用以及用法。 package的应用使得Java开发大型的软件成为可能。package可以把大量的class类按照业务功能、功能类型等标准,进行分门别类的放置管理。但是同时也带来了一个问题:不在同一个包里面的类,怎样互相引用? 这种情况是会不断经常出现的。比如,开发一个学校校务管理系统,对学生成绩进行管理,学生成绩相关的信息有:学生信息、课程信息、授课...原创 2012-07-13 10:46:26 · 214 阅读 · 0 评论 -
21.关于import语句的一点补充说明
这里补充一点有关import的说明: 使用import并不会将相应的类或者包加载到class文件(或者java源文件),或者包含到java源文件(或者class文件)中,它的作用仅仅是对需要用到的类进行定位(location)。它表示程序中用到某个类的时候,如果没有在类前指定包名,应该到当前目录或者import指定的包中去寻找(注意java.lang包是默认引入的)。...原创 2012-07-13 10:47:52 · 204 阅读 · 0 评论 -
22.Java开发中JDK常用的包
在JDK核心类库中,提供了几千个类,通过这些类,可以基本实现用户界面设计、输出输入、网络和日期等基本的目的。这些类都按照它们的功能、作用放在不同的包(package)中,作为Java开发人员,应该熟悉这些包,至少,应该掌握下面的这些比较常用的包: java.lang----包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。使用这...原创 2012-07-13 10:49:24 · 170 阅读 · 0 评论 -
23.面向对象编程术语
今天结束有关Java类与对象方面的内容。这里总结补充一点有关面向对象编程的术语,方便后面语法的内容的开始。 类(class):类是构造面向对象系统的基本构筑块,它是现实世界中某一类实体的抽象。它是构建对象的蓝图。对象(object):也称为实例(instance),是类的具体存在。属性(attribute):也称为成员变量、实例变量(instance variable)、字段(fi...原创 2012-07-16 10:38:38 · 159 阅读 · 0 评论 -
24.Java注释
今天开始说说Java编程语法部分。 这部分内容结束后,就可以在API文档(以及百度)的帮助下,开始真正的Java编程探索了。 今天说说Java注释。Java注释本身就是规范格式的问题,几乎没什么可说的。。。。这里给还没有什么编程经历的人说说,代码注释的重要性。 如果编写过规模比较大的软件(不是练习、范例之类的)的,并且还需要在经过一段时间之后要再回过头来阅读修改,就会深深体...原创 2012-07-17 09:44:35 · 90 阅读 · 0 评论 -
25.Java注释
接着说Java注释的写法。这个就很简单了。 在Java中,提供了三种方式的注释方式:单行、多行以及文档注释。 单行和多行注释很容易理解,就是将注释符之间的内容当作注释,在编译和运行时将这部分内容忽略。 在java中,比较特殊的是javadoc注释,包含在这部分里的注释可以通过javadoc命令来自动生成API文档。通过javadoc工具,可以保证程序代码和技术文档的同步。在...原创 2012-07-19 16:11:17 · 93 阅读 · 0 评论 -
26.Java分隔符
这里来说说Java分隔符。 很多人说写程序就像是完成一篇文章。那么一篇好的文章自然少不了标点符号了。Java分隔符就是Java代码里面的分隔符。 Java中,具有代码分割作用的符号就是分隔符。圆点“.”、分号“;”、花括号“{}”和空格具有特殊的分隔作用,我们将其统称为分隔符。 1.分号 在Java中语句的分隔不是依靠回车来完成的,一条Java语句必须以分号(;)作...原创 2012-07-20 15:58:38 · 520 阅读 · 0 评论 -
工作经验与时间无关
工作经验和时间无关! 总是听到这样的说法,我已经工作5年了,我要求得到相对应于5年的收入。 这里要分清楚的是,5年工作经验和工作了5年时间是没有必然的关联的。 诚然,很多招聘条件用工作经验来做硬性要求,这只是为了减轻hr的工作量,对大量的求职简历,做一次条件筛选,和限定学历要求是一个道理的。毕竟,工作5年和刚刚工作,是有差别的,这点不可否认。 但是绝对不要认为只要...原创 2013-03-12 11:20:23 · 163 阅读 · 0 评论 -
66.封装类
虽然Java语言是典型的面向对象编程语言,但其中的8种基本数据类型并不支持面向对象的编程机制,基本类型的数据不具备“对象”的特性----没有属性、没有方法可调用。沿用他们只是为了迎合程序员根深蒂固的习惯,并能简单、有效地进行常规数据处理。这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了Object类的特性,要转换为String类型(经常有这种需要)时只要简单调用Obje...原创 2012-10-29 10:00:56 · 143 阅读 · 0 评论 -
67.对象的toString()方法
在Object类中,定义了一个toString()方法,用来返回一个表示这个对象的字符串:public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }在这个方法中,它将返回一个由类名、紧随其后的“@”符号和hash码的无符号的十六进制字符串,用来表示这个对...原创 2012-10-30 09:16:26 · 319 阅读 · 0 评论 -
68.==和equals()
==和equals()恐怕是刚刚开始学习Java中,最让人混淆的东西了。下面就可以 在Java程序设计中,我们经常需要比较两个变量值是否相等,比如: a = 10; b = 12; if(a == b) { //statements } 再如: ClassA a = new ClassA(“abc”); ClassA b = new ClassA(“abc”); if (a ==...原创 2012-10-30 09:38:48 · 111 阅读 · 0 评论 -
69.static关键字
接下来零星的讲一些有关Java编程的一些高级特性,以及Java编程的第三大面向对象特性——多态。 这里先来讲讲static关键字。 在Java中,可以将一些成员限制为和类相关的,而不是和实例相关的。实现这个目的的方法是,在类的成员如方法、属性乃至自由代码块前面加上“static”这个修饰符。实例变量用于描述单个实例的状态,而类变量用于描述类的状态,和具体的实例无关。 实...原创 2012-11-02 09:14:25 · 108 阅读 · 0 评论 -
70.static自由块
接下来讲讲static自由块。 前面提到了自由块(游离块),那么作为Java源代码特殊的组成部分,是可以用static来修饰的。修饰后的结果我们来分析下。 自由块可以看成是一种特殊的方法,这个方法没有方法名、没有输入参数、没有返回值,不能进行方法调用。从这个角度来看,在自由块前面也可以加上static关键字来修饰。这样,这个自由块就成了静态自由块。静态自由块通常用于初始化静态变量。...原创 2012-11-02 09:16:43 · 129 阅读 · 0 评论 -
71.利用static来实现单例模式
所谓设计模式(Design Pattern),是为了满足对优秀、简单而且可重用的解决方案的需要。这就像我们在盖楼的时候,我们不会每次都从零开始来画图纸,而是参照某种已有的模式,然后在此基础上来设计它。而在面向对象程序设计中,“模式”是为了实现重用面向对象代码的一种方便做法。根据“设计模式”的经典著作《Design Patterns:Elements of reusable Object-Ori...原创 2012-11-02 09:18:36 · 180 阅读 · 0 评论 -
27.Java 标识符
在各种编程语言中,通常要为程序中处理的各种变量、方法、函数、对象和类等起个名字作为标记,以后就可以通过名字来对访问或修改某个数据的值,这些名字称为标识符。 简单来说,Java标识符就是我们给代码中各类内容起的名字。不需要对标识符的具体概念太过于分析。这里主要要了解的Java语言中,标识符有哪些要求。就像是我们起名字,都得有一定的规则和范围。 Java的标识符必须以字母、下划线(_)...原创 2012-07-25 16:14:59 · 134 阅读 · 0 评论