当前位置:编程学习 > JAVA >>

其实你应该这样学java(连载)

--------------------编程问答-------------------- 初级篇:入门
第1章  阿里巴巴,Java开门!
1.1  神啊,请赐予我希望吧!
1.1.1  曙光初现
1.1.2  风景这边独好
1.2  Java发展简史
1.2.1  程序设计语言
1.2.2  Java
1.3  Java的特点
1.4  职业成长之路
1.4.1  起点
1.4.2  继续提高
1.4.3  成长路线
1.5  小结
第2章  利器:Java开发环境
2.1  一个平台:Java虚拟机
2.1.1  跨平台性
2.1.2  Java虚拟机
2.2  工欲善其事,必先利其器
2.2.1  JDK
2.2.2  JBuilder
2.2.3  Eclipse
2.2.4  JCreator
2.3  开发环境的安装
2.3.1  安装JDK
2.3.2  安装JCreator
2.3.3  简洁的界面
2.3.4  使用JCreator
2.4  小结
第3章  初露锋芒:第一个Java程序
3.1  第一个Java程序
3.2  代码分析
3.2.1  逐行分析程序
3.2.2  举一反三
3.3  Java程序中的符号
3.3.1  标点符号
3.3.2  标识符
3.3.3  关键字
3.3.4  注释
3.4  程序出错了怎么办
3.4.1  语法错误
3.4.2  逻辑错误
3.5  小结
第4章  基础:类型和运算
4.1  Java与数学
4.2  变量与常量
4.2.1  声明变量
4.2.2  声明常量
4.3  数据的类型
4.3.1  布尔型
4.3.2  整型
4.3.3  浮点型
4.3.4  字符型
4.3.5  类型转换
4.4  运算符号:只有加减乘除吗
4.4.1  算术运算符
4.4.2  赋值运算符
4.4.3  关系运算符
4.4.4  逻辑运算符
4.4.5  条件运算符
4.4.6  其他运算符
4.5  运算的表达式
4.5.1  运算符的优先级
4.5.2  表达式的实例
4.6  小结
第5章  飞流直下:顺序语句
5.1  语句结构
5.1.1  语句的流程
语句的流程
5.1.2  几种基本语句结构
5.2  输出语句
5.2.1  标准输出
5.2.2  标准输出的实现
5.3  输入语句
5.3.1  标准输入
5.3.2  其他输入方法
5.4  如何读写程序
5.4.1  如何读程序
5.4.2  如何写程序
5.5  小结
第6章  向左走,向右走:选择语句
6.1  该选那条路?
6.2  if:简单的分支选择
6.2.1  最简单的if形式
6.2.2  if - else 语句
6.2.3  if – else if – else 语句
6.3  switch:多分支语句
6.4  嵌套的条件语句
6.5  小结
第7章  重复操作的解决之道:循环语句
7.1  重复的操作可以化繁为简
7.2  while循环
7.2.1  while循环的结构
7.2.2  while的应用
7.3  do-while循环
7.3.1  do-while循环的结构
7.3.2  do-while的应用
7.4  for循环
7.4.1  for循环的结构
7.4.2  for的应用
7.4.3  三种循环的比较
7.5  循环嵌套
7.6  小结
第8章  跳出去:跳转语句
8.1  continue:少跑一圈
8.1.1  continue的直接跳转
8.1.2  带标号的continue语句
8.2  break:跳出整个循环
8.2.1  break的直接跳转
8.2.2  带标号的break语句
8.3  return语句
8.4  小结
第9章  一列整齐的队伍:数组
9.1  最基本的数组:一维数组
9.1.1  一维数组的定义
9.1.2  为数组赋值
9.1.3  数组元素的操作
9.1.4  应用它
9.2  二维数组
9.2.1  二维数组的定义及使用
9.2.2  二维数组的使用
9.3  小结
中级:面向对象
第10章  面向对象的基础知识:类
10.1  面向对象
10.1.1  什么是面向对象
10.1.2  面向对象特点之抽象
10.1.3  面向对象特点之封装
10.1.4  面向对象特点之继承
10.1.5  面向对象特点之多态
10.2  类
10.2.1 类的概念
10.2.2  类的定义
10.2.3  成员变量
10.2.4  成员方法
10.2.5  内部类
10.2.6  举一反三
10.3  对象
10.3.1  创建对象
10.3.2  使用对象
10.3.3  消息传递
10.3.4  清除对象
10.4  构造方法
10.4.1 定义
10.4.2  特性
10.5  多态之一:重载
10.5.1  重载的概念
10.5.2  构造方法的重载
10.6  包
10.6.1  包的概念
10.6.2  包的创建
10.6.3  包的使用
10.6.4  应用举例
10.7  小结
第11章  面向对象继续深入:继承
11.1  什么是继承
11.2  子类
11.2.1  子类的定义
12.2.2  子类的使用
11.2.3  子类的构造方法
11.3  继承中的多态
11.3.1  隐藏
11.3.2  重载与覆盖
11.4  抽象类
11.4.1  创建抽象类
11.4.2  抽象方法
11.4.3  实例演示
11.5  接口
11.5.1  接口的声明
11.5.2  接口之间的继承
11.5.3  接口的实现
11.6  对象的复制
11.7  对象的上转型
11.8  小结
第12章  特征:类及成员的属性
12.1  类的可访问性
12.1.1  public
12.1.2  默认访问
12.2  成员的可访问性
12.2.1  public
12.2.2  protected
12.2.3  默认
12.2.4  private
12.3  静态成员与实例成员
12.3.1  概念
12.3.2  静态变量
12.3.3  静态方法
12.3.4  静态成员和实例成员之间的引用
12.3.5  应用实例
12.4  终结者:final
12.4.1  final类
12.4.2  final成员
12.5  再认识几个关键字
12.5.1  void
12.5.2  this
12.5.3  null
12.6  小结
高级篇:应用
第13章  文字游戏:字符串
13.1  字符串String
13.1.1  创建
13.1.2  常用方法
13.2  StringBuffer类
13.2.1  创建
13.2.2  常用方法
13.3  小结
第14章  宝藏:类库
14.1  开启宝藏
14.2  java.lang包
14.2.1  Object类
14.2.2  Math类
14.2.3  System类
14.2.4  数据类型类
14.2.5  Cloneable 接口
14.3  java.util包
14.3.1  Arrays类
14.3.2  Date类
14.3.3  Calendar类
14.3.4  Scanner类
14.4  小结
第15章  避免意外:异常的处理
15.1  异常和异常处理
15.1.1  语法错误与逻辑错误
15.1.2  基本概念
15.2  异常类
15.3  异常处理
15.3.1  try-catch-finally
15.3.2  throws:在方法中声明抛出异常
15.3.3  throw:抛出异常
15.4  自定义异常
15.5  小结
第16章  焕然一新:框架及组件
16.1  Java图形图像概述
16.2  框架
16.2.1  JFrame类
16.2.2  显示框架
16.3  面板
16.3.1  JPanel类
16.3.2  实例应用
16.4  绘制图形
16.4.1  Graphics类
16.4.2  实例应用
16.5  绘制颜色
16.5.1  Color类
16.5.2  实例应用
16.6  绘制文字
16.6.1  显示字符
16.6.2  显示字体
16.6.3  获取字体信息:Fontmetrics类
16.7  绘制图像
16.7.1  drawImage()方法
16.7.2  ImageIcon类
16.8  小结
第17章  图形界面的元素:组件
17.1  关于组件
17.2  按钮
17.2.1  JButton类
17.2.2  成员
17.2.3  实例应用
17.3  标签
17.3.1  JLabel类
17.3.2  实例应用
17.4  文本
17.4.1  JTextField类
17.4.2  JPasswordField类
17.4.3  JTextArea类
17.5  布局
17.5.1  FlowLayout
17.5.2  GridLayout
17.5.3  BorderLayout
17.5.4  其他布局
17.6  单选及复选按钮
17.6.1  JRadioButton类
17.6.1  JCheckBox类
17.7  列表
17.7.1  JList类
17.7.2  JComboBox类
17.8  菜单
17.8.1  菜单的类
17.8.2  实例应用
17.9  工具栏
17.9.1  JToolBar类
17.9.2  实例应用
17.10  对话框
17.10.1  对话框类
17.10.2  消息对话框
17.10.3  确认对话框
17.10.4  输入对话框
17.10.5  选项对话框
17.11  小结
第18章  图形界面的帮手:事件处理
18.1  事件处理模型
18.1.1  委托事件处理模型
18.1.2  事件
18.1.3  事件监听器
18.1.4  事件适配器
18.2  动作事件处理
18.2.1  动作事件
18.2.2  动作事件监听器
18.2.3  实例应用
18.3  窗口事件处理
18.3.1  窗口事件
18.3.2  窗口事件监听器接口
18.3.3  窗口事件适配器
18.4  鼠标事件处理
18.4.1  鼠标事件
18.2.2  鼠标事件监听器
18.3.3  鼠标事件适配器
18.2.3  实例应用
18.5  键盘事件处理
18.4.1  键盘事件
18.2.2  键盘事件监听器及键盘事件适配器
18.2.3  实例应用
18.6  其他事件处理
18.6.1  组件事件处理
18.6.2  容器事件处理
18.6.3  焦点事件处理
18.6.4  选择事件处理
18.6.5  文本框事件处理
18.7  小结
第19章 小程序:Applet
19.1  Applet原理
19.1.1  Applet类
19.1.2  Applet类中的方法
19.1.3  生命周期
19.1.4  安全性
19.5  第一个Applet程序
19.2  在HTML中嵌入Applet
19.2.1  演示程序
19.2.2  HTML简介
19.2.3  向Applet传递消息
19.3  多媒体应用
19.3.1  绘制图形
19.3.2  绘制图像
19.3.3  事件处理
19.3.4  播放音乐
19.4  小结
第20章  分身有术:多线程
20.1  线程的概念
20.2  线程的生命周期
20.3  线程的创建
20.3.1  Thread类
20.3.2  Thread类中的方法
20.3.3  线程的实现
20.3.4  Runnable接口
20.3.5  多线程的应用
20.4  线程的调度与优先级
20.5  线程的互斥
20.5.1  一个线程冲突的例子
20.5.2  线程互斥
20.6  线程的同步
20.6.1  同步的实现方法
20.6.2  同步实例
20.7  小结
第21章  掌控硬盘:输入输出
21.1  认识输入输出流
21.1.1  流的概念
21.1.2  字节流与字符流
21.2  文件
21.2.1  File类
21.2.2  File类中的方法
21.2.3  文件使用实例
21.2.4  目录的管理
21.3  字符流与文件的输入输出
21.3.1  字符流
21.3.2  FileReader类
21.3.3  读入文件中的信息
21.3.4  FileWriter类
21.3.5  写入信息到文件中
21.4  字节流与文件的输入输出
21.4.1  字节输入流:InputStream类
21.4.2  字节输出流:OutputStream类
21.4.3  文件字节输入输出流
21.4.4  标准输入输出流
21.5  文件的随机读写
21.5.1  RandomAccessFile类
21.5.2  主要方法
21.5.3  实例应用
21.6  小结
第22章  网络神功:通信
22.1  网络初探
22.1.1  TCP/IP协议
22.1.2  IP地址与端口
22.1.3  网络开发模式
22.2  URL访问网络
22.2.1  URL
22.2.2  URL类
22.2.3  访问网络
22.3  Socket传递消息
22.3.1  Socket类
22.3.2  ServerSocket类
22.3.3  创建通信服务
22.4  UDP传递消息
22.4.1  UDP通信原理
22.4.2  DatagramSocket类
22.4.3  DatagramPacket类
22.4.4  创建UDP通信
22.5  小结
第23章  后记
23.1  回首
23.2  展望
附录
--------------------编程问答-------------------- 第1章  阿里巴巴,Java开门!

