




免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 java简介Java是现在最为流行的编程语言之一,也是拥有众多厂商支持的编程语言之一,同时Java已经成为了一个事实上的应用层开发的标准(基于业务的开发)。其上所构建出来的框架也是最多的,发展的如此良好归结于一点:反射机制(所有框架的灵魂)。 Java语言的前身是在1991年开发出的OAK平台,最早是为一个GREEN的项目而设计的,此项目的核心意义在于利用email来控制家电产品运行,也就是最早所谓的物联网的概念。当时SUN的工程师们原本打算使用C+进行开发,后来考虑到C+复杂性,于是以C+为基础开发出了一个OAK平台技术,所以Java是使用C+编写。Java推出了Hot Java浏览器技术,并且获得了相当大的成功,所以Java最早的定位就是基于网络的。 后来Java经过了一些时间的沉淀,在1995年5月23日的时候正式推出了JDK 1.0,同时OAK被重新命名为Java,之后在1998年的时候,推出了JDK 1.2,同时将Java更名为Java 2,到了2005年十周年大会的时候,推出了JDK 1.5版本,或者称为Java SE 5.0,最新的版本是JDK 1.8,要想使用广泛,还需要至少3年。Java是由最早的SUN(斯坦伏大学网络)开发的,SUN是一家从事于硬件生产的公司,而SUN最著名的代表作就是小型机,而最成功的应用是在amazon上进行的。Amazon是一个在线商店,但是它自己也出版许多的技术图书。现在amazon比较著名的服务就是云服务,像CIA也购买了amazon云服务,搭建的是一个私有云服务。但是非常遗憾的是,SUN经历了世界的互联网低潮,低潮之后就一直没有重新站起来,在2009年的时候终于被Oracle收购了。解释:关于Oracle收购SUN 企业平台架构:操作系统 + 数据库 + 中间件 + 编程语言; 微软的产品:Windows + SQL Server + IIS + .NET、Office; Oracle的产品:UNIX + Oracle + OAS(收购BEA得到WebLogic) + PL/SQL(收购SUN取得Java)、CRM、ERP;而Java技术的发展又有了几个分支:J2SE(2005年之后更名为Java SE):提供了一些基础版本的支持;J2EE(2005年之后更名为Java EE):提供了企业平台搭建,现在使用最广泛的架构;J2ME(2005年之后更名为Java ME):提供了嵌入式开发的支持,但是却出生在了一个不好的时代,Nokia横行的时代,但是J2ME在哪个时候只能够作为游戏的出现。后来被Android所取代了。 Java主要的特点:Java语言足够简单、Java是一门面向对象的编程语言、Java提供了垃圾的自动收集机制、Java提供了多线程与反射操作机制、Java具备很强的可移植性。由于所有的程序不是直接与具体的操作系统捆绑在一起,那么都是经过JVM处理后执行的,所以只要JVM支持的功能不改变,那么程序可以在不同的平台间进行任意的移植。但是由于程序没有操作系统直接接触,所以会导致性能下降,最早也是容易被竞争对手诟病的问题,但是随着硬件技术的发展,这些问题都解决了。2、 JDK安装如果要进行Java程序的开发,那么需要下载JDK(),本次使用的是JDK 1.7版本。但是在进行JDK的安装之前请保证本机的病毒防火墙关闭。 安装过程之中会询问用户是否要安装JRE,在现在的操作系统里面都支持了JRE,但是支持的并不是最新的,所以本次是选择安装新的JRE,所谓的JRE指的是JAVA运行时环境,即:如果只有JRE,那么表示只能够运行Java程序,但是却不能够进行开发。 安装完成之后可以发现所有JDK的可执行程序路径:D:Javajdk1.7.0_09bin。但是这些命令本身并不属于windows系统,所以需要首先进行路径的配置:【我的电脑】 【属性】【高级】【环境变量】【编辑path】。 此时在path环境变量里面已经存在有一些其它配置,而且多个路径之间要使用“;”进行分割。把新的路径放在最前面,此时的效果如下。3、 基本概念3.1 第一个程序范例:定义Hello.java程序public class Hello public static void main(String args) System.out.println(Hello World .) ; 当程序编写完成之后,下面就可以采用如下的方式进行操作(基于命令行方式):/在WINDOWS命令窗口下进行操作执行。 编译程序:javac Hello.java,执行之后一个Hello.class的字节码文件,也是真正要执行的程序; 解释程序:java Hello,解释程序,在JVM上进行解释。第一个程序虽然简单,但是却包含了所有Java的核心运行过程,针对于每一步进行解释。1、 定义类的部分:public class Hello 类之中的代码; 类是在明天开始才要解释的概念,那么在Java之中所有的程序都要求以类为单元进行编写,对于类的定义有两种: public class 类名称:文件名称要与类名称保持一致,但是一般而言,在一个*.java文件里面只能够有一个public class定义; class 类名称:文件名称可以与类名称不同,但是生成的*.class名称是定义的类名称,在一个*.java文件里面可以同时使用class定义多个类,编译之后每一个类会自动生成各自的*.class文件; 在日后进行类名称定义的时候,有一个自己的命名规范:每一个单词的首字母必须大写,例如:HelloJavaDemo。2、 主方法 主方法表示的是程序的起点,任何的程序都是由主方法开始执行的,在Java中的主方法组成比较长: public static void main(String args) 编写代码,今天的代码都在此处编写; 一般主方法都习惯于将其放在使用public class定义的类之中,所以主方法所在的public class类,日后称为主类。3、 系统输出 系统输出指的是将提示信息输出到标准输出设备 显示器上,对于系统输出有两种方式:输出之后增加换行:System.out.println(内容) ;输出之后不增加换行:System.out.print(内容) ; 把以上的基本程序弄熟练了,基本上今天的Java程序的结构也就都固定了。3.2 CLASSPATH初步分析(重点)通过单词的含义就可以清楚的知道,CLASSPATH指的是类的保存路径。例如,现在在D:testjava目录下存在有一个“Hello.class”文件存在,那么此时命令行所在的路径也是“d:testjava”,所以可以直接使用“java Hello”这个类。但是如果说此时命令行的所在路径为“e:”,在e盘下并没有存在Hello.class文件。那么一旦执行了“java Hello”命令会出现如下的错误提示信息:错误: 找不到或无法加载主类 Hello Error:NotFoundClassError : Hello 那么现在就希望即使所在的路径在e盘上,也可以加载到d:testjava目录下的Hello.class文件,则可以通过设置CLASSPATH完成。范例:设置CLASSPATHSET CLASSPATH=d:testjava 设置完成之后,那么再次执行“java Hello”命令。那么发现可以找到Hello.class文件,所以可以得出一个结论:每当使用java命令解释一个类的时候,会自动的通过CLASSPATH所设置的路径加载所需要的类。 但是如果在实际的工作之中这样到处乱设置CLASSPATH并不方便,最好的做法是从当前所在的路径下去加载所需要的类文件。那么往往会将CLASSPATH设置为“.”,表示从当前所在路径加载。范例:设置从当前所在路径加载类SET CLASSPATH=. 默认情况下所有的CLASSPATH都是通过当前所在路径进行加载的,但是在一些软件配置的时候,有可能会自动的帮你去修改CLASSPATH路径,那么此时就必须手工设置,但是上面的手工设置只适合于当前的命令行方式。如果要想针对于所有的命令行窗口,则可以建立一个新的环境属性。面试题:请解释PATH和CLASSPATH的区别? PATH:是操作系统的程序配置路径,通过此路径配置可执行程序; CLASSPATH:是Java程序解释时所使用的路径,用户执行java命令的时候会自动的根据CLASSPATH所设置的路径进行类的加载,一般都将其设置为“.”表示从当前所在路径进行类加载。3.3 标识符与关键字、注释(重点)在定义类、变量名称、方法名称的时候对于命名是有组成要求的,在Java里面任何的一个标识符可以由字母、数字、_、$ 符号所组成,其中不能以数字开头,不能是Java的关键字(保留字),像Hello、JavaDemo,都属于合法的标识符。但是在定义标识符的时候个人原则:建议都以字母开头,由字母和数字组成,少用“_”,坚决不用“$”。在以上所给出的49个关键字之中,有两个关键字只是介绍不讲解:native、volatile。 在给出的关键字之中,有三个严格来讲不属于关键字,只属于特殊含义的单词,例如:null、true、false; Java里面有两个不使用的关键字:goto、const 在JDK 1.4之后增加了一个assert关键字,将在异常处理中使用; 在JDK 1.5之后增加了一个enum关键字。 除此之外任何的语言都会存在有注释的概念,所谓的注释指的是程序在编译的时候不会编译的程序部分,在Java里面有三类注释: 单行注释:/ 注释; 多行注释:/* */; 文档注释:/* */ 此类注释最后再使用。3.4 Java数据类型划分(重点)程序的数据类型指的是允许操作的数据形式,例如数据库之中可以操作字符串、数字、日期时间,那么程序也是一样的。在Java之中数据类型一共分为两大类: 基本数据类型(只包含具体的数据,不牵扯到内存的关联):数值型:整型:byte、short、int、long; 默认值:0实型(浮点型):float、double; 默认值:0.0字符型:char; 默认值:u0000布尔型:boolean;默认值:false 引用数据类型(指的内存的关联数据,类似于指针的概念):类、数组、接口。 默认值:null通过以上的数据的保存大小可以发现,按照由小到大的保存顺序:byte short int long float = 48 & c = 0 & c = 9) System.out.println(是一个数字!) ; 而且由于UNICODE编码的存在,所以Java中的char数据类型是可以保存中文的。public class TestDemo public static void main(String args) char c = 刁 ; / 字符变量 int num = c ; System.out.println(num) ; 但是如果要想保存中文,必须是在中文的语言环境下。3.4.4 布尔型数据(boolean) 布尔是一个数学家的名字,对于boolean数据类型只有两种选择:true、false。一般而言,布尔数据类型往往都作为一些程序的控制逻辑使用。范例:程序逻辑public class TestDemo public static void main(String args) boolean flag = 1 numB ? numA : numB ; System.out.println(result) ; / 20 public class TestDemo public static void main(String args) int numA = 10 ; int numB = 20 ; int result = 0 ; if (numA numB) result = numA ; else result = numB ; System.out.println(result) ; / 20 / 三目也可以利用判断语句实现,不过代码较长。3.5.2、逻辑运算 逻辑运算主要有与、或、非三种,其中非的实现主要依靠“!”完成。但是最为麻烦的是与和或两个运算,因为各自都有两组实现。1、 与操作:(&、&)范例:观察“&”问题public class TestDemo public static void main(String args) if (1 = 2 & 10 / 0 = 0) System.out.println(条件满足!) ; Exception in thread main java.lang.ArithmeticException: / by zero at TestDemo.main(TestDemo.java:3) 此时出现了程序的错误,那么就表示两个判断条件实际上都执行了,但是来分析一下与操作的特点,与操作必须保证所有的判断条件都为true,最终才是true,那么按照之前的判断来讲,前面已经有条件返回了false,那么后面不管有多少个true,结果一定是false,那么就没有必要继续向后判断了,则可以使用短路与“&”。范例:使用“&”public class TestDemo public static void main(String args) if (1 = 2 & 10 / 0 = 0) System.out.println(条件满足!) ; 此时后面的条件没有继续判断,属于短路操作。2、 或操作:(|、|)范例:观察普通或“|”使用public class TestDemo public static void main(String args) if (1 = 1 | 10 / 0 = 0) System.out.println(条件满足!) ; Exception in thread main java.lang.ArithmeticException: / by zero at TestDemo.main(TestDemo.java:3) 由于或操作是若干个条件有一个返回true,结果就是true,而在以上的程序之中,发现前面有条件返回了true,但是后面的判断依然执行了,这就是因为普通或会将所有的条件都判断执行,而现在使用短路或。范例:使用短路或(|)public class TestDemo public static void main(String args) if (1 = 1 | 10 / 0 = 0) System.out.println(条件满足!) ; 此时前面的条件返回了true,而不管后面会返回多少个false,最终的结果也一定是true。结论:在任何情况下编写逻辑判断的时候都使用“&”、“|”。3.5.3、位操作(了解)位运算的初步就是需要实现十进制和二进制数据之间的转换操作,转换原则:数字除2取余,最后按照倒序排列。十进制: 11 00000000 00000000 00000000 00001011(二进制数据,int 是32位) 2 5 1 2 2 1 2 1 0 2 0 1 在Java里面提供的位运算:&、|、(取反)、(异或)、。移位操作要注意的问题是高(低)位是补0还是补1和对char, byte, short型的操作:(1) : (signed right-shift), 右移过程使用符号位扩展(sign extension),即如果符号为为1则高位补1, 是0则补0,也就是逻辑右移(3) : (unsigned right-shit),右移过程使用零扩展(zero extension),即最高位一律补0,也就是算术右移(4)移位操作的数据类型可以是byte, char, short, int, long型,但是对b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省三河市2025年上半年公开招聘辅警试题含答案分析
- 河北省清苑县2025年上半年公开招聘城市协管员试题含答案分析
- 河北省南和县2025年上半年公开招聘城市协管员试题含答案分析
- 河北省滦南县2025年上半年公开招聘村务工作者试题含答案分析
- 2025电子商务合同模板定制与审核合同
- 2025房地产认筹参与资格认定标准及服务协议
- 2025版外国投资者投资担保服务合同
- 2025年十一十二章公共服务项目行政合同范本
- 2025版文化艺术产品定向采购合同下载
- 2025版牲畜养殖项目承包与养殖技术研发合同
- 《综合交通运输概论(第5版)》全套教学课件
- 2025年呼伦贝尔农垦集团有限公司招聘笔试参考题库含答案解析
- 【课件】物质的变化和性质-2024-2025学年九年级化学人教版(2024)上册
- JG/T 270-2010工业构筑物水泥基耐磨材料
- 护士转行病案管理制度
- 网络协议分析实践试题及答案
- 数学-“问题解决策略:转化”教案 2024-2025学年北师大版七年级数学下册
- 征收房屋转让协议书
- 上海世博轴及地下综合体工程施工组织设计
- 液化天然气码头设计规范JTS 165-5-2021
- TFSI 098-2022 《氨基硅油》发布稿
评论
0/150
提交评论