1.Java语言简介
1.1 Java语法的基本特点:
1)简单:具有简洁的面向对象语法,没有运算符重载、多重继承等模糊概念,自动垃集
2)面向对象:具有一切面向对象编程语言的特点,如封装、继承、多态等
3)跨平台:具有与体系结构无关的字节码指令,主流平台都提供了JVM
4)安全:Java不支持指针,避免了指针错误和欺骗访问,具有严格的编译和字节码装载和校验机制
5)多线程:具有功能强大、简单、与平台无关的线程处理
----------------------------------------------------------------------------
1.2 JVM的基本原理
1)JVM - Java虚拟机,负责解析和执行Java代码,JVM可以运行在各种操作系统平台上
2)Java跨平台性:
(Java程序 <-- JVM <-- 操作系统 <-- 计算机硬件 )
不同平台有不同的JVM,主流平台都提供了各自的JVM,所以JAVA字节可以在所有平台上能够执行。
在这个意义上Java具有平台无关性,一次编写,处处运行。
Java是一种跨平台的语言,只要JVM移植到特定的计算机上,就能保证经过编译的Java代码能够在该系统上运行 。
3)Java程序的编译运行过程:
Step1. 通过Java编译器将Java源文件编译为.class文件,即字节码文件
Step2. 启动Java虚拟机(JVM),每一个java程序都会启动一个独立的jvm进程。
Step3. JVM读取.class文件,并进行验证和初始化
验证:检查.class文件是否符合规格
初始化:为变量分配内存和初始值
Step4. JVM将.class文件二次编译成特定平台相关的机器码,
运行并输出结果(Hotspot动态编译执行)
----------------------------------------------------------------------------
1.3 JDK、JRE、Java API的基本概念
JDK - Java Development Kit(Java开发工具包)
JRE - Java Runtime Enviroment(Java运行环境),
JRE = JVM + JavaSE API
JVM - Java Virtual Machine(Java虚拟机)
Java API - 应用程序编程接口,Java系统标准类库
Development Tools:JDK开发工具
JDK java 开发 工具包
|-- 开发工具(命令:java,javac,jar...)
|-- JRE Java运行环境
|-- Java API(应用编程接口,系统类库)
|
|-- JVM Java虚拟机
---------------------------------------
1.4 Java环境的基本配置
JAVA_HOME - JDK主目录
CLASSPATH - Java类路径,
一般设置为.;${JAVA_HOME}\lib
PATH - 添加jdk可执行文件的路径
path=...;${JAVA_HOME}\bin
启动shell终端,键入java -version查看java安装是否成功
参考:http://linux.chinaunix.net/techdoc/beginner/2009/03/23/1104316.shtml
===============================================================
2.2 package语句
1)package语句用于将类放在特定的包下,位于java源文件的第一行
Example: package day01;
2)package语句的作用:
用于组织Java中的类;避免命名冲突。
3)文件需要放在和包名匹配的目录下
package day01; ----->HelloWorld2.java需要放在day01目录下
4)编译执行包下的java程序:
cd ./day01;
javac HelloWorld2.java
cd..
java day01.HelloWorld2
(JVM在当前目录下寻找day01子目录,并加载day01目录的 HelloWorld2.class)
5)JDK中常用的包
java.lang包 - 提供System类、String类、Integer类
(java.lang包中的类不需要import导入,是自动导入的)
java.util包 - 工具包,提供Date类(日期)、Random类(随机数)、
集合接口和类。
java.io包 - 提供与文件和流操作有关的类。
java.sql包 - 提供操作数据库有关的类。
java.net包 - 提供网络编程相关的类。
java.awt包,javax.swing包 - 提供创建图形界面相关的类
---------------------------------------------------------------------------------- 2.3 import语句
1)import语句用于导入包中的类,以便在代码中直接使用。
2)方式一:导入具体的类,Example: import java.util.Date;
方式二:导入包下的所有类,Example: import java.util.*;
Question: import java.*;是否可以导入所有以java开头的包呢?
(不可以) *只能导入下一级的包
3)import语句位于package语句之后,class定义之前,
可以有多条import语句。
==================================================================================
3.Elcipse的使用
3.1 理解workspace - 工作区,用来管理多个项目,与目录对应。
项目通常存放在工作区的目录下。
3.2 区分Folder和Source Folder
Folder - 文件夹,用来存放任何的普通文件,
如notes就是一个folder
Source Folder - 源文件夹,用来存放Java源文件,
Eclipse默认提供了一个源文件夹(src),
源文件编译后的.class文件存放在project/bin目录下。
一个工程可以根据需要建立建立多个Source Folder
3.3 在Eclipse中管理多个JRE
Step1. window->Preferences->Java
->Installed JREs
Step2. 在工程右键菜单中点击"build path(构建路径)"
->configure build path->选择JRE
->remove->add libary->System JRE Library
3.4 Eclipse的快捷键
Eclipse常用的快捷键:
Alt+/: content assistant
-------------------------------
main,Alt+/->main方法
sysout,Alt+/->System.out.println()
for,Alt+/->for语句
if,Alt+/->if语句
-------------------------------
F3: open declaration,查看定义
Ctrl+Shift+M: 导入包
Ctrl+Shift+F: 格式化代码
Alt+Shift+X,J:运行Java程序
Alt+Up:将代码上移一行
Alt+Down:将代码下移一行
Ctrl+/:设置/取消单行注释
Ctrl+Shift+/:多行注释
Ctrl+Shift+\:取消多行注释
Ctrl+D:删除一行
(设置快捷键:window->Preferences->Gerneral->Keys)
参考:http://www.blogjava.net/action/articles/17339.html
============================================
4.Java注释
4.1 注释的三种类型
1)单行注释://,Ctrl+/
2)多行注释:/* .. */,Ctrl+Shift+/
3)文档注释:/** .. */
4.2 使用JavaDoc根据文档注释生成相关的文档
Eclispe右键菜单export->Java->Javadoc
=============================================
5.变量
3.1 变量用于存储变化的数据,变量名称可以包含字母、数字
、_、$,但不能以数字开头。
Example: sum_100
5.2 变量的声明:使用变量前需要声明变量
语法:数据类型 变量名;
Example: int sum_100;
double amount;
5.3 变量的赋值和使用
Example: sum_100 = 0; //赋值
int i=1;
sum_100=i; //使用变量i
5.4 一条重要的规则:局部变量在使用前必须赋初值。
(变量的初始化指的是声明后第一次赋值)
5.5 变量不能重复定义
5.6 变量的作用域
变量只能在变量定义开始到作用域结束的范围内使用。
(超出作用域的变量可以再次定义)
==============================================
4.使用Integer类与进制的方法
(Integer类位于java.lang包)
1)int parseInt(String s,[int radix])
--将字符串形式的数值转为十进制的整数,
参数radix指定进制,如2,16等,默认为10进制
2)String toString(int num,int radix);
--返回数值的指定进制的字符串形式
==============================================
5.基本数据类型
5.1 基本数据类型有8种:
byte short int long float double char boolean
5.2 整数类型:
(整数类型都是有符号的整数,最高位是符号位,
0代表正数,1代表负数)
byte - 字节类型,在内存中占用1个字节,
存储数据的范围是-128~127
byte的最小值 1000 0000,最大值0111 1111
对应的类Byte提供两个常量:
MIN_VALUE - byte类型的最小值
MAX_VALUE - byte类型的最大值
short - 短整型,在内存中占用2个字节(16位)
存储数据的范围是-2^15~ 2^15-1
对应的类Short提供两个常量:
MIN_VALUE - short类型的最小值
MAX_VALUE - short类型的最大值
int - 整型,在内存中占用4个字节(32位)
存储数据的范围是-2^31~ 2^31-1(20亿+)
对应的类Integer提供两个常量:
MIN_VALUE - int类型的最小值
MAX_VALUE - int类型的最大值
long - 长整型,在内存中占用8个字节(64),
存储数据的范围是-2^63~ 2^63-1
---------------------------------------
5.3 浮点类型
float - 单精度,在内存中占用4个字节
double - 双精度,在内存中占用8个字节,
double比float类型更加精确
5.4 字符类型
char - 字符类型,在内存中占用2个字节,
是一个无符号的16位整数,
范围是0~65535,采用的unicode编码
Example:
char c='A';->unicode编码65
->内存中二进制形式:
0000 0000 0100 0001
字符0~9,A~Z,a~z都是连续编码的
'0'的unicode编码是48
'A'的unicode编码是65
'a'的unicode编码是97
5.5 布尔类型
boolean - 布尔类型,表示真和假,取值为true和false
------------------------------------------
6.java.util.Scanner类的使用简介
Scanner类用于接收控制台的数据
使用Scanner的步骤:
Step1.通过System.in创建Scanner对象
Scanner sc=new Scanner(System.in);
Step2.通过next()方法获取输入的字符串
通过nextInt()方法获取输入的整数
通过nextDouble()方法获取输入的浮点数