======================================================================
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()方法获取输入的浮点数???????????
???????????????????????????
???????????????????????????
?