1、第一章,Java 简介,2,本章目标,了解Java 语言 了解Java 程序的类型 掌握Java 程序运行环境的配置 理解Java 虚拟机 (JVM) 了解Java的特点,第一章,Java 简介,4,本章目标,了解Java 语言 了解Java 程序的类型 掌握Java 程序运行环境的配置 理解Java 虚拟机 (JVM) 了解Java的特点,5,Java语言的简介,Sun Microsystems 于1995年推出 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器 1994年将Oak语言更名为Java J
2、ava 既安全、可移植,又可跨平台,而且人们发现它能够解决Internet 上的大型应用问题,6,Java平台无关性,Java是一种既面向对象又可跨平台的语言 它用于创建单机应用程序、基于网络的程序和消费类设备程序。例如:移动电话和掌上导航系统,7,Java与Internet,Internet使Java成为网上最流行的编程语言 Java对Internet的影响也意义深远 在Java出现以前,几乎没有什么工具可以在 Internet上执行动态交互程序 Applet程序可以对用户的输入和操作做出响应,8,Java程序的类型,Applet,应用程序,它是用 Java 编写的、在 Internet 上
3、运行的程序,在任何客户端系统上均可下载 Applet。,它是指在计算机的操作系统支持下运行的程序。应用程序既可以基于GUI,又可以 基于命令行界面。,9,Java的开发环境,JDK是有助于程序员开发Java程序的Java开发工具包 jdk1.6.0_13 了解安装目录 : bin目录:存放可执行文件; lib目录:存放Java的类库文件; include目录:存放用于本地方法的文件; demo目录:存放演示程序; jre目录:存放Java运行环境文件;,10,配置环境变量,演示环境变量的配置,11,Java开发工具包,它是一组命令行工具 主要有: javac; java; javadoc;,1
4、2,JDK 中的工具-1,javac:用于编译Java 源代码的编译器 语法:javac 选项 源文件 源文件以扩展名.java 结尾 选项可以包括: -classpath -d,13,JDK 中的工具2,java:用于执行 Java 字节码的解释器 java 选项 类名称 参数 选项可以包括 -classpath -version,14,开发Java程序的步骤,创建Java源程序 Java源程序一般用java作为扩展名,是一个文本文件,用Java语言写成,可以用任何文本编辑器创建与编辑; 编译源程序 Java编译器,“javac”,读取你的Java源程序并翻译成Java虚拟机能够明白的指令集
5、合,且以字节码的形式保存在文件中。通常,字节码文件以class作为扩展名; 运行class(字节码)文件 Java解释器读取字节码,取出指令并且翻译成计算机能执行的代码,完成运行过程;,15,第一个Java程序,/* 此类用于在屏幕上显示消息。* version1.0,2009 年 3 月 20 日* author Jacky*/ class Message /* 这是一个 main 方法*/public static void main(String args) /* 输出此消息 */System.out.println(“欢迎来到 Java 世界!“); ,16,编译和运行,演示编译和运行
6、Java程序,17,分析程序 3-1,符号 /* */ 指示中间的语句是该程序中的注释。多行注释以 /* 开始,以 */ 结束。单行注释以 / 开始,以行末结束java文档注释使用/* */ 关键字 class 声明类的定义,还帮助编译器理解它是一个类的声明 整个类及其所有成员都是在一对大括号中(即 和 之间)定义的。它们标志着类定义块的开始和结束,18,分析程序 3-2,程序从 main( ) 方法开始执行 关键字 public 是一个访问说明符,控制类成员的可见度和作用域 关键字 static 允许调用 main( ) 方法,而无需创建类的实例 关键字 void 告诉编译器 main( )
7、 方法在执行时不返回任何值,19,分析程序 3-3,main( )方法是所有Java 应用程序的起始点 args 是String类型的数组 println( )方法通过 System.out 显示作为参数传递给它的字符串,20,Java虚拟机,可运行Java字节码的虚拟计算机系统 它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信,用户USER,字节码程序,JVM (Java 虚拟机),操作系统,硬 件,21,Java虚拟机的运行过程,编译时,.java,(源代码),.class,(字节码),运行时,解释器,硬件,网络,字节码校验器,类加载器,JIT代码 生成器,22,Jav
8、a API文档,23,文档注释,演示文档注释,24,Java的特点,简单 - Java 设计人员删除了C+ 中许多复杂的功能,如指针操纵和运算符重载等 面向对象 - 在 Java 中任何东西都是对象。因此,重点集中在数据、应用程序中操作对象的方法以及过程上 健壮性 - Java 在编译和解释时都会检查代码,25,Java的特点,安全性 - Java 提供了用于执行程序的受控环境,以及多层次的安全控制 分布式 - Java 可用于开发能够在多个平台、操作系统和图形用户界面之间移植的应用程序 多线程 - Java 程序使用称为“多线程”的进程同时处理多项任务,26,总结,Java 是面向对象的跨平
9、台语言 Java 可用来生成两类程序:应用程序、 小应用程序 JDK 提供多种工具,这些工具位于 JDK 的 bin 目录下,具体如下:javac java javadoc Java 字节码是 Java 虚拟机 (JVM) 可理解的机器语言指令,通常作为 Java 语言源代码的编译结果而生成,第二章,变量、数据类型和运算符,28,Java语言的简介,Sun Microsystems 于1995年推出 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器 1994年将Oak语言更名为Java Java 既安全、
10、可移植,又可跨平台,而且人们发现它能够解决Internet 上的大型应用问题,29,回顾,纠正代码中的错误,输出“早上好!”说出使用Eclipse开发Java程序的步骤?,public class Test public void main(String args) system.out.println(“早上好!“); ,System中S要大写,30,预习检查,为什么需要变量? Java定义的常用数据类型有哪些?举例说明? “%”和“/”分别执行什么运算?,31,升级Java应用程序“HelloAccp”: 输出学生相关信息 实现运算功能: 计算成绩差 计算成绩平均分,本章任务,32,掌握变
11、量的概念 会使用常用数据类型 int, double, char, String 会使用基本运算符 赋值运算符,算术运算符 会进行数据类型转换,本章目标,33,电脑使用内存来记忆计算时所使用的数据 内存如何存储数据?内存像旅馆 数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间,1、开房间(单人间、双人间、总统套间) 2、入住,回顾内存如何存放数据,34,1000*(1+5%),1000,1050,变量:一个数据 存储空间的表示,对于专业程序员,数据存入内存不算完: 怎么找到存入的数据?存进去还能改吗?,98.76,不同数据存入具有不同 内存地址的空间,相互独立,变量,在银行存1
12、000元钱,银行一年的利息5%,那一年之后钱变成了多少?,35,内存地址不好记,怎么办? 通过内存中小房间的别名找到数据存储的位置变量是存储数据的一个基本单元,房间,房间名字,房间类型,入住的客人,变量,变量名,变量类型,变量值,为什么需要变量,对应,36,变量应用,1、在内存中存储本金1000元 2、显示内存中存储的数据的值,public class HelloAccp1 public static void main(String args) int money = 1000; /存数据,数据类型,变量名,内存空间存的数值,演示示例:如何存取变量,System.out.println(mo
13、ney); /使用数据,37,变量的声明和赋值,使用变量的步骤: 第一步:声明一个变量第二步:赋值第三步:使用变量,数据类型 变量名 = 数值;,根据类型开辟空间,将数据存入空间,取出数据使用,数据类型 变量名; 变量名 = 数值;,int money = 1000;,int money; money = 1000 ;,38,数据属于不同类别,非洲,The quick brown fox,TRUE,数据,非数值,数值,整型,非整型,9002.12,999,9/12/2003,2.175,123,陈扬,char,非数值,数值,整型,int,double,非整型,String,Java常用数据类型
14、,数据类型,39,数据类型说明,40,数据类型的使用,输出Java课考试最高分:98.5 输出最高分学员姓名:张三 输出最高分学员性别:男,public class HelloAccp2 public static void main(String args) double score = 98.5; String name = “张三“;char sex = 男;System.out.println(“本次考试成绩最高分: “ + score);/输出其他 ,单引号,双引号,完整代码演示,连接输出信息,演示示例:不同类型变量存取,41,1、字母 2、下划线_ 3、$ 符号,首字母,任意多的:
15、 1、数字 2、字母 3、下划线_ 4、$ 符号,其余部分,变 量 名,Java语言中,变量命名要符合一定规则 money,score,name,sex,变量命名规范: 简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的 首字母大写。例如:myScore,变量命名规则2-1,42,变量命名规则2-2,检查下面这些是否是合法的变量名,principal,cost_price,marks_3,$lastname,city,123rate,discount%,zip code,City,int,43,public class HelloAccp3 public static voi
16、d main(String args) String title;System.out.println( title ); ,String title; /声明变量title title = “Java“ ; /赋值,String title = “Java“; /声明变量title并赋值,1,2,先声明变量并赋值, 然后才能使用,常见错误1,代码错误,正确方案,44,变量名不能以%开始,常见错误2,public class HelloAccp4 public static void main(String args) int %hour = 18;System.out.println(%ho
17、ur); ,代码错误,45,public class HelloAccp5 public static void main(String args) String name = “张三“;String name = “李四“; ,声明两个同名变量导致编译错误,String name = “张三“; String Name = “李四“;,Java程序区分大小写,常见错误3,正确方案,46,小结1,使用变量存储以下MP3信息,并打印输出 品牌(brand):爱国者F928 重量(weight):12.4 电池类型(type):内置锂电池 价格(price):499,参考代码,定义变量有哪两种方式
18、?,47,某班的A学员Java成绩是80分,B学员与A学员成绩相同,输出B学员成绩,int aScore = 80; int bScore; aScore = bScore; System.out.println(bScore);,bScore = aScore ; /将右边的值给左边的变量,赋值运算符,完整代码演示,aScore,bScore,80,80,副本,赋值运算符2-1,代码错误,48,变量名 表达式;,赋值运算符2-2,=,Z = ( X * 2 ) + ( 5 Y ),表达式,表达式,表达式,赋值运算符,表达式举例,49,算术运算符3-1,基本的算术运算某学员3门课成绩如右表所示
19、,编程实现:1、Java课和SQL课的分数之差2、3门课的平均分,50,public class HelloAccp7 public static void main(String args) int stb = 89; /STB分数int java = 90; /Java分数int sql = 60; /SQL分数int diffen; /分数之差double avg; /平均分/省略输出成绩单代码diffen = java - sql; /计算java 课和sql课的成绩差System.out.println(“Java和SQL的成绩差:“ + diffen);avg = (stb + j
20、ava + sql) / 3; /计算平均分System.out.println(“3门课的平均分是: “ + avg); ,声明变量,完整代码演示,算术运算符3-2,演示示例:算术运算符的使用,51,int num1 = 5; int num2 = 2; int a = num1 % num2; int b = num1 / num2; System.out.println(num1 + “ % “ + num2 + “= “ + a); System.out.println(num1 + “ / “ + num2 + “ = “ + b);num1+; num2- -; System.ou
21、t.println(“num1 = “ + num1); System.out.println(“num2 = “ + num2);,5 % 2= 1 5 / 2 = 2,下面代码片断的输出结果是什么?,输出,%:求商,/:求余数,等价于:num1 = num1 + 1;,等价于:num2 = num2 - 1;,num1 = 6 num2 = 1,输出,完整代码演示,算术运算符3-3,52,1、根据天数(46)计算周数和剩余的天数,2、已知圆的半径radius= 1.5,求其面积,参考代码,参考代码,小结2,53,自动类型转换,某班第一次Java考试平均分81.29,第二次比第一次多2分,计
22、算第二次考试平均分?,double firstAvg = 81.29; /第一次平均分double secondAvg; /第二次平均分int rise = 2;secondAvg = firstAvg + rise;System.out.println(“第二次平均分是:“ + secondAvg);,完整代码演示,54,在某种条件下,系统自动完成类型转换 两种类型兼容 例如:int 和 double 兼容 目标类型大于源类型 例如:double 型 大于 int 型 对于表达式 如果一个操作数为double型,则整个表达式可提升为double型,类型提升规则,55,int age = 19
23、;char sex = 女; char result = age + sex;,下面语句正确吗?,int a = 10; int b = 10.2; double c = 10; c = a; int d = c;,int 不可以自动转换成char,double不可以自动转化成int,常见错误,56,int before = 20; /apple笔记本市场份额double rise = 9.8; /增长的份额int now = before + rise; /现在的份额,int now = before + (int)rise;,去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9
24、.8,求今年所占的份额?,编译出错:不能完成 自动类型转换,(类型名)表达式,强制类型转换,int b = (int)10.2; double a = 10; int c = (int)a;,强制类型转换,更改为,演示示例:强制类型转换,强制类型转换,完整代码演示,57,实现一个数字加密器,加密规则是:加密结果 = (整数*10+5)/2 + 3.14159加密结果仍为一整数,参考代码,小结3,58,什么是变量? 如何声明变量、给变量赋值和使用变量? Java中常用的数据类型有哪些? 算术运算符中“/”和“%”的区别是什么? 发生自动类型转换的条件是什么? 如何进行强制类型转换?,总结,59,Thank you,