java 发展历程
java 是一门完整的编程语言,包括自己的语法和各种的java底层支持
Sun:Stanford University Network(1982年成立)
在1991年的时候 SUN 公司为了竞争一个名为GREEN 的项目,就是使用各种硬件设备,控制家电运行,开始SUN公司的技术人员打算使用C++开发,但是由于C++开发较为复杂,所以基于C++开发出了一个新的平台,---Oak(橡树),可惜失败了。
之后SUN 公司开发人员开始跟网景公司学习浏览器技术,产生了HOTJAVA浏览器,发现JAVA 在网络市场的前景,在1995年的时候将Oak命名为Java。java创始人James Gosling。
Java 技术的主要分支方向:
·J2SE:S是java的标准版,提供基本的底层支持,图形界面等等(在2005年java十周
年大会上,正式更名为JAVASE)。
·J2ME:是java的微型版本,主要是用于嵌入式系统的开发,现在主要做的是游戏(
在2005年java十周年大会上,正式更名为JAVAME)。
·J2EE:是Java的一个主要方向,主要用于构建企业的应用系统(在2005年java十周
年大会上,正式更名为JAVAEE)。
JAVA 最大的特点是面向对象,面向对象的概念最早是在70年代的时候由smalltalk语言提出来的,smalltalk是由IBM开发的语言。
Java 语言是属于编译型和解释型的语言,这意味着所以的java源程序代码,需要先编译,
编译之后再在电脑上进行解释,所以java的语言执行分为两步。
在Java 中不存在指针的概念,但是存在引用的概念,实际上传递的时候传递的也是内存地址。
Java的安全性是最高的,因为一切的操作都是以字节码(class)文件的形式保存。
Java是由C++开发出来的,而且java的最大特点就是跨平台。
Java的所有程序都是在一台虚拟的电脑上进行的,此虚拟的电脑称为JVM。
Java运行中,会根据不同的操作系统提供一个JVM的版本支持,所有的程序执行是只是找到JVM,那么由JVM直接适应操作系统,那么这样一来,所有的程序就可以在任意的操作系统上执行。
这样的程序设计思路,在开发中也是经常使用到得。
所有的代码如果可以由A直接到B,这样的代码肯定不好使,中间加入一个过渡端:
·AàCàB
Java 基础部分的重要知识
两个环境属性
JDK 安装完成之后,实际上所有的命令都在C:\Program Files\Java\jdk 1.6.0 _10\bin目录下,但是所有的java程序的编译和运行都应该在命令行窗口中完成,所以为了让windows知道bin目录下有执行的命令,所以需要配置path属性。
除了以上属性之外,在java中还存在第二个属性环境:classpath。
Helloworld程序:
public class Hello{
public static void main(String args[]){//主方法
System.out.outprintln(“Hello World!!!~”);//系统输出,在屏幕上打印
}
}
编程完成之后,要使用javac和java命令进行编译执行:
·编译:javac 文件.java
·执行:java 类
此时,程序正常执行。但必须进入文件所在目录下才能正常执行。
如果希望即使不在对应目录下也照样能执行,则需要classpath环境属性的配置,配置语句:
SET CLASSPATH=路径;
也就是说,此时对应java程序来讲主要是通过classpath找到类所在的目录,即说java命令运行的时候先要找到classpath所在的目录,之后才可以进行类的执行工作。
所以,此时应该讲classpath的路径设置成从当前所在的文件夹查找,这个路径用“.”表示。
SET CLASSPATH=.
在一般的开发中,classpath基本上都会将其设置在当前所在的目录中进行查找。
Public class 和class声明的区别
·public class 类名称
·class类名称
如果一个类声明的时候使用了public class进行声明,则类名称必须与文件名称完全一致。
如果类的声明使用了class的话,则类名称可以与文件名称不一致,但是执行的时候肯定执行的是生成后的类名称。
例如现在有个文件名称为Hello.java 但是其代码如下:
class HelloDemo{
public static void main(String args[]){
System.out.pritnln(“hello world”);
}
}
因为使用了class 声明,所以此时编译不会产生错误(java Hello),但是生成之后的*.class文件名称为HelloDemo.class,所以执行时应该用java HelloDemo
在一个*.java中,只能有一个public class声明,但是允许有多个class的声明。
Java 标示符(类名称、变量名、方法名称等)的规范:
由字母、数字、下划线、$组成,其中不能以数字开头,不能是java的保留字。
关于保留字,java中存有49个保留字,关于保留字的一些说明:
·java产生时预留了两个保留字:goto、const
·java1.4时增加了assert保留字
·java1.5时增加了enum保留字
·在java中以下的内容不属于保留字,但是有意义的名称:true、false、null。
Java数据类型划分:
Java中的数据类型主要分为两类:
·基本数据类型:
|-数值型:
|-整数:byte、short、int、long
|-小数:float、double
|-字符型:char
|-布尔型:boolean,取值只能是true或false
·引用数据类型:实际上就类似于C语言的指针操作,传递的是内存的空间地址
|- 数组
|- 类
|- 接口
数字的操作中会存在数据的溢出
任何一种数据类型都有其最大值,如果已经是最大值,则加1后回变成最小值,如果是最小值减1则会变成最大值:
public class SimpleDemo{
public static viod main(String args[]){
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println(“int 的最大值:”+max);
System.out.println(“int 的最大值+1:”+(max+1));
System.out.println(“int 的最小值:”+min);
System.out.println(“int 的最小值-1:”+(min-1));
}
}
从结果中发现,最大值+1之后变成了最小值,最小值减1之后变成了最大值,如果要深入理解此操作,则要结合位操作运算来看。
数据的默认类型
在java中,一个整形数字的默认类型是int型,一个小数的默认类型为double
说明现在可能损失精度,因为一个小数的默认类型是double,double的取值比float要打,所以会存在丢失精度的问题,那么此时,可以通过以下两种方式解决:
数据类型的转换
在java中存在以下的数据类型的转换操作:
·char à int 相互转换,转成ASCII码
·byte à short à int à long
·int à float à double,double 的数据长度是最大的。
·但是转换的时候有一点要特别注意,如果碰到的字符串,则所有类型都想字符串转换:
此时并没有执行加法操作,而是将全部的数字变为字符串,使用“+“完成字符串的连接操作。