《嘉兴Java培训》PPT课件.ppt_第1页
《嘉兴Java培训》PPT课件.ppt_第2页
《嘉兴Java培训》PPT课件.ppt_第3页
《嘉兴Java培训》PPT课件.ppt_第4页
《嘉兴Java培训》PPT课件.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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的关键字重名,关键字,Java中一些赋予特定含义,用作专门用途的字符串称为关键字。 所有Java的关键字都是小写。,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数据类型转换,基本数据类型转换,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,逻辑运算符,逻辑运算符:【! 逻辑非】【& 逻辑与】【| 逻辑或】【 逻辑异与】【& 短路与】【| 短路或】,public static void main(String args) boolean a = true, b = false, 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,假设在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,条件、循环控制语句,表达式,语句块,false,true,表达式1,表达式2,语句块,true,表达式3,false,TestIf.java,TestFor.java,while与do-while,表达式,true,语句块,false,语句块,表达式,true,false,WhileTest.java,Switch条件控制,注:表达式必须是int类型的(byte,short,char,int),break语句穿透问题,SwitcheTest.java,方法:具有一定业务逻辑的代码片段,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,方法的定义,解析内存中的对象,Stack内存,Person:p,Heap内存,name age:20,Data segment,Jim,String:name,Jams,1,2,3,4,继承,子类通过继承获得基类的所有属性(当然也包括私有的)及方法。在创建子类对象时,可以通过子类对象调用基类的方法和访问除去私有的一切成员变量。 继承提高了代码的复用性。 子类可以扩展基类的方法及属性。 子类对象的创建伴随着父类对象的创建 注意构造方法的定义 Super的使用,重写(override),重写发生在继承关系的子类中; 方法名不变,返回值类型不变,参数类型不变,访问级别不低于父类,对父类的方法进行重新的实现的过程叫重写; 注意:只要在子类中显示的写出了父类的方法,即使方法体不做任何实现,也发生重写。即子类对象调用该方法时,调用的实际是子类的方法。 注意重载,重写的伴随状态及关键字super的使用,访问权限控制,关键字abstract,abstract修饰类,表示该类为抽象类,抽象类不能够实例化,抽象类中可以有抽象方法; abstract修饰方法,该方法为抽象方法,抽象方法既是没有方法体的方法,只有方法的声明。 如果类被声明为abstract的,且抽象类中有抽象的方法,则继承它的子类必须实现抽象的方法或者子类也声明为抽象类。,关键字interface,interface定义接口,接口不能够实例化; 接口中的方法只有方法的声明,没有方法体; 接口中的方法的访问级别都是public的,即使没有显示的将方法的访问修饰符写为public,即不写访问修饰符,默认为public的,写private、protected都错。 interface中定义的变量,在编译时会为其加上static final,即interface中的变量都是静态的常量,且访问级别都是public的。 interface中的方法都是public的,即使不显示的写出方法的访问修饰符,在编译时也会为其加上public

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论