天亮了——
小Q醒了,但小Q脑海中仍如同在梦中一般迷茫。
小Q是一名普通的学生。每天按时上课,也按时吃饭睡觉。上课听得东西不少,可下课后记住的不多。老师布置的任务想想办法或者“参考参考”也能完成。成绩算不得好,没拿过奖学金;但也算不得差,至少没不及格过。自己的专业已经学了一段时间了,不知道这个专业毕业后能干什么用,也谈不上非常喜欢。只因当时升学时凑合选报了一个方向,竟然录取了,然后就来报道上学了。
在学校里几年,也谈不上锻炼了什么组织能力啊,领导能力啊之类的。什么都是一般般。对计算机懂得多一点,也喜欢摆弄计算机,但因为不是计算机专业,所以计算机的专业课学的不多。总之,小Q就是学校里极其普通的一个学生。
但是,最近小Q心中莫名的烦闷越来越明显了。想出去玩玩,感觉玩不痛快了;想坐下看书,但又静不下心,不知从何看起。简直不知道自己该做什么了。
为什么?可能是因为听到从学长那里传来的消息吧!
今年这个专业又不好找工作!自己学的专业无业可就。招聘会上人满为患,学这个专业的人太多,而岗位又太少,所以竞争太大了。好不容易有个专业适合的,招聘单位又要求工作经验,没有;要求学历,没有;要求XX证书,也没有。学了那么久,但自己能拿得出手的东西在人家面前好像根本不值一提似的!
即使找到工作的也跟学的专业没太大联系。眼看着很多学习优秀的学长,毕业即转行,心不甘情不愿的,不是白费了几年的学习嘛!而且待遇也普遍不高,辛辛苦苦上学那么多年,毕业了一两年也只能勉强温饱吧。
还不知道过几年自己毕业后的情况呢!那我学这个专业还有什么用?一想起这个,心里就烦死了,不知道该做什么了。
迷茫而又无助的人啊!
亲爱的朋友,你也有这种困境吗?
--------------------编程问答-------------------- 第1章  阿里巴巴,Java开门!

