1、Java版本 JSE:java standard edition,主要范围:桌面开发。 JME: java micro edition,主要范围:消费产品,嵌入式软件。 JEE: java enterprise edition,主要范围:企业解决方案、部署、管理。 2、java版本关系 JEE包含JSE; JME为JSE的一部分再加上一些额外添加功能; 3、java之名 90年代初,sun基于C++开发了Oak(橡树)语言; 95年Oak经改造称为java(爪哇咖啡); 4、java大事记 1995\05\23 java诞生 1996\01 第一个JDK-JDK1.0诞生 1998\12\8 java2企业平台J2EE发布 1999\6 Sun发布java三个版本:标准版J2SE、企业版J2EE、微型版J2ME 2004\9\30 javaSE5.0发布 2006\12 javaSE6.0发布 PS:出Sun外,其他公司\组织也开发了自己的JDK:IBM的JDK,BEA的Jrocket,GNU的JDK. 5、java执行过程 .java【源代码】 ——>(编译器) ——>.class【字节码,JVM的机器码】===network===> ——>classloader(寻找加载程序运行所需的类,能把本机的类与网络济源类相分离,调入类时进行检验) ——>byte code verifier(4次校验) ——>interpreter(解释) ——>Runtime(对代码进行运行)——>Hardware 6、java 三大核心技术 (1)JVM 定义了:指令集(~CPU),寄存器,栈,存储区,垃圾收集堆,类文件格式; 可以由软件实现,也可相应硬件实现; bytecode文件.class即为JVM的机器码指令; java程序中的所有类文件格式必须符合JVM定义的类文件格式; (2)垃圾回收 Garbage Collection(gc) 垃圾回收是系统自动的行为,程序员不能控制其行为。 (3)代码安全 编译时检验; 类装载时检查; 类装载后字节码校验; 若程序在网络上运行有沙箱保护; PS: bin: binary db:Derby数据库 在环境变量中:CLASSPATH前面一般要有“.;”,windows中“.”表当前路径。 7、Hello World! //HelloWorld example public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } 8、 (1)java中有public class,则java文件名必须与public class名相同; (2)java文件中一次最多只能定义一个public class; (3)java文件三个要素必须按顺序出现: package声明; 任意数量的导入(import语句) class声明; (二) 1、关键字 goto、const不是java关键字,是保留字; true、false不是java关键字,是boolean的直接量; 关键字都是小写; 类的关键字:class; 2、标示符规则 (1)首字母:字母、下划线、$,其后字母、下划线、$、数字; (2)区分大小写; (3)不能为关键字; (3)长度无限制; PS: java用Unicode字符集; 标示符能用中文,但实际上是将中文字当做unicode字符集中的符号对待了,不建议用中文标示符; 3、数据类型层次 (1)基本数据类型 -(1.1)布尔型:boolean -(1.2)数值类型: --(1-2-a)定点类型 (1-2-a-1)字符(char,16) (1-2-a-2)字节(byte,8b) (1-2-a-3)短整(short,16) (1-2-a-4)整数(int,32) (1-2-a-5)长整(long,64) --(1-2-b)浮点类型 (1-2-b-1)单精度浮点(float)<32bit,def:0.0f> (1-2-b-2)双精度浮(double)<64bit,def:0.0> (2)引用数据类型 -类 -接口 -数组 ########################### PS: 1、 java中整数型(byte、short、int、long)都带符号,可以10、8、16进制显示: 15=15(D) 015=13(D) 0x15=21(D) 2、 java中long、float、double都可分别在后面加l、f、d加以强调; 3、 Unicode编码又叫万国码、统一码,为每个语言中的每个字符设定了唯一的二进制编码,表达: '\u????'为一个Unicode字符。????严格对应四个16进制数。 在word中按住alt+x再松开即可将光标前的一个字转换成16进制unicode码。 4、java转义字符 \n enter \t tab \b space \r 换行 \f 换页 \' \" \\ 4、 java布尔型不同于c\c++,不能与数字代换,及只允许boolean值为true\false,没有:“非零即真” ####################### 4、java字符串表示String String类,Sring字符串不同于C\C++,不以\0结尾; 字符数量任意; string默认值为null; char和String类型变量的生命: 字符变量: char ch='A'; char ch1,ch2; 字符串变量: String greeting="Good Morning!\n" String str1,str2; String str=""\\空字符串 5、java源程序物理组成 语句; 块(block)【{}包括的语句集合,可嵌套】; 注释,//、/**/、/**文档注释*/; 空格; 6、运算符 (优先级、左右结合性) (1)算术运算 +、-、*、/;++、--(完全同c++) %求mod; 5/2=2;(同c++) (2)比较运算 >、<、>=、<=、==、!= 字符char用ASCII比较大小; instanceof也为比较运算,判断一个对象是否属于某个类; ==对基本数据类型为比较内容,对引用类型是比较地址。 (3)逻辑运算 &&、|| (4)赋值 =、+=、…… (5)位运算 &、|、~(补码)、^(异或) 补码(全部取反)为单目,其余3个双目; (6)移位运算 >>(右移一位,除2)、<<(左移一位,乘2) (7)+用于String字符串的串联 (8)三目运算符 : (同于c++) 7、控制语句 (1)条件语句(同c++) if……else 另外可以else if 否则如果: if() {} else if() {} else if() {} …… else {} 注:if()中必须是布尔表达式,这点不同于c++; (2)switch语句.(同c++) switch(expr1) { case expr2:……;break; …… default:……;break; } (3)循环语句(同c++) for ; while; do while;(至少循环一次) 注: 作为一种编程惯例,for循环一般用在那种循环次数事先可确定的情况,而while和do用在那种循环次数事先不可确定的情况。 do循环与while循环的不同这处在于,前者至少执行一次,而后者可能一次都不执行。 (4)特殊流程控制(同c++,label相当于C++的goto) break [标注]; continue [标注]; label:语句; Little PS: 标注可缺省,有标注时表示执行后从标注处执行。 注: break语句被用来从switch语句、循环语句和预先给定了label的块中退出,跳出离break最近的循环。 continue语句被用来略过并跳到循环体的结尾,终止本次循环,继续下一次循环。 label可标识控制需要转换到的任何有效语句,它被用来标识循环构造的复合语句。它类似以前被人诟病的”goto”语句,我们应该尽量避免使用。 三、java类和对象
|
|