嘉兴Java培训

上传人:ning****hua 文档编号:243096318 上传时间:2024-09-15 格式:PPT 页数:49 大小:475KB
返回 下载 相关 举报
嘉兴Java培训_第1页
第1页 / 共49页
嘉兴Java培训_第2页
第2页 / 共49页
嘉兴Java培训_第3页
第3页 / 共49页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,IBM Software Group,*,Presentation Title,Presentation Subtitle,IBM Software Group, 200,8,IBM Corporation,JavaSE,讲解,王贺尊,Java,基础,1,、语法基础,2,、面向对象,3,、数组(,Array,),4,、基础类,5,、,I/O Stream,6,、,Collection,容器,7,、,Thread,8,、,GUI,9,、,JDBC,课程内容,Java,发展史,95,年,sun,发布,jdk1.0,98,年,jdk1.2,后续,jdk1.3,、,1.4,、,1.5,目前,jdk1.6,、,1.7,JavaSE,Java ME,Java Web,Java EE,Sp,增值,Java,语言特点,面向对象的语言,与平台无关、提供程序运行时解释环境,一种健壮的语言,吸收冷,C/C+,的优点,去掉了影响程序健壮的指针,内存的申请释放等,Java,运行机制及过程,Java,两大核心机制,Java,虚拟机(,Java virtual machine,),垃圾收集机制(,garbage collection,),*,.java,源文件,Java,编译器,(javac),*,.class,文件,类装载器,字节码校验器,Java,解释器,各种操作系统(,windows,、,Linux,、,Unix,、,other,),Java,Java,虚拟机,VM,可以理解为一个以字节码为机器指令的,CPU,对于不同的运行平台,有不同的,JVM,JVM,屏蔽了底层运行平台的差别、实现了,一次编译,处处运行,Java,核心机制:垃圾回收,不再使用的内存应回收,在,C/C+,中有程序员负责回收内存,Java,语言消除了程序员手动回收内存的责任、提供了系统级线程跟踪存储空间分配情况。,JVM,空闲时,检查并释放那些无用的内存,垃圾收集器在程序运行过程中自动执行,程序员无需控制,Java,开发环境的下载、安装、配置,下载:,安装(,windows,环境下),配置环境变量:,path&classpath&JAVA_HOME,验证:,Java version,Javac,编译源文件,Java,执行文件,编写第一个,Java,文件:,HelloWorld.java,J2SE,基础语法,标示符、关键字、数据类型,数据类型的转换(主讲四类八种),程序的格式,运算符,条件语句、循环语句:,if/for/while/dowhile()/break-continue/switch,方法,标示符,Java,对各种变量、方法、类等命名时所用到的字符序列称为标示符,凡是自己可以起名字的地方都叫标示符,都遵循标示符命名规则,Java,标示符命名规则:,标示符由字母、下划线“,_”,、美元符号“,$”,和数字组成,标示符应该以字母、下划线、美元符开始,Java,标示符字母的大小写敏感,长度无限制,约定俗成:标示符要做到见名知意,不能和,Java,的关键字重名,合法的标示符,不合法的标示符,Hello,class,NewClass,Good food,$23name,120,_2wang,Age#,关键字,Java,中一些赋予特定含义,用作专门用途的字符串称为关键字。,所有,Java,的关键字都是小写。,goto,const,abstract,if,for,extends,implements,do,boolean,while,this,private,public,protected,break,continue,else,int,class,interface,Java,的基础类型及常量,Java,的八种基础类型:,整型:,byte,、,short,、,int(,默认,),、,long,字符型:,char,浮点型:,float,、,double (,默认,),布尔型:,boolean,(一般用于程序的流程控制),Java,常量:,如整型常量,123,,浮点型常量,90.8,,字符型常量,a,,逻辑常量,true,、,false,,字符串常量”,hi”,注:,Java,采用,Unicode,编码(全球语言统一编码),每个字符占两个字节,,因此一个,Char,类型的变量可以存放一个汉字(一个汉字占两个字节),Java,数据类型划分图,数据类型,基本数据类型,引用数据类型,类:,class,接口:,interface,浮点型:,float,、,double,整型:,byte,、,short,、,int,、,long,布尔型:,boolean,字符型:,char,数值型,数组,Java,变量,Java,变量是程序中最基本的存储单元,其要素包括变量类型、变量名、作用域,Java,程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:,type varName =value,varName=value;,例如:,int i=100;float f=23.08f;double d,d2,d3=45.09;String s=“”;,本质上讲变量是内存中的一小块区域,使用变量名访问该区域,因此每一个变量在使用前要声明,然后必须进行赋值才能使用。,Int g = 100,;,栈内存,g:100,Java,中程序的执行过程,硬盘,内存,Java,程序,代码,操作系,统代码,Stack,:局部变量,Heap,:对象实例,Data segment,:静态,变量,字符串常量,Code segment,:,存放代码,1,:,load,到内存区,2,:找到,main,方法执行,3,:执行中的内存管理,Java,变量的分类,按被声明的位置划分:,局部变量:方法内部,(,包括方法的形参,),或语句块内部定义的变量,成员变量:方法的外部,类的内部定义,注:,jvm,可为成员变量默认初始化,类的外面不能定义变量,按所属的数据类型分:,基本数据类型变量:,int,、,char,等,引用数据类型变量:对象、数组,TypeTest.java,DefaultInit.java,Java,数据类型转换,类型,占用存储空间,表数范围,byte,1,个字节,-128127,short,2,个字节,-2,的,15,次方,2,的,15,次方,-1,int,4,个字节,-2,的,31,次方,2,的,31,次方,-1,long,8,个字节,-2,的,63,次方,2,的,63,次方,-1,float,4,个字节,-3.403E383.403E38,double,8,个字节,-1.798E3081.798E308,char,2,个字节,-256255,基本数据类型转换,boolean,类型不可转换为其他类型。,整型,字符型,浮点型的数据在混合运算中相互转换遵循如下原则:,容量小的类型自动转换为容量大的,数据类型按容量大小排序如下:,byte,、,short,、,char-int-long-float-double,bypt,、,short,、,char,三者之间不互相转换,三者参与运算时先转换为,int,类型,容量大的在转换为容量小的时候要加强制转换符,但可能造成精度降低或溢出,有多种数据类型参与运算时,首先转换为容量最大的类型,然后再运算,浮点型常量默认值为,double,类型,整型常量默认值为,int,类型,int i = 12;,long l = 12L;,float f = 2.09;/,错误,float f2 = 8.09f,;,double d = 44.09;,TestConvert.java,在,Java,中,变量一旦声明,就应对其进行初始化,运算符,:operator,Java,语言支持的运算符:,算术运算符:,+,,,-,,*,,/,,,%,,,+,,,-,关系运算符:,,,=,,,,,基本不用,赋值运算符:,=,扩展赋值运算符:,+=,,,-=,,*,=,,,/=,字符串连接运算符:,+,注:,+,(,-,),在前时先计算后取值,在后时先取值后计算,Test.java,逻辑运算符,逻辑运算符:,【!,逻辑非,】【&,逻辑与,】【|,逻辑或,】【,逻辑异与,】【&,短路与,】【|,短路或,】,a,b,!a,a&b,a|b,ab,a&b,a|b,true,true,false,true,true,false,true,true,true,false,false,false,true,true,false,True,false,true,true,false,true,true,false,true,false,false,true,false,false,false,false,false,public static void main(String args),boolean a = true, b = false, c;,c = a,c = a|b;System.out.println(c);,c = a,”,“,逻辑异与:相同就为,false,,不同则为,true,字符串连接符,“,+”,除用于加法运算外,还可以用于字符串的连接,int i = 55 + 21;,String s = “wang” + “hz”;,“+”,运算符两侧的操作数只要有一个字符串(,String,)类型,系统就会自动将另一个操作数转换为字符串类型,然后连接:,int i = 12;,System.out.println(“wanghz” + i);,输出结果:,wanghz12,注:,System.out.println(value);,中的,value,无论是何类型,都会先转为字符型,然后打印,Test.java,public class Test,public static void main(String args),System.out.println(“Hello everybody!”);,假设在,D,盘的,tmp,文件夹下的,js,文件夹下有一个,Test.java,的文件:,D:tmpjsTest.java,那么如何在,command,窗口找到该文件并且编译、执行它呢?看下页,PPT,首先打开,command,窗口:“开始”,“运行”,在弹出窗口中输入“,cmd”,,然后点击“确定”,弹出的,command,窗口,找到,D,:盘根目录,找到,tmp,文件夹下的,js,文件夹,通过,javac,命令编译,Test.java,文件,通过,java,命令执行,生成的,Test.class,文件,,只写,class,文件的文件名,表达式及三目条件运算符,表达式是符合一定运算规则的运算符和操作数的序列,a*b,6.09+8*a/(4+b),表达式的值和类型:,对表达式中操作数的运算结果称为表达式的值,表达式运算结果的类型即为表达式的类型,表达式的运算顺序:,按照运算符的优先级从高到低运算,优先级相同的运算符按事先约定的结合方向运行,三目条件运算符表达式的格式:,x?y:z;,其中,x,为,boolean,类型,先计算,x,的值,如果,x,的值为,true,,则整个表达式的结果值是,y,,反之为,z,。,Test.java,条件、循环控制语句,If-else,条件控制语句格式:,if(,表达式,1),else if(,表达式,2),else,For,循环控制语句格式:,for(,表达式,1;boolean,类型的表达式,2;,表达式,3),语句块,注:,continue,和,break,。,表达式,语句块,false,true,表达式,1,表达式,2,语句块,true,表达式,3,false,TestIf.java,TestFor.java,while,与,do-while,While,格式:,while(,表达式,),语句块,do-while,格式:,do,语句块,while(,表达式,);,表达式,true,语句块,false,语句块,表达式,true,false,WhileTest.java,Switch,条件控制,Switch,格式:,switch(,表达式,),case,表达式,1:,语句块,1,break;,case,表达式,2:,语句块,2,break;,default,语句块,3,break;,注:表达式必须是,int,类型的(,byte,,,short,,,char,,,int,),,break,语句穿透问题,SwitcheTest.java,方法:具有一定业务逻辑的代码片段,修饰符,1,修饰符,2,返回值类型 方法名,(,形参列表,),业务逻辑(算法),Example,:,public static String getName(String name),return name;,1,、形式参数:在方法被调用时用于接收外部输入的 参数 。,2,、实参:调用方法时,实际传给方法的值。,3,、方法在执行完毕时,返还给调用它环境的数据。,4,、返回值类型:在定义方法时,事先约定的返回类型,如果没有返回值,也必须在定义方法处给出返回类型:,void,。,Java,语言使用如下方法调用方法:,1,、对象名,.,方法名,(,实参列表,),;,注:实参的数目必须和方法声明处定义的参数类 型,个数,顺序保持一致。,注:编写方法是为了提高代码的“,复用性,”。,这也是编程追求的。,Java,中调用函数,进行参数传递时,遵循如下原则:,1,、基本类型传递的是该数据值本身。,2,、引用类型传递的是对象的引用,而不是对象本身。,注:引用类型可以理解为:类的对象,数组,字符串也是一种引用型。,Static,的方法还可以直接用类名,.,方法名调用,构造方法,类内部一种特殊的方法,创建对象时所调用的方法。,构造方法没有返回值类型,它与其他的方法在此处不同,构造方法的方法名与类名完全相同,构造方法也具有形参列表,也可以重载,每个类都至少有一个构造方法,如果我们没有显示的声明,,JVM,会在加载该类时为其添加一个,public,的无参的构造方法,面向对象,类与对象,对象在内存中的解析,约定俗成的命名规则:,驼峰命名规则,方法的重载(,overload,)与内存的解析,对象的创建与使用,关键字:,this,、,static,、以及他们与类之间的关系,package,与,import,继承与权限控制,以及重写(,override,),权限控制:,public,、,protected,、(,default,:不写)、,private,类的老祖宗:,Object,以及,toString(),方法,equals(),、,hashCode(),方法,关键字:,super,继承中的构造方法及对象的转型,多态、抽象类,多态:要有继承、父类引用指向子类对象,抽象类:,abstract class,关键字:,final,、,interface,注:普通类、抽象类、接口之间的区别;,java,的单继承、多实现。,Java,的,API,阅读,类与对象,类:具有相同属性和功能的一类事物(属性和方法的集合)。,抽象:对具有相同属性和方法的一类事物的描述过程就叫抽象,抽象的结果就是类。,对象:类的一个实例,对象是组成类的元素。,方法的重载,判断方法重载的依据:,1,、在同一个类内,2,、方法名相同,3,、参数的类型不同,或者参数的个数不 同,或者参数的排列顺序不同,4,、,方法的返回值的不同不能作为判断方法重载的依据,仅仅是返回值的不同,就造成了方法的重名,会报错,。,5,、构造方法也可以重载。,注意重载方法在内存中是如何调用的,方法的重载使,API,的描述变得更简单,更利于别人使用,对象的创建及使用,对象的创建:,new+,该类的构造方法;,如:,Test t = new Test();,方法的调用:用方法所在的类创建对象,然后用对象名(对象引用),.,方法名,如:,Test t = new Test(); t.print(“hello”);,如果被调用的方法是静态方法,即被,static,关键字修饰,还可以直接用类名,.,方法名调用。,如调用,Test,类内的静态方法,init(),方法:,Test.init();,关键字,this,、,static,This:,当前对象的一个引用,指向它自己,在类的内部使用:,public class Test,private int age;,Test(),this.age = 89;,System.out.println(“,无参构造方法”,);,Test(String name),this();,System.out.println(“,有参构造方法”,+ name);,static,:修饰成员变量,该变量表示为静态变量,该变量对于整个类保存一份在内存的,data segment,中;若修饰方法,表示该方法为静态方法,可以直接通过类名,.,静态方法名调用,在一个静态的上下文环境中不能直接调用非静态的成员变量或非静态的方法,要先创建对象再调用其方法。,This,的上下文环境是非静态的,所以,this,不能在,static,的方法中使用,类与对象,对象之间的几种基本关系:,1,、继承关系,2,、关联关系,3,、组合关系,类:将具有相同属性和功能的一类事物抽象化。,对象:就是类的实例。,Person.java,方法的定义,构造方法,解析内存中的对象,public class Person,String name;,int age;,Person(String name,int age),this.name = name;,this.age = age;,void setName(String name),this.name = name;,public static void main(String args),Person p = new Person(“Jim”,20);,System.out.println(p.name);,p.setName(“Jams”);,System.out.println(p.name);,注释:,4,执行完后,分别销毁,3,,,2,;跳出,main,方法后销毁,1,,等待,GC,回收,heap,中的无引用的对象(,Person,实例)。,Stack,内存,Person:p,Heap,内存,name,age:20,Data segment,Jim,String:name,Jams,1,2,3,4,继承,子类通过继承获得基类的所有属性(当然也包括私有的)及方法。在创建子类对象时,可以通过子类对象调用基类的方法和访问除去私有的一切成员变量。,继承提高了代码的复用性。,子类可以扩展基类的方法及属性。,子类对象的创建伴随着父类对象的创建,注意构造方法的定义,Super,的使用,重写(,override,),重写发生在继承关系的子类中;,方法名不变,,返回值类型不变,,参数类型不变,访问级别不低于父类,对父类的方法进行重新的实现的过程叫重写;,注意:只要在子类中显示的写出了父类的方法,即使方法体不做任何实现,也发生重写。即子类对象调用该方法时,调用的实际是子类的方法。,注意重载,重写的伴随状态及关键字,super,的使用,访问权限控制,所有类中,同包及子类中,同包中,类的内部,public,可以,可以,可以,可以,protected,不可以,可以,可以,可以,default,(不写),不可以,可以(不同包中的子类不可以),可以,可以,private,不可以,不可以,不可以,可以,关键字,abstract,abstract,修饰类,表示该类为抽象类,抽象类不能够实例化,抽象类中可以有抽象方法;,abstract,修饰方法,该方法为抽象方法,抽象方法既是没有方法体的方法,只有方法的声明。,如果类被声明为,abstract,的,且抽象类中有抽象的方法,则继承它的子类必须实现抽象的方法或者子类也声明为抽象类。,关键字,interface,interface,定义接口,接口不能够实例化;,接口中的方法只有方法的声明,没有方法体;,接口中的方法的访问级别都是,public,的,即使没有显示的将方法的访问修饰符写为,public,,即不写访问修饰符,默认为,public,的,写,private,、,protected,都错。,interface,中定义的变量,在编译时会为其加上,static final,,即,interface,中的变量都是静态的常量,且访问级别都是,public,的。,interface,中的方法都是,public,的,即使不显示的写出方法的访问修饰符,在编译时也会为其加上,public,,所以在,interface,中声明方法时不能加访问级别比,public,低的访问修饰符。,关键字,final,final,修饰类,表示该类是不能被继承的;,final,修饰成员变量,表示该变量为常量,值不可以被修改,变量名一般采用大写字母,字母之间通过下划线连接;,final,修饰方法,表示该方法不能被重写,但是可以使用;,Java,数组,一维数组,int i = new int3;,i0 = 1; i1 = 2; i2 = 3;,int i = new int1,2,3;,int i = 1,2,3,4;,二维数组:数组的数组,int i = new int;/,错误,int i = new int2;,int i = new int;,int i = 1,2,3,4,5;,stack,heap,Int:i,i0=1,i1=2,i2=3,stack,heap,Int:i,i0,i1,i00=1,i01=2,i10=3,i11=4,i12=5,常用类以及包装类,String,类与,StringBuffer,类的区别,基础数据类型包装类,java.lang,包下的一些类的解读,比如,Math,类,,System,类,Java API,查阅,容器类及泛型,容器接口,List,接口:,ArrayList,Set,接口:,HashSet,Map,接口,:HashMap,迭代器,Iterator,接口,Java API,查阅,Java IO,inputStream,接口:读,outputStream,接口:写,Java API,查阅,线程:,Thread,public class PrimeThread extends Thread ,PrimeThread() ,public void run() ,/,要做的任务,PrimeThread p = new PrimeThread();,p.Start();,public class PrimeThread implements Runnable ,PrimeThread() ,public void run() ,/,要做的任务,PrimeThread p = new PrimeThread();,Thread t = new Thread(p);,t.Start();,方法一,方法二,认识一下,GUI,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


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

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


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