一、java概述
1991 年Sun公司的James Gosling(詹姆斯·高斯林)等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器。1994年将Oak语言更名为Java。
二、Java的三种技术架构
J2EE:Java PlatformEnterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;
J2SE:Java PlatformStandard Edition,完成桌面应用程序的开发,是其它两者的基础;
J2ME:Java PlatformMicro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;
三、Java环境变量
1,JDK:JavaDevelopment Kit,java的开发和运行环境,java的开发工具和jre。
2,JRE:Java RuntimeEnvironment,java程序的运行环境,java运行的所需的类库+JVM。
3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
4,javac命令和java命令做什么事情呢?
要知道java是分两部分的:一个是编译,一个是运行。
javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。
java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.
Java为什么能跨平台:
因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”,二进制字节码的class文件,jvm就解释执行class文件。不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)。假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了.因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。
四、Java编码规范及优化
1. &和&&,|和||的区别
&:位运算符,不管怎样,都会执行"&"符号左右两边的程序。
&&:逻辑运算符,只有当符号"&&"左边程序为真(true)后,才会执行符号"&&"右边的程序。
例子: if(str != null & !"".equals(str)),if(str != null && !"".equals(str))
使用场景:条件判断下使用&&比使用&效率更高,&一般用于位运算。
|和||同理可证。
2. 关键字final
1:这个关键字是一个修饰符,可以修饰类,方法,变量。
2:被final修饰的类是一个最终类,不可以被继承。
3:被final修饰的方法是一个最终方法,不可以被覆盖。
4:被final修饰的变量是一个常量,只能赋值一次。
常量名称定义时,有规范,所有字母都大写,如果由多个单词组成,中间用 _ 连接。
例子:private staticfiinal String OS_TYPE = “windows”;
3. ==与equals
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作: