1.Java语言及编程环境
**1.1Java语言简介**
**Java SE - Java Standa Edition (标准版)**,主要用于普通PC机、工作站的Java控制台或桌面程序的基础开发。
**Java Me - Java Micro edition (微型版)**,用于移动设备、嵌入式设备上的Java应用程序开发。
**Java EE - Java Enterprise Edition (企业版)**, 用于开发、部署和管理企业级、可扩展的大型软件或Web应用。
**1.1.1Java语言特点**
(1)**简单性**:Java语言虽衍生自C/C++,但它略去了C/C++中指针、运算符重载/多重继承等复杂的概念,并通过自动垃圾收集机制大大简化了程序员的内存管理工作。另外,Java对环境的要求非常低,它的基本解释器及类仅几十个 **KB**,加上标准类库和线程的支持也只有大约200KB。
(2)**面向对象**:Java是一个完全面向对象的语言,其程序设计集中对象及其接口,它提供了简单类型的机制及动态的接口模型。对象中封装了它的状态变量及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承机制,子类可使用父类的方法,实现了实现代码复用。
(3)**分布式**:Java是面向网络的语言,通过它提供的类库可以处理TCP/Ip协议,用户可以通过URL地址在网络上很方便地访问其他对象。
(4)**安全性**:因Java不支持指针,一切对内存的访问都必须通过对象的实例来完成,这就有效防止了黑客使用 ”特洛伊“ 木马等欺骗手段访问对象的私有成员,同时也避免了由于指针操作失误导致的程序或系统崩溃。
(5)**可移植性**。与平台无关的特性使Java程序可以很方便地被移植到不同软硬件平台的计算机上。同时,Java自身的类库也实现了与不同平台的接口,使这些类库更容易移植。
(6)**高性能**:和其他解释执行的语言不同,Java字节码的设计使计算机能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。
(7)**支持多线程**:多线程机制使应用程序能够并发地执行,同步机制又保证了对共享数据的正确操作。通过使用多线程,程序员可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。
1.1.2**Java运行机制**
Java有两个核心的运行机制:一个使Java虚拟机(Java Virtual Machine, **JVM**);另一个使垃圾收集机制(Garbage Collection)。
1.**Java虚拟机**
Java虚拟机(JVM)可理解成一个以字码节为机器指令的CPU。首先,Java编译程序将后缀名为.java的源文件程序编译为JVM可执行的代码(后缀名为.class的Java字码节文件)。每种类型的操作系统都有一种对应的JVM,JVM屏蔽了底层操作系统的差异,使Java程序能够得到“一次编译,到处运行”。
2.**垃圾收集站**
Java垃圾收集站能够自动回收垃圾,即运行时无用对象占据的内存空间。
1.2**Java编程环境**
1.下载JDK8 安装JDK(运行jdk-8uXXX-windows-x64.exe),同时会级联的安装JRE。
2.**配置环境变量**


1.安装 Eclipse
可以从官网下载:http://www.eclipse.org/downloads/. 1.3**类的阐述**:
(1)同一个源文件可以定义多个类。
(2) 编译后每个类都会生成独立的.class文件。
(3) 一个类中只能有一个主函数,每个类都可以有自己的主函数。
(4)public修饰的类称为公开类,要求名必须与文件名相同,包括大小 写。
(5)一个源文件中只能有一个公开类。
1.4 Package包
**命名规范**:
(1) 类名:HelloWorld、TestPackage、MyPack、TestAnnotation、ToolsA、ToolsB(帕斯卡命名法)
(2) 函数名、变量名:main、run、testMethod、getElementById(驼峰命名法)
(3) 包名:com.qf.teach; com.qf.teach.bj;(全小写、不以.开头或结尾)
(4)常量:HELLO_WORLD GET_ELEMENT_BY_ID
1.6 计算机存储容量的基本单位?
bit(位-8位等于1个字节) - Byte(1字节) - KB - MB - GB - TB - PB - EB - ZB - YB - BB - NB - DB - CB - XB(都是1024的进制关系)
1.7变量:
(1)概念:计算机内存中的一块存储空间,是存储数据的基本单元。
(2)组成:数据类型、变量名、值。
(3)注意: = 代表的是赋值运算符(将等号右边的值,赋值给等号左边的变量)
(4)int = Integer(整数)
1.8**强类型编程语言**:要求变量的类型与值的类型要一致。
等号左边:int money(存储整数的,所以只能存整数)
等号右边:100(本身就是整数,只能存到整数的变量里)
不是当前重点:JavaScript前端脚本编程语言(弱类型编程语言),变量是通用的,存什么都可以
1.9数据类型: (1)基本数据类型:
整数
byte 1个字节(8位) 取值范围: -128~127
short 2个字节(16位) 取值范围:-215~215-1
int 4个字节(32位) 取值范围: -231~231-1
long 8个字节(64位) 取值范围 -263~263-1
注意:Java中任何一个整数,默认的类型是int,如果书写的数字超过int的取值范围,即被视为过大的整数。
(2)**小数(浮点数)**:
float 单精度浮点型 占用内存4个字节 ,小数类型默认为double,如需存入至float变量中,请追加F。
double 双精度浮点型 占用内存8个字节
Java中的小数支持科学计数法的 2E3 5E8
(3)布尔型常量
boolean 取值范围只有 true / false ,非真即假,常用来表达判断的结果。
(4)字符(character)
char 每一个字符的背后,都有一个数字做代表(对照、参照表---ASCII美国标准信息交换码、Unicode万国码)
char类型有多种赋值方式:
char c1 = 'A'; //字符,直接赋值
char c2 = 65;//整数,对应ASCII编码赋值
char c3 = '\u0041';//整数,十六进制整数赋值
注意:char类型也支持整数表现形式,但char类型是无符号数,其实中所有值,均为正数。取值范围:0~65535
2.0**类型转换**:
(1)自动类型转换:两种类型相互兼容,目标类型大于源类型。
(2)强制类型转换:两种类型相互兼容,目标类型小于源类型。通过在源类型前面,加上 (目标类型) ,达到强制转换的目的,但是,有可能失去精度
如:小数强转为整数,则失去精度,小数点之后的值,无法保留。