Java一.Java概述二.Java语言基础三.面向对象编程四.Java异常类处理机制五.数组六.Java常用类七.Java容器类八.Java流技术九.Java多线程机制十.Java网络编程十一.GUI编程Java概述一.Java语言的特点1.面向对象2.与平台无关,提供程序运行的解释环境3.健壮性。
吸收了C/C++的优点,但去掉了其影响健壮性的部分(如:指针、内存的申请与释放等)。
二.Java程序运行机制及运行过程Java两种核心机制:Java虚拟机(JVM)、垃圾收集机制1.Java虚拟机1)Java虚拟机可以理解成一个以字节码为机器指令的CPU。
2)对于不同的平台运行平台有不同的虚拟机。
3)Java虚拟机机制屏蔽了底层运行平台的差别,实行了“一次编译,随处运行”。
2.垃圾收集机制1)不再使用的内存空间应回收——垃圾收集。
2)在C/C++等语言中,由程序员负责回收无用内存。
3)Java语言消除了程序员回收无用内存空间的责任;它提供一种系统级线程跟踪存储空间的分配情况。
在JVM空闲时,检查并释放那些可被释放的存储器空间。
4)垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。
三.Java开发环境的下载、安装、配置1.下载JDK2.安装3.在系统属性高级标签中配置path&classpath环境变量path:windows系统执行命令时要搜索的路径(bin文件夹)如:“%path%;c:\jdk\bin”classpath:java在编译和运行时要找的class所在的路径如:“.;c:\jdk\lib”注:路径可以为多个(因为一台电脑可以安装多个JDK),但从第一个路径开始找。
在DOS中键入“java-version”可以看当前所用的JDK版本。
4.验证在DOS中输入javac、java命令进行验证,出现一长串代码表示环境变量配置成功。
javac:java编译器,编译java程序。
将java源代码文件(.java)转换成字节码文件(.class)。
java:java解释器,运行java程序。
用来执行javac编译成的字节码。
四.Java Application初步例:简单的helloworld程序。
public class helloworld{public static void main(String args[]){//输出“helloworld”System.out.println(“helloworld”);}}此程序用DOS编译运行方法:命令javac后面跟文件名命令java后面跟主类(含有main方法)主类不一定是public类1.Java源程序以“java”为扩展名。
源文件的基本组成部分是类(class),如本例中的helloworld类。
2.一个源文件最多只能有一个public类,其他类的个数不限。
如果源文件文件包含一个public类,它必须按该类名命名。
3.Java应用程序的执行入口是main()方法。
它有固定的书写格式:public static void main(String args[]){……}4.Java语言严格区分大小写。
5.Java方法有一条条语句构成,每个语句以分号结束。
6.Java语言有三种注释方式:附:程序员电脑的设置1.文件夹显示方式为“详细信息”模式并“应用到所有文件夹”。
2.显示所有文件和文件夹。
3.不要隐藏文件类型。
4.在地址栏里显示完整路径(用于copy路径)。
五.常见Java开发环境编辑器:UltraEdit、EditPlus集成开发环境:JBuilder、Eclipse、Sun One Studio、WSADJava语言基础内容:标示符、关键字、Java基本数据类型、运算符、表达式和语句、分支、循环、方法、变量的作用域、递归调用。
一.标示符1.Java对各种变量、方法和类等要素命令时使用的字符序列称为标识符。
凡是自己可以取名字的地方都叫标识符,都遵守标识符的规则。
2.Java标识符命名规则1)标识符由字母、下划线“_”、美元符“$”或数字组成。
2)标识符应以字母、下划线、美元符开头(数字不能作为开头)。
3)Java标识符大小敏感,长度无限制。
3.约定俗成:Java标识符选取应“见名知意”且不能与Java语言的关键字重名。
二.关键字1.Java中一些赋以特定的含义,用作专门用途的字符串称为关键字(keyword)。
大多数编辑器会将关键字用特殊方式标出。
2.所有Java关键字都是小写英文。
3.goto和const虽然从未使用,但也被作为Java关键字保留。
Java常量1.Java的常量值用字符串表示,区分为不同的数据类型。
1)如整型常量123堆栈5.Java变量的分类1)按被声明的位置划分局部变量:方法或语句块内部定义的变量。
成员变量:方法外部、类的内部定义的变量。
注意:类外面(与类对应的大括号外面)不能有变量的声明。
2)按所属的数据类型划分基本数据类型变量引用数据类型变量6.Java局部变量与成员变量1)方法体内部声明的变量(包括形参)称为局部变量。
方法体内部是指与方法对应的大括号内部。
2)在方法体外、类体内声明的变量称为成员变量。
五.Java数据类型的划分Java中定义了4类8种基本数据类型:逻辑型—boolean文本型—char整数型—byte、short、int、long浮点数型—float、double1.逻辑型booleana)boolean类型适于逻辑运算,一般用于程序流程控制。
b)boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false,这点和C语言不同。
c)用法举例:boolean flag;flag=true;if(flag){//do sth.}2.字符型chara)char型数据用来表示通常意义上的“字符”b)字符常量为用单引号括起来的单个字符,例如:Char m=‘a’;char n=‘中’;c)Java字符才用Unicode编码,每个字符占两个字节,因而可用十六进制形式表示,例如:char c1=‘\u0061’;注:Unicode是全球语言统一编码d)Java语言中还允许使用转义字符’\’来将其后的字符转变为其它的含义,例如:char c2=‘\n’;//’\n’代表换行符e)补充:2进制、10进制、16进制之间的转换A.10进制转2进制:除2取余,逆序排列小数部分:乘2取整,顺序排列用十进制整数去除2,可得到一个商和余数;再用商去除2,又会得到一个商和余数,如此进行,直到商为0时为止,逆序排列余数用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。
或者达到所要求的精度为止。
B.10进制转8进制、16进制与转成2进制方法相同,但基数是8或16。
C.2进制转换为8进制从小数点开始,将二进制数的整数和小数部分每三位分为一组,不足三位的分别在整数的最高位前和小数的最低位后加“0”补足,然后每组用等值的八进制码替代,即得八进制数。
例:(11010111.0100111)2=(327.234)8D.二进制数与十六进制数的相互转换由于16=2的4次方,所以在将二进制数转换成十六进制数时,从小数点开始将,二进制数的整数和小数部分每四位分为一组,不足四位的分别在整数的最高位前和小数的最低位后加“0”补足,然后每组用等值的十六进制码替代,即得目的数。
十六进制数转换成二进制数时正好相反,一位十六进制数用四位二进制数来替换。
对于有小数的数,要分小数和整数部分处理。
例:(111011.10101)2=(3B.A8)16E.八进制转成十六进制可先转成二进制再转成十六进制转换表:注:Java里没有无符号的整数,所有的数都带符号,符号占一位。
5.基本类型数据转换A.boolean型不可以转化为其它的数据类型。
B.整型、字符型、浮点型的数据在混合运算中相互转换应遵循以下原则:a.容量小的类型自动转换为容量大的数据类型byte,short,char->int->long->float->doublebyte,short,char之间不会相互转换,它们在计算时首先会转换为int型b.容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出,使用时要格外注意c.有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那一种数据类型,然后再进行计算d.实数常量(如:1.2,0.1)默认为doublee.整型常量(如:123)默认为intpublic static void main(String args[]){int I=1,j;float f1=0.1;float f2=123;long l1=12345678,l2=888888888888;double d1=2e20,d2=124;byte b1=1,b2=2,b3=129;//b3超出取数范围,需加强制转换符(byte)或更改为int型byte b=b1–b2;//系统强制转换为int后再运算,需加强制转换符(byte)j=j+10;//j在使用前应赋值i=i/10;i=i*0.1;//有小数先转换为double再运算,所得加强制转换符(int)char c1=‘a’,c2=125;char c=c1+c2–1;//系统强制转换为int后再运算,需加强制转换符(char)float f3=f1+f2;float f4=f1+f2*0.1;//0.1默认为double,需加强制转换符double d=d1*i+j;float f=(float)(d1*5+d2);}附:格式应该注意的问题:a.大括号对齐b.遇到{缩进,Tab键c.程序块之间加空行d.并排语句之间加空格e.运算符两侧加空格(有特定条件)f.{前面有空格g.{}成对编程六.运算符1.Java运算支持如下运算符:2.自加和自减运算符3.逻辑运算符!—逻辑非&—逻辑与I—逻辑或^—逻辑异或&&—短路与II—短路或4.赋值运算符(=)A.当“=”两侧数据类型不一致时,可以使用默认类型转换或使用强制准换类型转换原则进行处理:long m=100;int n=(int)m;B.注意:可以将整型常量直接赋值给byte、short、char等类型变量,而不需要强制类型转换,只要不超出其表数范围。
5.字符串连接符(+)A.“+”除用于算数加法运算外,还可用于对字符串进行连接操作。
int id=800+90;String s=“hello”+“world”;B.“+”运算符两侧的操作数只要有一个是字符串类型(String),系统会自动将另一个操作数转换为字符串然后再进行连接。