JAVA笔记第一章基础部分李兴华网易云课堂

上传人:m**** 文档编号:53414245 上传时间:2022-02-10 格式:DOC 页数:25 大小:526.50KB
返回 下载 相关 举报
JAVA笔记第一章基础部分李兴华网易云课堂_第1页
第1页 / 共25页
JAVA笔记第一章基础部分李兴华网易云课堂_第2页
第2页 / 共25页
JAVA笔记第一章基础部分李兴华网易云课堂_第3页
第3页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1、j ava 简介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 经历了世界的互联网低潮,低潮之后就一直没有重新站起来, 在2021年的时候终于被 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 :提供了一些根底版本的支持;J2EE2005年之后更名为Java EE:提供了企业平台搭建,现在使用最广泛的架构; J2ME2005年之后更名为Java ME:提供了嵌入式开发的支持,但是却出生在了一 个不好的时代,Nokia横行的时代,但是 J2ME在哪个时候只能够作为游戏的出现。后来被 Android 所取代了。Java主要的特点:Java语言足够简单、Java是一门面向对象的编程语言、Java提供了垃圾的自动收集机制、Java提供了多线程与反射操作机制、Java具备很强的可移植性。JavahiUL * Java Virtual Machine)处合计算机上由義件戍换件極拟的i十讦机 理经编洋过的V台无关的字W fPSclass A fT Java Vm r :!ii I Java i: MKl.?J lx lass Afl Javafjg拟札(JVM)辻 I、i 址ut istetF爭舍怕 JavaWM器Vi贞将J自v日跟拟机的代/对定的丫台I:运彳jSourcfl.javsSiQLiirGv.laia由于所有的程序不是直接与具体的操作系统捆绑在一起,那么都是经过JVM处理后执行的, 所以只要JVM支持的功能不改变,那么程序可以在不同的平台间进展任意的移植。但是由 于程序没有操作系统直接接触, 所以会导致性能下降,最早也是容易被竞争对手诟病的问题, 但是随着硬件技术的开展,这些问题都解决了。2、JDK安装如果要进展Java程序的开发,那么需要下载 JDK,本次使用的是JDK 1.7版本。但是 在进展JDK的安装之前请保证本机的病毒防火墙关闭。安装过程之中会询问用户是否要安装 JRE在现在的操作系统里面都支持了 JRE但是 支持的并不是最新的,所以本次是选择安装新的JRE所谓的JRE指的是JAVA运行时环境,即:如果只有JRE那么表示只能够运行 Java程序,但是却不能够进展开发。安装完成之后可以发现所有 JDK的可执行程序路径:D:Javajdk170_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命令会出 现如下的错误提示信息:错误:找不到或无法加载主类HelloError: NotFoundClassError : Hello那么现在就希望即使所在的路径在e盘上,也可以加载到d:testjava目录下的Hello.class文件,那么可以通过设置CLASSPAT完成。范例:设置CLASSPATHSET CLASSPATH=d:testjava设置完成之后,那么再次执行“java Hello 命令。那么发现可以找到Hello.class文件,所以可以得出一个结论:每当使用java命令解释一个类的时候,会自动的通过CLASSPATH所设置的路径加载所需要的类。但是如果在实际的工作之中这样到处乱设置CLASSPATH并不方便,最好的做法是从当前所在的路径下去加载所需要的类文件。那么往往会将CLASSPAT嚴置为“.,表示从当前所在路径加载。范例:设置从当前所在路径加载类SET CLASSPATH=.默认情况下所有的 CLASSPATHS是通过当前所在路径进展加载的,但是在一些软件配置的时候,有可能会自动的帮你去修改CLASSPAT路径,那么此时就必须手工设置, 但是上面的手工设置只适合于当前的命令行方式。如果要想针对于所有的命令行窗口,那么可以建立一个新的环境属性。面试题:请解释 PATH和CLASSPAT的区别? PATH是操作系统的程序配置路径,通过此路径配置可执行程序; CLASSPATH是Java程序解释时所使用的路径,用户执行 java命令的时候会自动的根据CLASSPATH所设置的路径进展类的加载,一般都将其设置为“.表示从当前所在路径进展类加载。3.3 标识符与关键字、注释重点在定义类、变量名称、方法名称的时候对于命名是有组成要求的,在Java里面任何的一个标识符可以由字母、数字、 _、$符号所组成,其中不能以数字开头,不能是 Java的关 键字保存字,像Hello、JavaDemo,都属于合法的标识符。但是在定义标识符的时候个人原那么:建议都以字母开头,由字母和数字组成,少用“_坚决不用“ $boole;uibieflkkfcC Eric IIduclufCOlHllMUdefaultdodoubkketjfleiklsfinlltinglyllcntfwifinpleikeiiisIILsIriUiceoiHITLlkEertLIL EMWiihllpi nal*! - 1irriftcdlubhntnruAntyyixhianpcrfinslrtuoupUmisiturmevoidvol af liewhiteutUM在以上所给出的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魏堀类型大小位可袅示的1long 长赘数64-922M720368 M7 750 - 9223J_?2038M7580732shod用矩龜数)16tnte 愷)8-128 5clifu. 字苻0-2556flOEtf 单精度32-5 IEK* 10話)5 IE3R( 3 J 10能)donbk度)4 E30S(-1 M砸1 TE3A8 (L 1O308)通过以上的数据的保存大小可以发现,按照由小到大的保存顺序: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 * tfc i ttWIfTAkiDJ由左*有1:世*1址鼻胃由左里疳Lti its堆尊円和turttifijtft由左呈右II审址占审丘童石1111111fbr -tn這鼻苦任何的时候聪明点的人都不背,都依靠“()修改操作的优先级。但是在这里需要强调三类运算符:三目、逻辑、位。、三目运算符三目是一种逻辑的赋值运算。其根本操作格式:数据类型 变量=布尔表达式?值1 :值2 ;如果布尔表达式成立,将值1的数据赋予变量,否那么将值2的数据赋予变量。public class TestDemo public static void main(String args) int numA = 10 ;int numB = 20 ;int result = numA numB ? numA : numB ;System.out.pri ntl n( result) ;/ 20public class TestDemo public static void main(String args) int numA = 10 ;int numB = 20 ;int result = 0 ;if (numA nu mB) result = numA ; else result = numB ;System.out.pri ntl n( result) ;/ 20/ 三目也可以利用判断语句实现,不过代码较长。、逻辑运算 逻辑运算主要有与、或、非三种,其中非的实现主要依靠“ !完成。但是最为麻烦的 是与和或两个运算,因为各自都有两组实现。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 zeroat 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 zeroat 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。结论:在任何情况下编写逻辑判断的时候都使用“& 、。、位操作了解位运算的初步就是需要实现十进制和二进制数据之间的转换操作,转换原那么:数字除2取余,最后按照倒序排列。十进制:11 T 00000 00000二进制数据,int 是 32 位 -251f-221f-210f-201f在Java里面提供的位运算:&、|、取反、A异或、。移位操作要注意的问题是高低位是补 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型,但是对byte, char, short 进展操作时会先把它们变成一个int型,最后得到一个int型的结果,对long型操作时得到一个long型结果,不可以对boolean型进展操作。5移位操作符可以和=合并起来,即=和 =。例如a = 2; 表示将a右移两位后的值重新赋给a。当时在使用这三个操作符对byte, char, short型数据进展操作时要注意,例如有一下代码 片段:public class ShiftTestpublic staticvoid main(String args)byte a;byte b;byte c;a =127;b=127;c=127;a= 2;=2);System.out.println(a);System.out.println(bSystem.out.println(c 2);运行结果是:-4 -4 508这说明了在操作a = 2执行过程是这样的:先将byte型的数127变成int型,左移2位得到508,然后把508赋给byte型变量a时只是简单地”折断(truncate) 得到数-4。编译时编译器不会提示你可能损失,但是如果你把 a = 2 改成 a = a 右移操作 xy左移操作 Xy范例:实现“ & 操作public class TestDemo public static void main(String args) int numA = 17 ;int numB = 11 ;System.out.println(numA & numB) ;17 的二进制: 00000 00000 ;11 的二进制: 00000 00000 ;& 操作:00000 00000; e 十进制:1范例:实现“ | 操作public class TestDemo public static void main(String args) int numA = 17 ;int numB = 11 ;System.out.println(numA | numB) ;17的二进制:00000 00000;11 的二进制:00000 00000;|操作:00000 00000;e 十进制: 27面试题: 请用最快的方式计算 2的 3次方最笨拙的方法是: 2 * 2* 2 = 8 ;采用移位: 2 2;public class TestDemo public static void main(String args) int num = 2 ;System.out.println(num 0) System.out.println(条件满足!);范例:分支语句使用public class TestDemo public static void main(String args) int age = 19 ;if(age = 0 & age = 20 & age = 100) (”恭喜你可以继续吃地沟油了。); else (”恭喜你快追随金波而去了。);if语句在工作之中一定是被广泛使用的,因为它可以接收一些判断条件在。但是在判 断语句之中还存在有一种开关语句,而且开关语句在JDK 1.7之后又发生了一些变化。switch(变量|常量)case 值:满足时执行;break;case 值:满足时执行;break;default :默认执行;break但是在switch之中最早只能够使用int或char型数据,随着版本的更新,从JDK 1.5之后支持了 enum类型,而在JDK 1.7之后支持了字符串数据。范例:观察switch语句的执行public class TestDemo public static void main(String args) int ch = 0 ;switch(ch) case 1 :System.out.println(内容是 1);break ;case 0 :System.out.println(内容是 0);break ;case 2 :System.out.println(内容是 2);break ;default :System.out.println(没有条件满足); break ;在switch之中如果每一个 case之后没有break语句,那么就会在第一个满足的case之后的所有语句都执行,一直到break或者是执行完毕。范例:从JDK 1.7开场支持了字符串的直接判断public class TestDemo public static void main(String args) Stri ng ch = HELLO;switch(ch) case HELLO:(” 内容是 HELLO); break ;case WORLD:System.out.println(内容是 WORLD); break ;case HAHA:(” 内容是 HAHA); break ;default :System.out.println(没有条件满足); break ;一定要记住switch语句是不支持条件判断的,它只能够判断数据是否一样。循环语句:循环操作指的是某段代码被重复执行的操作,对于循环主要有两类:while、for。while循环:do while 循环:/循环初始化条件/循环初始化条件while(循环完毕条件判断)do /执行语句/执行语句/修改循环条件或者是循环次数的统/修改循环条件或者是循环次数的统计计 while(循环完毕条件判断);while循环和do.while循环的最大区别在于:while是先判断后执行,而do.while是先执行一次后判断,即:如果有判断条件不满足,while 一次都不执行,而dowhile执行次。开发之中都使用 while,正常人都不使 dowhile。范例:使用while循环统计1 100的累加范例:使用dowhile循环统计public class TestDemo pu
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!