天亮了——
小Q醒了,但小Q脑海中仍如同在梦中一般迷茫。
小Q是一名普通的学生。每天按时上课,也按时吃饭睡觉。上课听得东西不少,可下课后记住的不多。老师布置的任务想想办法或者“参考参考”也能完成。成绩算不得好,没拿过奖学金;但也算不得差,至少没不及格过。自己的专业已经学了一段时间了,不知道这个专业毕业后能干什么用,也谈不上非常喜欢。只因当时升学时凑合选报了一个方向,竟然录取了,然后就来报道上学了。
在学校里几年,也谈不上锻炼了什么组织能力啊,领导能力啊之类的。什么都是一般般。对计算机懂得多一点,也喜欢摆弄计算机,但因为不是计算机专业,所以计算机的专业课学的不多。总之,小Q就是学校里极其普通的一个学生。
但是,最近小Q心中莫名的烦闷越来越明显了。想出去玩玩,感觉玩不痛快了;想坐下看书,但又静不下心,不知从何看起。简直不知道自己该做什么了。
为什么?可能是因为听到从学长那里传来的消息吧!
今年这个专业又不好找工作!自己学的专业无业可就。招聘会上人满为患,学这个专业的人太多,而岗位又太少,所以竞争太大了。好不容易有个专业适合的,招聘单位又要求工作经验,没有;要求学历,没有;要求XX证书,也没有。学了那么久,但自己能拿得出手的东西在人家面前好像根本不值一提似的!
即使找到工作的也跟学的专业没太大联系。眼看着很多学习优秀的学长,毕业即转行,心不甘情不愿的,不是白费了几年的学习嘛!而且待遇也普遍不高,辛辛苦苦上学那么多年,毕业了一两年也只能勉强温饱吧。
还不知道过几年自己毕业后的情况呢!那我学这个专业还有什么用?一想起这个,心里就烦死了,不知道该做什么了。
迷茫而又无助的人啊!
亲爱的朋友,你也有这种困境吗?
--------------------编程问答-------------------- lz英明,帮顶 --------------------编程问答-------------------- 楼主v5
坐等更新 --------------------编程问答-------------------- 其实你应该这样学Java  ,好书啊!!!!! --------------------编程问答-------------------- 1.1  神啊,请赐予我希望吧!
日子一天天过去,小Q的恐慌一天天增加。最难过的事情莫过于此。
小Q想使劲但又不知该往哪儿使。为此吃不好,睡不好。身体消瘦了很多。所谓“不在沉沦中爆发,就在沉沦中灭亡”。小Q可不想“在沉沦中灭亡”,但又不知怎么办好。小Q郁闷之极,只得向天呼喊:神啊,请赐予我希望吧!
就在小Q为将来而担心的同时,他不知道,在这个世界里,还有另一番景象:某个公司为招到急需的软件开发工程师而绞尽脑汁;某个经理为找到合格的软件开发人才而辛苦奔波;某个业务因为Java开发人手不够而不得不延期;……
这是在同一个世界里发生的真实的事情。
1.1.1  曙光初现
新的学期开始了。听说有个很牛的老师派来给小Q他们上计算机课。
听说这个老师不同一般:曾经是著名的XX公司首席架构师;曾经用自己写的软件跟黑客过招,迄今无人能敌;曾经写了一个经典的手机程序,用户数十万;曾经……总之一句话,据说此人是个很厉害的“牛人”。
为了一睹“牛人”风采,小Q早早到了教室。
这时,进来一位微笑着的年青人。一只胳膊上搭着西服,一手提着笔记本包。只见他三十岁左右,整洁清新。五官端正,国字脸浓眉毛,鼻梁上一副大眼镜,更显眼睛是炯炯有神呐。头发浓密乌黑,梳向一边,没有丝毫杂乱。身材挺拔,健壮有力。穿着衬衣西裤,干净利落,更显出精神抖擞。走起路来健步如飞而又不失稳重。
“大家好!我是这学期给你上计算机课程的A博士!很高兴见到大家!”
“哇!这么帅气!”
接下来,A博士侃侃而谈,既有成熟自信,又不乏幽默。
A博士继续说着:“我们从今天开始要学习Java程序设计及应用了。Java是一个优美的语言,是一个灵活而强大的工具。Java课程不仅对计算机专业有极大用处,而且在其它任何专业领域都有良好应用,例如服务器、个人电脑、移动互联网、游戏开发、智能手机等地方都有它的身影。Java简单易用,易学易懂。现在,即使不是计算机专业的学生,甚至是高中生,都在使用Java呢!”
小Q:“我们身边哪里用得到Java呢?”
A博士:“就Java的应用,我举几个例子吧。从大的应用来说,美国在2003年发射过一个“勇气号”火星探测器,如图1.1所示,成功登陆火星。登陆之后的操作都是依赖于Java开发的系统软件;从小的应用来说,你看你们的手机,是不是也都说支持Java呢?这可是手机高性能的一个标志,如图1.2和图1.3所示。所以,Java是一门非常有用的语言,不管你们是什么专业,你们都能学好它,也应该学会它。”

