Java语言基础主要内容Java程序结构Java语法规则基本数据类型类数组字符串流程控制语句2程序结构packageimport---class类名1{属性定义方法名1(){-----}方法名2(){-----}}class类名2{-------}Java语言的源代码由一个或多个编译单元(compilationunit)组成,每个编译单元只能包含下列内容:(1)一个程序包语句(packagestatement)(2)导入语句(importstatements)(3)类的声明(classdeclarations)(4)接口声明(interfacedeclarations)程序结构每个Java语言的编译单元可包含多个类或接口,但是每个编译单元最多只能有一个类或接口是公共的。每个编译单元就是一个以.java为后缀的Java语言源程序文件。一个程序可包括若干个类,各类之间存在并列、继承和包含关系。这些类通常是在一起协同工作的:每一个类都可能需要创建其他类的对象,并调用类或对象的属性及方法。编程只能在方法中进行。编译后每个类产生一个.class文件。包是每个Java系统用来组织类的组织,功能作用和来源相关的类通常放在同一个包中。java的名字空间和包作为一种在整个Internet上动态装载模块的语言,Java特别注意避免名字空间的冲突。全局变量不再是语言的组成部分(没有全局的属性与方法)。所有的方法和属性都在类中定义,是类的组成部分。每个类又是包的组成部分。全限定名:包名.类名.方法名import打开一个包后,可直接指定该包中的类名。在本类中,可以直接使用方法名及属性名。包的概述包是用途相近但功能不同的一些类和接口的松散集合。类库由若干包组成。java.langJava语言核心类库,包含了运行Java程序必不可少的系统类(如基本数据类型,基本数学函数,字符串处理、线程、异常处理类等),每个Java程序运行时,系统会自动引入该包。java.awtJava语言用来构建图形用户界面的类库,包括许多界面元素和资源,在三个方面提供界面设计支持:低级绘图操作(如Graphics类);图形界面组件和布局管理(如Checkbox类,Container类,LayoutManager接口等),以及界面用户交互控制和事件响应(如Event类),利用该包可很方便设计出精美图形界面。包的概述java.applet用来实现运行于Internet浏览器中的JavaApplet的工具类库,它仅包含一个非常有用的类java.applet.Applet。(创建Applet小程序)java.ioJava语言的标准输入/输出类库,包含了实现Java程序与操作系统、用户界面以及其他Java程序做数据交换所使用的类。(输入输出)java.netJava语言用来实现网络功能的类库,利用java.net包中的类,开发者可以编写自己的具有网络功能的程序。java.util实用程序类,包括了Java语言中的一些低级的实用工具(如随机数、日期、系统属性…)Java类库是系统提供的已实现的标准类的集合,是Java的API,帮助开发者方便快捷地开发Java程序。语句规则语句种类说明语句如属性说明、变量说明等表达式语句控制语句(条件、循环、跳转)异常处理语句块语句(代码块,一组语句用花括号括起来)注释(被Java编译器忽略)//---注释一行/*---*/一行或多行注释/**---*/文档注释语句规则Java语言标示符在Java语言中定义的变量、方法、类和对象的名称都是标示符。Java语言标示符必须以大写字母“A”到“Z”和小写字母“a”到“z”或“_”、“$”开头,后面可以跟包含字母和数字0~9的字符。有效的标示符myname$bill_100无效的标示符486_cpu@email基本语句用标示符“;”结束当在Java语言中需要使用变量、方法、类和对象等标示符时,都要在使用前进行声明。Java语言中有60个关键字。数据类型与说明语句Java程序中所处理的数据是将各种数据类型实例化后的数据。数据类型实例化的方法:说明语句实例化数据的两种形式:变量与常量数据类型数据类型关键字占用比特数缺省数值布尔型boolean8false字节型byte80字符型char16‘\u0000’短整型short160整型int320长整型long640浮点型float320.0F双精度型double640.0D常量定义常量的语法格式:finaltypeconstantName=constantValue;关键字类型常量名常量值布尔常量truefalse整型常量一般常量:32bit长整型常量:64bit(88L)十进制数:非0开头的正负整数105,-23八进制数:0开头的正负整数017(15),-023(-19)十六进制:0x开头的正负整数0x2F(47),-0xa8(-168)常量浮点常量一般浮点常量(32bit)3.14F6.18E3F双精度浮点数(64bit)7.56D6.02E23(D可省)char型常量:用单引号界定‘’,‘a’采用Unicode码,从‘\u0000’~‘\uFFFF’,其中‘\u00’~‘\uFF’为ASCII码字符串常量:用双引号界定“HELLO,WORLD”+号的特殊用法“Hello”+“World”即“HelloWorld”若a=4,则“a=”+a即“a=4”常量特殊字符引用方法对应Unicode码意义‘\b’‘\u0008’退格‘\t’‘\u0009’横向跳格、水平制表符tab‘\n’‘\u000a’换行‘\r’‘\u000d’回车‘\”’‘\u0022’双引号‘\’’‘\u0027’单引号‘\\’‘\u005c’反斜线变量变量声明:先声明,后使用声明变量的格式:typevariableName1,variableName2,···;typevariableName1[=initValue],variableName2[=initValue],···;类型变量名[变量初始值]如:doublea,b,c;intnSecond=10;基本数据类型Java标识符字母、数字、_、$组成,但以字母、_、$开头区分大小写数据类型与说明语句基本数据类型说明语句:booleanb=true;shortsi=128;inti,j,k=-99;longl=123456789;charch='J';charchc='中';floatf=3.1415926;doubled=-1.04E-5;Java几乎是将字符串视为基本数据类型Strings=“你好!”;数据类型转换同种数据类型转换:短类型长类型:默认长类型短类型:强制不同数据类型转换——字符/数值:强制例:inta;longb;charc;b=a;a=(int)b;c=(char)a;a=(int)c布尔型与其他数据类型之间不能强制类型转换byteshortintlongfloatdouble数据类型转换importjava.io.*;publicclassa{publicstaticvoidmain(Stringargs[]){inti=65;charc=‘a’,cc=‘刘’;System.out.println(i);65System.out.println((char)i);ASystem.out.println(c);aSystem.out.println((int)c);97System.out.println(cc);刘System.out.println((int)cc);21016System.out.println((char)29579);王}}Java运算符一般运算是把运算对象作为一个整体处理,而位运算是把整型数运算对象拆开,以位(bit)作为运算对象Java运算符合并运算符二元运算符@=,a@=b即a=a@b运算符的优先级括号最优先注释//行注释/**/块注释/***/文档注释+号:可连接字符串“He”+“llo”为“Hello”运算符例—移位移位带符号右移:左侧空出位全用符号位填充不带符号右移:左侧空出位用0填充左移:符号位被挤掉x二进制补码表示x2x2x23000011110011110000000011100000111-17111011111011110011111011001110111281128/21=642564256/24=16-2564-256/24=-161281128*21=25616216*22=64运算符例自运算符++、--j++、j--、++j、--j运算符的位置决定了自运算的顺序(在操作数变量之前或在操作数变量之后)a=3b=5c=(a++)*ba=4c=15a=3b=5c=(++a)*ba=4c=20三目条件运算符(?:)D=表达式A?表达式B:表达式CA为真,返回表达式BA为假,返回表达式C总是返回B,C中的长类型例:intx=5,y=8;longz=2;longk=x3?y:z;//k=8语句在java语言中语句以“;”为终结符。一条语句构成了一个执行单元。Java中有3类语句。1、表达式语句赋值表达式语句:a=896.7;增量表达式语句:a++;方法调用语句:System.out.println(a);对象创建语句:Integerintegerobject=newInteger(4);2、声明语句用于声明变量或方法:doublea=896.7;语句3、程序流控制语句程序流控制语句控制程序中语句的执行顺序,例如for循环和if语句都是程序流控制语句。If(mn){//if语句块System.out.println(“themaxnumberofmandnis”+m);}Else{System.out.println(“themaxnumberofmandnis”+n);}Wrapper类(java的包装类)Integer属性staticintMAX_VALUE返回int型数据的最大值staticintMIN_VALUE返回int型数据的最小值构造方法Integer(intvalue)Integer(Strings)方法intintValue()doubledoubleValue()StringtoString()staticStringtoString(inti)staticintparseInt(Strings)staticIntegervalueOf(Strings)类型转换—利用类/对象方法利用类方法(静态方法)staticintInteger.parseInt(“23”)staticStringInteger.toString(23)staticdoubleDouble.parseDouble(“12.3”)staticStringDouble.toString(12.3)利用对象方法Doubled;Strings;//声明d=newDouble(12.3);//创建s=d.toString();Double.valueOf(“12.3”).doubleValue();//返回引用类型—类定义类(新的数据类型)classMyDate{intday;intmonth;intyear;}基本数据类型——直接分配内存空间inti,j,k;引用类型MyDated1;d1=newMyDate();引用类型—类MyDated1=newMyDate();d1.day=28;d1.month=12;d1.year=70;引用类型—数组数组在其他语言中是相同数据类型的元素的集合;而在Java中,数组是独立的类,有自身的方法,不是变量的集合一个数组是数组类的一个对象。数组是通过new运算符来动态创建,并分配与数组下标数和维数、数组数据类型相匹配的内存空间。数组一经被分配了适当的空间,则其所有元素都初始化为默认值。Java中,数组声明允许方括号跟在数组类型声明之前和后。数组的声明intintArray[];--([]不是指长度可变)int