Java+7入门经典 -1 简介
第一章 Java简介
1.1 Java概览
applet程序可嵌入网页; Java会通过隐式检测禁止Java applet的恶意代码;
Java Server Pages-JSP 创建服务器应用程序, 动态创建针对收到的特殊请求定制HTML页面并下载到客户端.
一次编写, 任意运行; 提供了GUI, XML, database和network communication等应用的支持;
1.2 语言特性
与机器无关; 可移植性较好; 面向对象object-oriented; 内置支持各国字符集的功能;
1.3 学习Java
1.3.1 Java程序
嵌入到网页中的Java applet, 独立的程序Java appliaction-控制台应用程序和窗口应用程序;
1.3.2 学习路线
1)基本概念 2)语句方法 3)类, 面向对象 4)处理错误和读写文件 5)泛型类类型 6)图形UI和applet 7)Extensible Markup Language-XML
1.4 环境
跨平台的方式: Java程序不是直接在计算机上执行, 而是在Java 2 Platform的标准化环境中运行, Java Runtime Environment-JRE;
Java Platform包含两部分: Java虚拟机Java Virtual Machine-JVM, Java应用编程接口Java Appliaction Programing Interface-Java API;
Java编译器将编写的Java代码转换为一个由字节码bytecode组成的二进制程序; 字节码是对JVM的机器指令; 当执行Java程序时, Java解释器Interpreter会坚持字节码, 进行解释和检查确保安全执行, 然后在JVM中执行操作;
Java解释器可以独立运行, 也可以作为浏览器的一部分Chrome, Firefox, IE...
Java程序由字节码而不是机器指令组成, 与运行的硬件完全隔离; Java解释器位于程序和物理机器之间, 可以阻止执行程序中非授权的操作;
解释过的Java程序的运行速度只有使用本地机器指令的程序速度的1/10, 但在现在的Java机器实现中, 很多性能缺陷已经改善;
1.4.1 程序开发
Java2Platfrom, Standard Edition(J2SE), JDK-32/64bit
1. 程序代码编辑器
Interactive Development Environment-IDE; JCreator, Notepad++, NetBeans;
2. JDK
在线文档-http://docs.oracle.com/javase/7/docs/api/
JNLP-Java Network Launching Protocol, 用于在一个网络服务器中执行应用程序或applet, 无需浏览器和下载安装代码;
JRE库中的类存储在jre\lib下, 被打包归档在rt.jar中, JRE会在程序执行时提取所需的类;
CLASSPATH环境变量;
3. 解压类库的源代码
类库的源代码包含在src.zip中;
4. 编译Java程序
Java源代码文件: classname.java;
JDK编译器: javac classname.java; javac是Java编译器的名称;
-source选项用来设定Java语言版本: javac -source 1.7 classname.java; 默认当前版本, 在使用旧版本编译时选用;
Note 文件名和类名必须一样;
使已存的CLASSPATH变量失效: javac -classpath . classname.java;
CLASSPATH的值在-classpath选项名的后面, 点号定义当前目录, 编译器会在当前目录下查找文件;
Note 常用"-classpath .", 多个CLASSPATH用分号隔开, 路径包含空格用双引号包括;
Note 避免将源文件放在安装JDK的目录下.
编译器会产生.class同名文件, Java可执行模块存放在.class中;
Javac -help; java -help;...
5 执行程序
JDK中的Java解释器执行.class文件中的字节码程序: java classname; 提供类名, 包含main();
选项-enableassertions(-ea)对于使用断言assertion的程序来说很有必要; -classpath(-cp);
使已存CLASSPATH无效:
1
|
java -ea - cp . classname;
|
Java解释器会分析并执行字节码指令来执行程序;
6 执行applet
Java编译器能编译应用程序和applet; 但applet必须在执行前嵌入网页, 然后在使用了Java的Web浏览器中执行, 或者appletviewer;
1
|
appletviewer MyApplet.html
|
applet嵌入网页的方法:
1)超文本标记语言HTML (对大小写不敏感)
2)将applet添加到HTML中
类似于元素属性element attribute;
1
2
3
4
5
6
|
<body>
<hr>
<applet code = "MyFirstApplet.class" width = 350 height = 200 >
</applet>
<hr/>
</body>
|
Java对大小写敏感;
1
2
3
4
5
6
7
8
|
import javax.swing.JApplet;
import java.awt.Graphics;
public class MyFirstApplet extends JApplet {
public void paint(Graphics g) {
g.drawString( "To climb a ladder, start at the bottom rung." , 20 , 90 );
}
}
|
1.5 Java中的面向对象编程
1.5.1 对象
对象是一个抽象的概念; 类class是描述有共同属性的一组对象集合的规范;
子类是继承了超类所以属性的类, 具有额外的规范;
类的实例是描述该类一个已存对象的技术术语;
1.5.2 定义对象类
数据抽象data abstraction;
1.5.3 对象操作
Method代码块; 可以传递数据项; 返回数据项; private方法; 构造函数;
Note Java的文件名和类名一样;
1.5.4 程序语句
可以跨行, 语句由分号结束; 一般换行可以包括空格和制表符.
1.5.5 封装
将数据和方法都隐藏在一个对象的内部, 通过类定义中设置private来实现;
优点-隐藏类的具体实现;
1.5.6 类与数据类型
基本类型-基本数据类型不属于类;
1.5.7 类与子类
子类-特殊的对象子集; 子类的父类-超类;
1.5.8 对象的优势
容易维护和扩展;
1.5.9 标记
注解annotation, 不是Java语句, 是特殊的语句, 改变编译器或库对程序语句的处理方式.
可以自定义自己的注解, e.g. 添加注解禁止警告.
1
|
@SuppressWarnings ( "serial" )
|
告诉编译器不要发布serial警告消息, 注意在特定环境中只禁止确实不相关的警告;
1.5.10 泛型类
通常用来为存储事务集合的对象定义类. 泛型类是创建本质上类似的类的诀窍.
1.6 Java程序结构
-Java程序总是由一个或多个类组成; -类的代码放入文件中, 文件的名称必须和类名相同; -Java源文件名扩展名".java".
Note 文件中可以有多个类, 文件名与外层类名相同;
1.6.1 Java的类库
Java中的库是类的集合, 提供可使用的工具;
类库是一系列类, 相关的类归类成一个package集合.
包名根据包自身包括的类所在目录的路径进行定义; e.g. java.lang --> java\lang;
import语句标识包中所需的类名; 程序中导入类的完整包(包名和基本类名)时, 可以使用非限定名称;
通配符导入: 导入包中的所有类名; (会稍微影响编译效率)
1
|
import javax.swing.*;
|
import *会增加名称冲突的风险; 为冲突的一方或多方都使用完全限定名称可以使编译器找到引用的类;
标准类被包含在压缩文件rt.jar中, 存储在jre/lib目录下; .jar是Java归档文件, rt表示运行时run time;
1.6.2 Java应用程序
每个Java应用程序都包含一个定义了main()方法的类, 类名在执行时作为Java解释器的参数;
运行Java程序时, 首先执行main(), 然后开始由mian()执行其他类的方法;
1
2
3
4
5
|
public class Hello{
public static void main(String[] args){
System.out.println( "Hello Java" );
}
}
|
>System是标准类名, 封装系统中标准I/O设备的对象; 默认包java.lang包含了System. out是静态成员对象, 代表标准输出流;
编译出错的情况:
-在环境变量PATH中没有设定jdk的bin的路径; -大小写敏感; -文件名与类名匹配;
1
|
java –ea –classpath . Hello
|
>enable assertion, set class path;
1.7 Java和Unicode
Unicode是一个标准字符集, 支持对几乎所有的语言进行编码; Unicode使用16bit的编码表示一个字符(2个字节), 16bit可区别65535个非零字符编码;
Java源码是Unicode字符, 注释, 标识符和字符串都能使用Unicode集合中表示字母的字符;
ASCII集合对应Unicode集合的前128个字母. 每个字符通常占据两个字节. Java支持Unicode 4.0, 允许使用32bit编码的超大字符集;
1.8 小结 可移植性, 面向对象;
1.9 资源 www.wrox.com
---1 End---
Java+7入门经典 -1 简介的更多相关文章
- Java Web入门经典扫描版
全书共分4篇19章,其中,第一篇为“起步篇”,主要包括开启JavaWeb之门.不可不知的客户端应用技术.驾驭JavaWeb开发环境.JavaWeb开发必修课之JSP语法等内容:第二篇为“核心篇”,主要 ...
- Java Gradle入门指南之简介、安装与任务管理
这是一篇Java Gradle入门级的随笔,主要介绍Gradle的安装与基本语法,这些内容是理解和创建build.gradle的基础,关于Gradle各种插件的使用将会在其他随笔中介绍. ...
- Java+7入门经典 -2 数据
第2章 程序,数据,变量和计算 2.1 数据和变量 变量是一段有名字的内存, 存储程序中的信息, 描述事物的数据项; 每段定义了名字的内存只能存储一种特定类型的数据. Type; 编译器会检测错误的类 ...
- Java+7入门经典 - 6 扩展类与继承 Part 1/2
第6章 扩展类与继承 面向对象编程的一个重要特性: 允许基于已定义的类创建新的类; 6.1 使用已有的类 派生 derivation, 派生类 derived class, 直接子类 direct s ...
- Java+7入门经典 - 6 扩展类与继承 Part 2/2
6.12 设计类 1) 通过已定义的基类派生子类, 并且添加方法和数据成员来自定义子类, 创建出类的层次结构; Dog 'IS-A' Animal 2) 定义一系列没有层次结构, 由类对象作为数据成员 ...
- java、八大经典书籍,你看过几本?
java.八大经典书籍,你看过几本? 转载 一.Java从入门到精通 <Java从入门到精通(第3版)>从初学者角度出发,通过通俗易懂的语言.丰富多彩的实例,详细介绍了使用Java语言进 ...
- 《c#入门经典第五版》简介及pdf电子书网盘下载地址(收藏)
<C#入门经典(第5版)>全面讲解C# 2010和.net架构编程知识,为您编写卓越C# 2010程序奠定坚实基础.C#入门经典系列是屡获殊荣的C#名著和超级畅销书.最新版的<C#入 ...
- 自学 Java 怎么入门
自学 Java 怎么入门? 595赞同反对,不会显示你的姓名 给你推荐一个写得非常用心的Java基础教程:java-basic | 天码营 这个教程将Java的入门基础知识贯穿在一个实例中,逐 ...
- c语言入门经典(第5版)
文章转载:http://mrcaoyc.blog.163.com/blog/static/23939201520159135915734 文件大小:126MB 文件格式:PDF [点击下载] C ...
随机推荐
- Value Categories
Value categories Three primary categories primary categories mixed special Each C++ expression (an o ...
- JUnit4的使用2
package com.imooc.test.aware; import org.junit.Test; import org.junit.runner.RunWith; import org.jun ...
- Spring Cache抽象详解
缓存简介 缓存,我的理解是:让数据更接近于使用者:工作机制是:先从缓存中读取数据,如果没有再从慢速设备上读取实际数据(数据也会存入缓存):缓存什么:那些经常读取且不经常修改的数据/那些昂贵(CPU/I ...
- elk 架构
- BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
题目 1613: [Usaco2007 Jan]Running贝茜的晨练计划 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们打算通过锻炼来 ...
- uva - The Lottery(容斥,好题)
10325 - The Lottery The Sports Association of Bangladesh is in great problem with their latest lotte ...
- ETHERNET帧结构
以太网帧http://blog.csdn.net/guoshaobei/article/details/4768514 Ethernet的帧格式 (转) http://jiangqiaosun.bl ...
- week4_motion_of_ball_1(小球运动)——最基本
# Ball motion with an explicit timer import simplegui # Initialize globals width = 600 height = 600 ...
- php数组操作小结
$x unset($x[3]) //key不重排
- Python监控网站运行状况
利用python便捷的类库,可以方便快速实现对网站运行状况的监控,主要包括对80端口(即网站运行端口),其它tcp服务等端口的监控就可以了解服务器大概的一个运行状况,使用的库主要为urllib2及so ...