图1.1  USA-2004-勇气号火星车

Java是原Sun Microsystems公司创造的,后来经由无数人完善而成。随着它的应用越来越广,现在Java已经无处不在了!”
只见A博士讲起Java来思路清晰,滔滔不绝。小Q听得入迷,竟然不知道下课的铃声响了。这可是头一次!
“真想自己能像这个老师一样!”小Q心想。
“如果你们想了解更多关于Java的事情,想更快学好它,课下可以来找我。”
小Q记住了这句话。
小Q真的想学的更好一点,头一次对一门计算机课程这么感兴趣。隐隐约约感觉自己的困惑有答案了。下课后,小Q鼓足勇气,走进A博士的办公室。
“A博士,你好!我是您的学生小Q。”
“哦!请坐下吧。有什么事情吗?”
“我想了解Java更多点,所以来向您请教。”
“呵呵,那好啊!”

图1.4  利用Java开发的World Wind
--------------------编程问答-------------------- --------------------编程问答-------------------- 1.1.2  风景这边独好
闲话不表。小Q开门见山:“A博士,听了您的课,我对Java有点感兴趣。一直以来我都愿意多学学计算机,我觉得它很奇妙。”
A博士:“你有这好奇心很好!很多人都是因为有好奇心才愿意钻研深入,才能学出点成绩的。对于计算机,对于Java,你有哪里想多了解的吗?”
小Q:“计算机是怎样运行的?我一直搞不懂。想请教一下您。”
A博士:“哦!这个嘛,我给你画一张简单的图模拟一下吧!”
A博士:“看这张图,如图1.5所示。计算机可以帮人们解决问题,但需要人类指出路线和方法。人的计算能力有限,很多事情都算得太慢或者根本无法计算,所以由计算机代替。人们先提出可行的方法;然后由程序员写成计算机能懂的语言,这好像是翻译,就和由汉语翻译成英语类似吧;之后由计算机自己再编译成二进制代码在CPU中运算,所得结果再转换为人们能识别的字符显示出来。”

