第一天 JAVA SE核心知识.docx

上传人:b****1 文档编号:2317616 上传时间:2023-05-03 格式:DOCX 页数:49 大小:1.09MB
下载 相关 举报
第一天 JAVA SE核心知识.docx_第1页
第1页 / 共49页
第一天 JAVA SE核心知识.docx_第2页
第2页 / 共49页
第一天 JAVA SE核心知识.docx_第3页
第3页 / 共49页
第一天 JAVA SE核心知识.docx_第4页
第4页 / 共49页
第一天 JAVA SE核心知识.docx_第5页
第5页 / 共49页
第一天 JAVA SE核心知识.docx_第6页
第6页 / 共49页
第一天 JAVA SE核心知识.docx_第7页
第7页 / 共49页
第一天 JAVA SE核心知识.docx_第8页
第8页 / 共49页
第一天 JAVA SE核心知识.docx_第9页
第9页 / 共49页
第一天 JAVA SE核心知识.docx_第10页
第10页 / 共49页
第一天 JAVA SE核心知识.docx_第11页
第11页 / 共49页
第一天 JAVA SE核心知识.docx_第12页
第12页 / 共49页
第一天 JAVA SE核心知识.docx_第13页
第13页 / 共49页
第一天 JAVA SE核心知识.docx_第14页
第14页 / 共49页
第一天 JAVA SE核心知识.docx_第15页
第15页 / 共49页
第一天 JAVA SE核心知识.docx_第16页
第16页 / 共49页
第一天 JAVA SE核心知识.docx_第17页
第17页 / 共49页
第一天 JAVA SE核心知识.docx_第18页
第18页 / 共49页
第一天 JAVA SE核心知识.docx_第19页
第19页 / 共49页
第一天 JAVA SE核心知识.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第一天 JAVA SE核心知识.docx

《第一天 JAVA SE核心知识.docx》由会员分享,可在线阅读,更多相关《第一天 JAVA SE核心知识.docx(49页珍藏版)》请在冰点文库上搜索。

第一天 JAVA SE核心知识.docx

第一天JAVASE核心知识

第一天JAVASE核心知识

3.1、Java简介(了解)

         Java是一门编程语言,Java发展到今天,已经成为了一个真正意义上的语言标准,如果学习过(C、C++、Java)可以发现语法结构是很类似的,但是Java的标准指的是一种作为应用层封装的标准,使用Java可以调用一些底层的操作,例如,今天的Android开发,就是利用了Java调用了Linux内核操作形成的。

在2003年的时候,Java成功的应用在了一枚美国的火箭上。

         2001年的时候有一份报道:

在美国,从事于C++的开发人员的年薪是$6.5,而从事Java开发的人员的年薪是$7W,7*9=¥63W(梦想。

),第一次在国内的报道上看到Java是1998年的时候。

         如果要想追溯Java的发展,那么首先需要从1991年的GREEN项目开始说起,这个项目当时是在email特别盛行的时候提出来的,指的是使用email去控制各个家电产品的运行(物联网),最早SUN的工程师打算使用C++进行项目的开发,但是后来考虑到C++的复杂性,所以使用C++开发出了一个新的平台(Java使用的是C++开发的,但是比C++更加的简单) —— OAK(橡树)平台。

不过遗憾的是,在与NetScape的SGL竞标的时候不幸落败(等待淘汰)。

不过后来SUN的工程师们开始向网景公司学习浏览器技术,推出了HotJava浏览器(HotJava程序设计,王克宏),从而向浏览器技术开始发展,于是在1995年的时候正式的将OAK更名为Java(咖啡),但是Java的历史发展,可以归纳为如下的几个阶段:

                   · 第一阶段(完善期):

JDK1.0 ~ JDK1.2;

                   · 第二阶段(平稳期):

JDK1.3~JDK1.4;

                   · 第三阶段(发展期):

JDK1.5 ~JDK1.7;

         在1995年的时候推出了JDK1.0、在1998年的时候推出了JDK1.2(更名为Java2)、2005年的时候推出了JDK1.5。

         对于Java的制造公司 —— SUN(中文翻译为:

太阳公司,斯坦伏大学网络),是一家主要从事于硬件生产的公司,其中SUN最为著名的就是它的小型机(成功的应用案例:

应用在Amazon书店上),而最悲催的是 SUN的确是Java的缔造者,但是真正用它赚到钱的是IBM(WebsphereStudio)。

而且SUN公司在2000年之后的互联网风暴之中就再也没有缓过劲来,于是在2009年的时候被IBM提议收购,不过没有谈成,马上Oracle跟进,最终被Oracle以69亿美金收购。

面试题:

请你谈一谈,Oracle收购SUN公司有什么用?

No.

对比

Oracle

Microsoft

1

操作系统

UNIX

Windows

2

数据库