图1.5  计算机运行原理
小Q:“哦,我明白一点了。”
A博士:“这其中最关键的一步是程序员写出程序:将人类的语言翻译成人类和计算机都能懂的语言,我们所学的课程就是为了实现它。”
但小Q还有其他疑问,所以接着说:“我不是计算机专业的,学了Java能有用吗?”
A博士:“这个问题很好。虽说你们不是计算机专业,但学好Java也很有用,如图1.6所示。计算机的工程化思维有助于你开阔思路,提高综合素质。
如果你毕业后还是从事你原来的专业,那你可以将计算机和你原专业结合,参与行业的信息化改造。现在网络化、信息化大潮日益兴盛,但人才的缺乏也是有目共睹,这是一个大有可为的领域。现在就我所知道有会计电算化、电子商务、图像制作等,都是计算机和相关专业结合的范例。你的专业技术能力和计算机操作能力都很强,自然找工作时公司抢着要。


图1.6  学好Java的用处
如果你对原来的专业不是很有兴趣了,可以改行学计算机啊!软件开发这一行业现在缺人太多了!现在很多公司是想尽办法在招人,你们找不到工作头痛,他们找不到人才更头痛!现在软件外包和创新都越来越多,这方面人才就更显少了。国外更缺,现在国内很多人都直接出国做技术开发了。不用担心竞争大。每年毕业的计算机专业学生很多,但真正从事软件开发的还是少。更多的从事了硬件开发、图像制作、多媒体等领域,所以软件开发公司求才若渴。”
小Q:“那我能学好Java吗?”
A博士:“当然能啊。软件开发没有你想象的那么高深莫测,那么高门槛。恰恰相反,入门很容易。你可知道,很多计算机高手可都不是科班出身的!甚至有很多高中生都已经是软件开发高手。只要你正常学习,按部就班地用不了多久就能入手了。我知道很多同学对计算机有兴趣,只要稍加引导,学好它是很容易的事情。”
小Q:“那我该怎么学习呢?”
A博士:“多学,多看,多练。首先得打下理论基础,然后自己多实践。
要学Java,就要多看看书,理解Java的基本操作,以及各个命令的含义。因为Java不是一门理论,而是一门技术,所以实践必不可少。即使是基本理论,也得靠平时多练习才能深刻体会,熟练掌握。如过不能随时练习,就不能真正理解它的含义,也就不能灵活运用了。有一些好的网站和书籍,你可以参考一下。这也是提升自己能力的途径。
学习时注意循序渐进,切莫急躁冒进。一步一步踏踏实实走下去,几个月就能相对熟练了。”
小Q:“我听说还有几门软件开发语言,比如VF、C语言、VB、C++等,跟Java比哪个好些,我不知道该怎么选择。”
A博士:“当然是Java好些啊。现在中国的软件开发人员中,大部分是使用Java工具开发。有一个统计数字,说现在外面Java工程师的需求达到全部开发人员需求量的近七成。同时,Java工程师的待遇相对较高。一般具有3年开发经验的Java工程师,年薪十万也是很正常的。特别是现在推崇网络化、跨平台性,Java就更具备显著优势和广阔发展前景了。”
小Q:“哦!我知道了。我选择Java!”
--------------------编程问答-------------------- 1.1.2  风景这边独好
闲话不表。小Q开门见山:“A博士,听了您的课,我对Java有点感兴趣。一直以来我都愿意多学学计算机,我觉得它很奇妙。”
A博士:“你有这好奇心很好!很多人都是因为有好奇心才愿意钻研深入,才能学出点成绩的。对于计算机,对于Java,你有哪里想多了解的吗?”
小Q:“计算机是怎样运行的?我一直搞不懂。想请教一下您。”
A博士:“哦!这个嘛,我给你画一张简单的图模拟一下吧!”
A博士:“看这张图,如图1.5所示。计算机可以帮人们解决问题,但需要人类指出路线和方法。人的计算能力有限,很多事情都算得太慢或者根本无法计算,所以由计算机代替。人们先提出可行的方法;然后由程序员写成计算机能懂的语言,这好像是翻译,就和由汉语翻译成英语类似吧;之后由计算机自己再编译成二进制代码在CPU中运算,所得结果再转换为人们能识别的字符显示出来。