Oracle大型数据库

SQLServer中小型数据库

3

中间件

OAS、收购了BEA得到WebLogic

IIS

4

编程语言

PLSQL、收购SUN得到Java

.NET

         而一旦Oracle收购了SUN公司之后,市场上的编程语言的格局,变为三家公司:

Microsoft、Oracle、Adobe(FLEX,Flash编程),不过这几年Adobe也比较悲惨,被Microsoft、Oracle、Apple,一起抵制Flash。

         那么从Java的开发地位而言,也分为以下的几个方面:

                   · J2SE(2005年之后更名为JAVASE):

指的是进行桌面单机程序的开发;

                   · J2EE(2005年之后更名为JAVAEE):

指的是企业平台开发;

                   · J2ME(2005年之后更名为JAVAME):

进行嵌入式开发。

         JAVAEE:

只要是进行大型的企业项目开发,像银行、电信等服务都会使用此架构;

         JAVAME:

Nokia盛行的时候,Java的手机游戏推广的比较好,但是JavaME并没有得到很好的发展,而是后来被Android所取代了,而到Android时代,可以说是真正的将Java最早的嵌入式开发的设想给做出来的,并且有了大量的游戏和软件出现。

而Android的出现,正式的标志着移动互联网时代的开启。

         但是对于Android开发而言,国内现在可以做手机的人有,但是可以做整体的人很少。

         Java语言的本身的特点如下:

1、   Java语言足够简单,相对于其他的任何语言而言,是很容易学的(入门简单);

2、   Java避免了C/C++之中复杂的指针关系,而使用了更为简单的引用方式来进行内存传递;

3、   Java是为数不多的支持多线程开发的编程语言;

4、   Java提供了自动的垃圾收集机制,可以定期释放出无用的垃圾空间;

5、   Java语言的安全性较高;

6、   Java最大的特点是具备可移植性,即:

同一个程序在不同的操作系统上都可以运行。

         如果从编程语言的角度而言,应该分为两种:

                   · 编译型:

如果学习过C的同学应该知道,编译之后会形成出一个*.exe的文件;

                   · 解释型:

像ASP语言那样,直接将代码放到服务器上进行解释。

         但是Java本身却属于两种类型的集合,观察图形:

         通过如上的图形可以发现,任何一个*.java程序首先必须经过编译,编译之后会形成一个*.class的文件(字节码文件),而后在电脑上执行的不是*.java,而是编译之后的*.class文件(这个文件可以理解为“加密”的文件),但是解释程序的电脑并不是一台真正意义上的电脑,而是一台由软件和硬件模拟出来的电脑 —— Java虚拟机。

         Java虚拟机的最大作用是起到平台的支持上,通过如上的图形可以发现,所有要解释的程序在JVM上执行,但是由不同版本的JVM去匹配不同的操作系统,这样只要JVM的支持不变,程序可以任意的在不同的操作系统上运行。

但是这种运行方式很明显没有直接运行在操作系统上性能高,不过随着硬件技术的发展,这些问题几乎可以忽略了。

3.2、JDK的安装与配置(重点)

         如果要进行Java的程序开发,必须有JDK的支持,JDK指的是Java的开发工具,本次使用的版本是JDK1.7(不过在实际的开发之中,可能JDK1.5还是主流使用版本),可以直接登录()上进行下载。

       在进行JDK的安装之前,建议关闭本机的病毒防火墙。

         为了日后的方便维护,所以将JDK安装到:

d:

\java目录下。

         安装JDK的过程之中还提示是否安装JRE(Java运行时解释),主要的功能是解释*.class程序的,此处的安装目的是要更新本机的JRE版本,不过JDK本身是可以解释程序的。

         安装完成之后会出现以下的提示信息。

         对于Java程序开发而言,主要会使用JDK的两个命令:

javac.exe、java.exe。

路径:

D:

\Java\jdk 1.7.0 _09\bin。

但是这些命令由于不属于windows自己的命令,所以要想使用,就需要进行路径配置。

         配置步骤:

【我的电脑】 → 【属性】 → 【高级】 → 【环境变量】 → 【添加新的PATH】,不同的PATH之间使用“;”分隔,修改如下:

3.3、第一个Java程序:

永远的“HelloWorld!

”(重点)

         第一个要测试的程序永远从“HelloWorld!

”开始,Java程序的文件后缀必须是*.java。

范例:

定义一个新的文件:

Hello.java