小Q:“哦,我明白一点了。”
A博士:“这其中最关键的一步是程序员写出程序:将人类的语言翻译成人类和计算机都能懂的语言,我们所学的课程就是为了实现它。”
但小Q还有其他疑问,所以接着说:“我不是计算机专业的,学了Java能有用吗?”
A博士:“这个问题很好。虽说你们不是计算机专业,但学好Java也很有用,如图1.6所示。计算机的工程化思维有助于你开阔思路,提高综合素质。
如果你毕业后还是从事你原来的专业,那你可以将计算机和你原专业结合,参与行业的信息化改造。现在网络化、信息化大潮日益兴盛,但人才的缺乏也是有目共睹,这是一个大有可为的领域。现在就我所知道有会计电算化、电子商务、图像制作等,都是计算机和相关专业结合的范例。你的专业技术能力和计算机操作能力都很强,自然找工作时公司抢着要。

       图1.6  学好Java的用处
如果你对原来的专业不是很有兴趣了,可以改行学计算机啊!软件开发这一行业现在缺人太多了!现在很多公司是想尽办法在招人,你们找不到工作头痛,他们找不到人才更头痛!现在软件外包和创新都越来越多,这方面人才就更显少了。国外更缺,现在国内很多人都直接出国做技术开发了。不用担心竞争大。每年毕业的计算机专业学生很多,但真正从事软件开发的还是少。更多的从事了硬件开发、图像制作、多媒体等领域,所以软件开发公司求才若渴。”
小Q:“那我能学好Java吗?”
A博士:“当然能啊。软件开发没有你想象的那么高深莫测,那么高门槛。恰恰相反,入门很容易。你可知道,很多计算机高手可都不是科班出身的!甚至有很多高中生都已经是软件开发高手。只要你正常学习,按部就班地用不了多久就能入手了。我知道很多同学对计算机有兴趣,只要稍加引导,学好它是很容易的事情。”
小Q:“那我该怎么学习呢?”
A博士:“多学,多看,多练。首先得打下理论基础,然后自己多实践。
要学Java,就要多看看书,理解Java的基本操作,以及各个命令的含义。因为Java不是一门理论,而是一门技术,所以实践必不可少。即使是基本理论,也得靠平时多练习才能深刻体会,熟练掌握。如过不能随时练习,就不能真正理解它的含义,也就不能灵活运用了。有一些好的网站和书籍,你可以参考一下。这也是提升自己能力的途径。
学习时注意循序渐进,切莫急躁冒进。一步一步踏踏实实走下去,几个月就能相对熟练了。”
小Q:“我听说还有几门软件开发语言,比如VF、C语言、VB、C++等,跟Java比哪个好些,我不知道该怎么选择。”
A博士:“当然是Java好些啊。现在中国的软件开发人员中,大部分是使用Java工具开发。有一个统计数字,说现在外面Java工程师的需求达到全部开发人员需求量的近七成。同时,Java工程师的待遇相对较高。一般具有3年开发经验的Java工程师,年薪十万也是很正常的。特别是现在推崇网络化、跨平台性,Java就更具备显著优势和广阔发展前景了。”
小Q:“哦!我知道了。我选择Java!”
--------------------编程问答-------------------- 1.2  Java发展简史
小Q:“Java这么厉害,一定是当初设计它时就非常棒的吧?”
A博士:“不,Java不是一蹴而就形成现在这个样子的,它经历了不断的演化完善。我现在就给你讲一讲Java的历史吧。”
1.2.1  程序设计语言
程序设计语言自计算机出现以来就一直伴随着它的成长。从最开始的机器语言、汇编语言,到现在经常用到的高级语言,经历了几个时代的发展。
1.机器语言
当上世纪四十年代计算机最初出现时,人们将之视为一个巨大的计算机器,如图1.7所示。这时计算机的功能不是很强,指令系统也比较简单。所有操作都是由人工输入一系列的二进制代码即“0、1”串控制计算机的读写和操作,然后输出一系列的二进制代码。各种操作也基本围绕着计算而运行。这种通过二进制代码与计算机交互的时代被称为是机器语言时代。


图1.7  第一台电脑中复杂的连线
2.汇编语言
上世纪五十年代以后,随着计算机的发展,计算机的操作和指令越来越复杂。使用二进制代码既难记又容易出错,制约了计算机的发展。这时人们发明了汇编语言。汇编语言是一些操作的助记符,使用人们能理解的语言(比如英语单词等)输入操作命令,计算机转换为二进制代码后运行。这样就大大提高了计算机的性能,扩展了它的使用领域。
3.面向过程的高级语言
汇编语言仍比较难以理解,只有专家才能熟练操作。软件的开发跟不上硬件的高速发展,以致造成了“软件危机”。为此,上世纪五六十年代起,计算机的先驱者曾经开发出了很多语言和工程化开发的思想,例如面向过程的Pascal语言、BASIC语言、C语言等,促进了计算机及软件行业的发展。这些语言能够以易读易记的方式表示命令和操作,使得更多的人能够参与到软件开发行业中来。软件开发行业自此也取得了突飞猛进的发展。
4.面向对象的高级语言
但随着信息化、网络化时代的到来,这些语言也表现出了很多不足:
(1)不能跨平台使用。也就是在不同的软硬件系统下,所编写的程序不能通用。随着计算机的发展,软硬件体系越来越多,硬件有SPARK体系、Intel体系等,软件有Windows系统、UNIX系统等。程序在一个系统内完成,不能运行在另一个系统当中,造成了极大的局限性。
(2)不能适应网络化的需要。传统的开发语言,在Internet应用、分布式计算、网络编程接口等方面不能很好的适应。
(3)不能面向对象。传统的开发语言不能以面向对象的角度看待问题和分析问题,也就不能以面向对象的方式去解决问题。
所有这些,促使了新一代面向对象的开发语言——Java的诞生。
面向对象思想包含OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)等几个主要方面。它以客观世界为对象,采用和人们看待世界一样的思维方式理解分析,解决问题。所以解决了面向过程的诸多不足,终于成为最主流的软件开发方法。
--------------------编程问答-------------------- 还是来个电子版   下载地址 吧 
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,