publicclassHello{

         publicstaticvoidmain(Stringargs[]){

                   System.out.println("HelloWorld!

");

         }

}

         当一个*.java程序编写完成之后,可以按照如下的步骤执行:

                   · 编译程序,通过命令行进入到程序所在的路径,执行:

javac Hello.java,形成“Hello.class”(字节码);

                   · 解释程序,对生成的Hello.class在JVM上执行,输入:

javaHello。

         在正常的情况下,本程序已经可以执行了,但是现在发现出现了如下的错误提示:

Exceptioninthread"main"java.lang.UnsupportedClassVersionError:

Hello(Unsupportedmajor.minorversion51.0)

         直接提示“UnsupportedClassVersionError”(不支持的类版本错误),现在编译的时候使用的是JDK1.7,那么解释的时候也应该JDK1.7,那么来验证一下当前的JRE版本,输入:

java-version,信息如下:

javaversion" 1.4.2 _03"

Java(TM)2RuntimeEnvironment,StandardEdition(build 1.4.2 _03-b02)

JavaHotSpot(TM)ClientVM(build 1.4.2 _03-b02,mixedmode)

         发现现在解释程序的版本是JRE1.4,因为Oracle 10g 安装之后,本身就默认提供了JDK,而这个JDK在path中的配置如下:

D:

\oracle\product\ 10.1.0 \db_1\jre\1.4.2\bin\client;

D:

\oracle\product\ 10.1.0 \db_1\jre\1.4.2\bin;

         那么现在有两种解决方法:

                   · 方法一:

删除掉Oracle的所有JRE配置,太残忍了;

                  · 方法二:

由于path的内容采用的是顺序读取方式,可以将新的配置写在最前面,修改PATH:

3.4、第一个程序解释(重点)

         第一个程序编写完成之后,下面来对此程序的组成进行说明:

1、   关于类的定义:

         所有的java程序一定要被类所管理,那么定义类的格式如下:

[public]class 类名称 {}

         对于类的定义现在就有了两种形式:

                   · publicclass定义:

类名称必须和文件名称保持一致,在一个*.java之中只能有一个publicclass;

· class定义:

类名称可以和文件名称不一致,但是生成的是class定义的名称,在一个*.java程序之中可以同时存在多个class的定义,编译之后会分为不同的*.class文件;

         额外声明:

· 在讲课过程之中为了方便理解,所以在一个*.java程序之中会同时存在publicclass和class定义的类,而在日后的自己编写的代码过程之中,一个*.java文件之中基本上都只包含一个publicclass,不会有其他class单独定义;

· 所有类名称必须有自己的命名规范,每一个单词的开头首字母大写,例如:

TestDemo;

2、   主方法

         主方法表示的是一个程序起点,要放在一个类之中,主方法定义格式如下:

publicstaticvoidmain(Stringargs[]){}

         这些字母的组成是完全固定的,今天先记住,以后进行完整的讲解。

         额外声明:

日后主方法所在的类都将其称为主类,一般主类都使用publicclass声明。

         今天的所有程序都在主类之中编写,而至于类是什么,以后再介绍。

3、   系统输出

         可以直接在屏幕上显示输出信息,操作语法:

输出后加换行:

System.out.println(输出内容);

输出后不加换行:

System.out.print(输出内容);

         这个基本的格式是Java程序运行的基本结构,一定要记下来。

3.5、classpath(重点)

         如果说现在要想执行某一个java程序,那么一定要进入到程序所在的路径下才可以执行,例如:

现在程序的路径是在d:

\testjava文件夹之中,如果要想执行这个文件夹之中的所有的*.class文件,则需要进入到此目录下执行,那么如果现在希望在不同的目录下也可以执行呢?

那么会直接提示用户,找不到这个类。

那么现在非要执行的话,则必须配置CLASSPATH,配置语法如下:

SETCLASSPATH=*.class文件所在的路径

范例:

将CLASSPATH配置到d:

\testjava目录之中

SETCLASSPATH=d:

\testjava

         此时,再次执行“javaHello”命令,发现程序可以正常的执行完毕。

而通过这个演示也可以得出一个结论:

当使用java命令执行一个类的时候,会首先通过CLASSPATH找到指定的路径,而后在此路径下加载所需要的*.class文件。

         但是,如果像本程序这样,到处乱指CLASSPATH也是不可能的,最好的做法还是从当前所在的路径下加载所需要的*.class文件比较合适,那么这个时候往往将CLASSPATH设置为“.”。

SETCLASSPATH=.

         这个“.”也属于默认的配置,之所以要强调“.”的问题主要原因是在于,日后可能有一些其他的程序自动的修改本机的CLASSPATH,那么这个时候只能依靠手工配置,不过以上的配置方式都只是针对于一个命令行完成的,如果要针对于所有的命令行方式完成,则就需要增加一个新的环境属性。

配置步骤:

【我的电脑】 → 【属性】 → 【高级】 → 【环境变量】 → 【新建】 → 【输入属性的名称和内容】

面试题:

请解释PATH和CLASSPATH的区别?

         · PATH:

是操作系统的环境属性,指的是可以执行命令的程序路径;

         · CLASSPATH:

是所有*.class文件的执行路径,java命令执行的时候将利用此路径加载所需要的*.class文件。

3.6、标识符和关键字(重点)

         在程序之中用于定义名称的都表示标识符,例如:

类的名称、方法名称或变量名称等等,在java之中的标识符的定义格式:

由字母、数字、_、$所组成,其中不能以数字开头,不能是Java中的保留字。

         但是在这里面需要提示的是,所有的标识符之中用户不要去使用“$”定义,而且标识符一定要有自身的意义,不要随意起名称,一般都建议使用英文字母组成,例如:

studetName,但是在定义变量(标识符)或方法的时候也有一个明确的要求:

第一个单词的首字母小写,之后每个单词的首字母大写,例如:

studentName。

而在定义类名称的时候(标识符),每一个单词的首字母大写,例如:

TestDemo。

         关键字也被称为保留字,指的是一些有特殊含义的内容,在定义标识符的时候不能够去使用,而Java之中的保留字定义如下:

 

         一共有49个关键字,但是严格来讲,这些关键有如下几个说明:

                   · 未使用到的关键字:

goto(无条件跳转)、const(定义常量);

                   · 有特殊含义的标记(严格来讲不算关键字):

true、false、null;

                   · JDK1.4之后引入的新关键字:

assert;

                   · JDK1.5之后引入的新关键字:

enum。

3.7、数据类型(重点)

         任何一门语言都是由若干种不同的数据类型所组成,在java之中数据类型一共分为两类:

                   · 基本数据类型(数值操作):

                                     默认值

                            |- 数值型:

                                     |- 整型:

byte、short、int、long;        →     0

                                     |- 浮点型:

float、double;                    →     0.0

                            |- 字符型:

char;                                            →     '\u0000'

                            |- 布尔型:

boolean;                                      →     false

                   · 引用数据类型(内存操作):

                            |- 数组、类、接口;                                       →     null

         今天主要讲解基本类型的数据,而且每种基本数据类型也都有其自己的保存数据范围,这些范围如下。

                   · byte的数据长度是8位,-128~127;

                   · int数据的长度为32位,-2147483648~2147483647;

                   · double可以保存的数据范围是最大的。

         但是对于以上给出的基本数据类型的定义,如果从实际的开发角度上,以下的几种类型最为常用:

                   · int型:

只要是看见了整型的定义,其类型都是int;

                   · double型:

只要是看见了小数的定义,其类型都是double;

                   · byte型:

日后进行数据传输的时候使用此类型,讲解到IO,和编码转换的操作上使用;

                   · boolean:

用于程序的逻辑操作使用;

                   · long:

表示日期时间、表示文件长度的时候。

3.7.1 、整型

         整型就表示一个基本的整数,可以直接使用int定义,而且在java之中默认的一个整数,其类型就是int。

publicclassHello{

         publicstaticvoidmain(Stringargs[]){

                   intx=10; //10是一个整数,就属于int型

                   intresult=x*2;//int型 *int型 =int型

                   System.out.println(result);

         }

}

         但是,对于以上的操作代码,下面有两点说明:

                   · 说明一:

请保持良好的编程习惯,在每一个操作之中都加上一个“ ”。

                   · 说明二:

所有的变量在使用之前一定要为其赋予默认值。

范例:

错误的操作

publicclassHello{

         publicstaticvoidmain(Stringargs[]){

                   intx;          // 按照道理来讲,x是int型,没有赋值,结果应该是0

                   System.out.println(x);

         }

}

         因为x变量只定义了而未被初始化,修改程序:

publicclassHello{

         publicstaticvoidmain(Stringargs[]){

                   intx;          // 按照道理来讲,x是int型,没有赋值,结果应该是0

                   x=10;      // 在使用之前为x变量赋值

                   System.out.println(x);

         }

}

         但是这种代码的成功编译只能针对于JDK1.5之上的版本完成,而在JDK1.4之前,以上的代码是错误的,是不能使用的,所以为了防止这种版本的差异,明确给出要求:

所有的变量一定要在其定义的时候直接赋值。

publicclassHello{

         publicstaticvoidmain(Stringargs[]){

                   intx=10;          // 定义变量给出默认值

                   System.out.println(x);

         }

}

         int型数据本身也是有自己的保存范围的,那么如果说现在操作的数据已经超过了其int的范围呢?

         为了方便验证,下面给出两个操作,这两个操作日后讲解,可以通过它得出int的最大值和最小值:

                   · 取得int的最大值:

Integer.MAX_VALUE;

                   · 取得int的最小值:

Integer.MIN_VALUE。

范例:

极限操作

publicclassHello{

         publicstaticvoidmain(Stringargs[]){

                   intmax=Integer.MAX_VALUE;  // 最大值

                   intmin=Integer.MIN_VALUE;    // 最小值

                   System.out.println(max)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2