CoreJava全面的java基础内容.doc_第1页
CoreJava全面的java基础内容.doc_第2页
CoreJava全面的java基础内容.doc_第3页
CoreJava全面的java基础内容.doc_第4页
CoreJava全面的java基础内容.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

Core Java 第一章:进入Java世界 第一章:进入 世界 程序语言发展历程 机器语言:二进制机器代码,不便理解,不好记忆, 机器语言:二进制机器代码,不便理解,不好记忆,与硬 件平台相关,不具有可移植性。 件平台相关,不具有可移植性。 汇编语言:用助记符号来描述,与机器代码一一对应, 汇编语言:用助记符号来描述,与机器代码一一对应,能 够理解,但同样不可移植。 够理解,但同样不可移植。 高级语言:按自然语言的语法风格书写程序,方便理解, 高级语言:按自然语言的语法风格书写程序,方便理解, 在原代码的层次上可以实现跨平台移植。 在原代码的层次上可以实现跨平台移植。 我们熟知的常用计算机语言 C C+ Pascal Basic Java Java来自 来自Sun 来自 Sun : Standford University Network Sun公司官方网站 Java创始人 创始人 James Gosling green的项目组 具有深厚的c+背景。任务是为小型消费型电子产品开发一 种通用的编程语言。如机顶盒。 Oak Java简史 简史 Java 应用概述 J2ME (Java 2 Micro Edition) J2SE (Java 2 Standard Edition) J2EE (Java 2 Enterprise Edition) 微型版 标准版 企业版 Java 应用概述 Java ME (Java Micro Edition) 微型版 Java SE (Java Standard Edition) 标准版 Java EE (Java Enterprise Edition) 企业版 编译型和解释型 编译型语言: 编译型和解释型 解释型语言 Java的工作方式 的工作方式 Java的目标是让你写出一个应用程序,并能在任何设备上 运行 Java的工作方式 的工作方式 编译器 编译源代码,同时检查错误 字节码文件 由编译器产生,任何支持Java的设备都能够把它转译成可执 行的内容,编译后的字节码与平台无关 Java虚拟机 你不会真的买一台Java的机器,但是你都会有一个虚拟机, 这个虚拟机由软件实现,它可以读取与执行字节码文件。 你要做的事 编写源代码、编译、执行 JDK、JRE、JVM 、 、 JDK Java Development Kit (java 开发工具包) 工具箱1.2-1.4版本也称为SDK Software Development Kit JRE Java Runtime Environment (java 运行环境) JVM Java Virtual Machine (java 虚拟机) JDK、JRE、JVM 、 、 JDK:(Java Development kit) 包含Java运行的基本类库和开发命 令,安装JDK可以进行完整的Java开 发。 JRE:(Java Runtime Environmenpage 1t) 包含Java运行的基本类库和一些运 行命令,安装JRE可以运行编译好的 Java程序。 JVM:(Java Virtual Machine) Java语言内部运行的核心。 JDK JRE JVM 下载并安装JDK 下载并安装 从以下网站可下载JDK 从以下网站可下载 根据开发机器的不同,请下载相应平台下的 根据开发机器的不同,请下载相应平台下的JDK Install JDK Windows: run the executable Unix: run the shell 配置Java环境变量 环境变量 配置 JAVA_HOME CLASSPATH PATH 配置Java环境变量 环境变量 配置 Windows 2000/NT/XP 开始控制面板 系统高级 控制面板系统 高级环境变量 开始 控制面板 系统 高级 环境变量 JAVA_HOME= PATH=%JAVA_HOM%bin CLASSPATH=.; Unix csh: add these lines to $HOME/.cshrc setenv JAVA_HOME /usr/java setenv PATH $JAVA_HOME/bin: setenv CLASSPATH . bsh/ksh: add these lines to $HOME/.profile JAVA_HOME=/usr/java PATH=$JAVA_HOME/bin:$PATH CLASSPATH=. export JAVA_HOME PATH CLASSPATH Java的程序结构 的程序结构 类存在于源文件中 方法存在于类中 语句存在于方法中 Source file class method1 method2 源文件和类 源文件()带有类的定义。 类用来表示程序的一个 组件,小程序或许只会 有一个类,类的内容必 须包括在花括号里面。 public class Dog 类 类和方法 类中带有一个或多个方 法 在Dog这个类中,bark 方法带有如何“汪汪”的 指令。方法必须在类的内 部定义 public class Dog void bark() 方法 方法和语句 在方法的花括号中 编写方法应该执行 的指令。方法代码 由一组语句组成。 public class Dog void bark() statement1; statement2; 语句 Main方法 方法 当JVM启动时,它会寻找你在命令行所指定的类,然后它 会锁定像下面这样的一个特定方法: public static void main(Stringargs) /程序代码 然后JVM就会执行这个方法中的所有代码 剖析类 是的,你不需要记住这些 是的, 练习 :Information.java 写一个Java程序打印出下列信息: 姓名 性别 年龄 毕业学校 户籍 第二章:Java基本语法 第二章: 基本语法 你在main()方法里能做什么? 方法里能做什么? 你在 方法里能做什么 做某件事 声明、设定、调用方法 在适当的条件下做某件事 If/else switchpage 2 反复做某件事 for while 认识变量 变量有两种: 基本类型 引用类型 Java注重类型 注重类型 声明变量的规则 变量必须有一个类型 变量必须有一个名字 int count; 类型 名称 变量类型的不同 变量=杯子 Java的基本数据类型 的基本数据类型 byte short int long float double char boolean 8-bit 整形值 16-bit 整形值 32-bit 整形值 64-bit 整形值 32-bit 浮点数值 64-bit 浮点数值 16-bit unicode编码的字符 编码的字符 布尔值( 布尔值( true 或 false) ) 整形数据( 整形数据(byte、short、 int、long) 、 、 、 ) 三种形式给一个整形变量直接赋值: 三种形式给一个整形变量直接赋值 十进制、 十进制、八进制和十六进制 直接给出的值默认是int类型。 直接给出的值默认是 类型。 类型 标示。 长整形值应该在数字后面跟上 l 或 L标示。 标示 public void testIntType() int ia = 0x55; /十六进制 十六进制 int ib = 011; /八进制 八进制 byte bb = 0x771; byte ba = (byte)0x771; long la = 1234567L; /十进制 十进制 整形数据在计算机内的存储方式 1,正整数,存储该数字的二进制原码。 2,负整数,存储该数字的二进制补码。 short a=57; int a=57; 0000 0000 short a=-57; int a=-57; 1111 1111 高字节位 1111 1111 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0011 1001 0011 1001 1100 0111 1100 0111 低字节位 浮点数据类型float 和 double 浮点数据类型 类型。 直接在程序中书写的浮点数默认为 dobule类型。 类型 float 类型的数据占 位长度(4 Bytes) 类型的数据占32位长度 位长度( ) double类型的数据占 位长度(8 Bytes) 类型的数据占64位长度 类型的数据占 位长度( ) 直接表示一个float 类型的值必须在数字后跟 f 或F 直接表示一个 直接表示一个double 类型的值可以在数字后跟d 或D 类型的值可以在数字后跟 直接表示一个 可以用科学计数法表示, 可以用科学计数法表示,如:123.456e3或123.456E3 或 public void testFloatType() float fa = 123.4f; float fb = 12.5E300F; float fc = (float)12.5E300; double da = 123D; double db = 123.456D; double dc = 123.45e301; 字符类型char 字符类型 1,其实就是一个无符号的16位整形,其范围为065535,用来存储该字 符 的 Unicode编码值,因为Unicode 编码中包含汉字的编码,所以一个 char类型的变量也可以存储一个汉字字符。 2,在代码中直接给出的一个字符值必须用单引号括起来。 char zhChar = 中; char enChar = a; char ucChar = u0060; 3,对某些不方便直接书写或直接书写有歧义的字符,java语言规定用 转义字符给出。 4,可以把char类型数据当作整数数据来操作。 转义字符 Java语言中转义字符都以给出 常用转义字符列表: 转义字符 ddd uxxxx r n f t b 描述 1到3位8进制数所表示的字符(ddd) 1到4位16进制数所表示的字符(xxxx) 单引号字符 双引号字符 反斜杠字符 回车 换行 走纸换页 横向跳格 退格 字符串类型String 字符串类型 String 1,是JDK中定义的一个类,不是基本数据类型 中定义的一个类, , 中定义的一个类 2,一个 对象可以用来存储多个字符, ,一个String对象可以用来存储多个字符,在程序中直 对象可以用来存储多个字符 接给出一个String值要用双引号括起来 接给出一个 值要用双引号括起来 String myName = “Ice Xu”; 3,可以page 3使用 + 运算符把多个 运算符把多个String数据连接起来,并且 数据连接起来, , 数据连接起来 还可连接其他类型的数据 例如: 例如: int count=7; System.out.println(Counted + count + chars. ); 布尔类型-boolean 布尔类型 一个boolean类型的变量用来表示一个或真或假的关系 类型的变量用来表示一个或真或假的关系 一个 类型变量的值必须是true 或 false二者之一 一个 boolean 类型变量的值必须是 boolean isCorrect = true; 基本数据类型的取值范围 Type boolean byte short char int long float double Bits 8 8 16 16 32 64 32 64 Bytes 1 1 2 2 4 8 4 8 Minimum Range Maximum Range Only two values :true or false -27 -215 0 -231 -263 Not needed Not needed 27 - 1 215 - 1 216-1 231 - 1 263 - 1 Not needed Not needed 变量赋值 public class Assign public static void main(String args) int x, y; / 声明 类型变量 和y 声明int类型变量 类型变量x和 float z = 3.414f; / 声明 声明float类型变量并赋值 类型变量并赋值 double w = 3.1415; /声明 声明double类型变量并赋值 声明 类型变量并赋值 boolean truth = true; /声明 声明boolean类型变量并赋值 声明 类型变量并赋值 char c; /声明 声明char类型变量 类型变量c 声明 类型变量 String str; /声明 声明String类型的引用 声明 类型的引用 String str1 = “bye”; /声明 声明String类型的引用并且实例化 声明 类型的引用并且实例化 c = A; / 给c变量赋值 变量赋值 str = “Hi out there!”; / 给str实例化 实例化 x = 6; y = 1000; 变量赋值 要确保变量能存下所保存的值 你无法用小杯子装大值 不可以吗? 类型转换 自动类型转换(隐含转换 自动类型转换 隐含转换) 隐含转换 强制类型转换(显式转换 强制类型转换 显式转换) 显式转换 基本数据类型转换序列 说明: 说明: 在本图中,顺着箭头方向的类型转换可以自动进行, 1,在本图中,顺着箭头方向的类型转换可以自动进行, 逆箭头方向的转换或无箭头类型之间的转换必须强制转换。 逆箭头方向的转换或无箭头类型之间的转换必须强制转换。 byte short int long float double char 2,能将A类型变量自动转换成B类型变量的前提条件是这种 能将A类型变量自动转换成B 转换不会造成数据和精度的丢失, 转换不会造成数据和精度的丢失,即A类型的取值范围是 类型的取值范围的子集。 B类型的取值范围的子集。 类型转换的例子 package sample; public class CastingTest public void implictCasting() byte a = 60; int ia = a; char b = a; int c = b; long d = c; long e = 1000000000L; float f = e; double g = f; String s = hello; public void explicitCasting() long l = 1000000L; int i = l; /(int)l; double d = 12345.678; float f = d; /(float)d; Object o = new String(Hello); String str = o; /(String)o; 练 习 1,写一个程序,要求定义出boolean,int,char,double,float,String ,写一个程序,要求定义出 类型的变量并赋初值,然后将这些值输出出来。 类型的变量并赋初值,然后将这些值输出出来。 3,下列哪些赋值语句是错误的: ,下列哪些赋值语句是错误的: (1) byte b= 0x175; (2) int i=0x27f; (3) char c=123; (4) int a=真; 真 (5) float f=12.345E2; (6) boolean f=0; 4,判断下列语句中的 和b的值是否相等: 的值是否相等: ,判断下列语句中的a和 的值是否相等 (1) int a=0; int b=0; (2) int a=0; char b=u0000; (3) int a=123; char b=u007B; (4) int a=0x123; char b=123; (5) int a=3+5; char b=8; (6) int a=3+5; char b=8; (7) char a=u0000; char b=0;page 4 常用运算符列表 序号 1 2 3 4 5 6 7 8 描述 括号和引用 单目运算符 算术运算符 关系运算符 逻辑运算符 位运算符 条件运算符 赋值运算符 () + * / -% & . ! + = & = = 用法 op op1 & op2 op1 | op2 op1 op2 op1 op2 op1 op2 描述 按位取反 按位与 按位或 按位异或 op1右移op2位 op1左移op2位 op1无符号右移op2位 位运算符(, &, | , ) 位运算符( 位运算符( , , :将一个数的各二进制位全部右移若干位 移到右端的低位被舍弃, 将一个数的各二进制位全部右移若干位,移到右端的低位被舍弃 移到右端的低位被舍弃, 最高位则移入原来高位的值 a = 00110111,则 a2 = 00001101 例如 : , b = 11010011,则 b2 = 11110100 , 右移一位相当于除2取商 右移一位相当于除 取商 例如: 例如: 128 1 returns 128/ 21 = 64 256 4 returns 256/ 24 = 16 -256 4 returns -256/ 24 = -16 :一个数的各二进制位无符号右移若干位,与运算符 相同,移 一个数的各二进制位无符号右移若干位,与运算符相同 相同, 出的低位被舍弃,但不同的是最高位都补0。 出的低位被舍弃,但不同的是最高位都补 。 a = 00110111, 则 a2 = 00001101 如 , b = 11010011, 则 b2 = 00110100 , 位运算符 :用来将一个数的各二进位全部左移若干位。高位左移后溢出舍弃,低位 用来将一个数的各二进位全部左移若干位。高位左移后溢出舍弃, 补0。 。 例如: 例如:a = 00001111,则a2 = 00111100。 , 。 在不产生溢出的情况下,左移一位相当于乘 在不产生溢出的情况下,左移一位相当于乘2 128 1 returns 128 * 21 = 256 16 1= 1233= -122= -1266= 1282 = 1292= int a1 = 12 1; int a2 = -12 2; int a1 = 12 1; int a2 = -12 2; int a3 = 128 2; int a4 = 129 1 12/2(1) 6 1233 12/2(33%32) 12/2(1) 6 -122 -12/2(2) -3 -1266 -12/2(66%32) -12/2(2) -3 1282 128/2(2) 32 1292 129/2(2) 32 int a1 = 12 1;/ 6 int a2 = -12 2;/1073741821 int a1 = 12 1; /24 int a2 = -12 2;/-48; int a3 = 128 2;/512 int a4 = 129 2;/516 流程控制语句 分支语句:if-else, switch-case 循环语句:for, while, do-while 循环跳转语句: break, continue 选择结构if else 选择结构 if else 的语法结构 3,多层嵌套 if( boolean expression 1) code block 1 else if (boolean expression 2) code block 2 else code block 3 1,基本结构 if( boolean expression) code block 1 else code block 2 2,省略else分支 if( boolean expression) code block 选择结构switch case 选择结构 switch case 实现多分支选择结构的语句: switch(expression) case 整数值1 : 语句; break; case 整数值2 : 语句; break; case 整数值3 : 语句; break; case 整数值4 : 语句; break; case 整数值5 : 语句; break; /. default:语句; switch case 说明 表达式expression可以是以下四种基本数据类型和枚举 可以是以下四种基本数据类型和枚举 表达式 类型 (byte,short,int,char) , , , case子句中的值必须是常量,而且所有 子句中的值必须是常量, 子句中的值必须是常量 而且所有case子句中的值 子句中的值 应是不同的 case通常与 通常与break语句联用,以保证多路分支的正确实 语句联用, 通常与 语句联用 现。 多个case可以公用一组执行语句 可以公用一组执行语句。 多个 可以公用一组执行语句 switch case 应用 例题:根据考试成绩的等级打印出百分制分数段。 public class GradeLevel public static void main( String args ) System.out.println(n* first situation *); char grade=C; /normal use switch( grade ) case A : System.out.println(grade+ is 85100);break; case B : System.out.println(grade+ is 7084);break; case C : System.out.println(grade+ is 6069);break; case D : System.out.println(grade+ is 60);break; default : System.out.println(input error); for循环 循环 格式 格式 for(初始表达式; 布尔表达式; 步进) 循环体语句块 说明: 说明: ? 无论初始表达式,布尔表达式,还是步进,都可以置空。 ? 初始表达式在整个循环过程中只执行一次。 for(int i = 0, j = 1; i 10 & j != 11; /* body of for loop */; i+, j+) while 循环 格式: 格式: 格式 while(布尔表达式) 循环体语句块 例子: public class WhileTest public static void main(String args) double r = 0; while(r 0.99d) r = Math.random(); System.out.println(r); do while 循环 格式 格式: 格式 do 循环语句 while(布尔表达式); ?例子: 例子: 例子 break 跳出它所在的循环语句或switch 语句,并从紧跟该循环语句或 switch 语句后的第一条语句处执行 int n=13; boolean flag=true; for(int i=2;i0) System.out.println(“WaWa”); num-; 你可以从方法中取返回值 void 代表方法并没有返回任何 东西 一个方法可以回传给调用方指定的类型值,如:page 8 int giveSecret() return 42; 说好了要返回,就一定要返回,值返回的类型必须相符 Java并不要求你一定处理返回值 你可以向方法中传入一个以上的参数 方法可以有多个参数 如果方法有参数,你一定要以正确的数量、类型、和顺序 传递参数 你以可以将变量当作参数传入,只要类型相符就可以 值传递或引用传递 在java里,调用传递参数时都是值传递,或者叫拷贝传递, 不管理参数的类型是基本数据类型还是引用在型 声明与初始化实例变量 实例变量是在类定义的 实例变量永远都会有默认值,即使你没有明确地赋值给它 实例变量与局部变量之间的差别 实例变量是声明有类内而不是方法内 局部变量是声明在方法内的 局部变量在使用前必需初始化 局部变量没有默认值!如果在变量使用被初始化前就使用, 编译会报错 方法的参数基本上与局部变量相同,但你不需要直接初始 化它,编译器会确保方法调用时会有与声明相符的参数传进 来,且参数会自动被赋值 局部变量和实例变量的寿命 局部变量只存活在声明该变量的方法中 实例变量的寿命与对象相同,如果对象还活着,则实例变 量也会是活的。 那引用变量呢? 只要有活着的引用,对象也就会活着 当最后一个引用消失时,对象就会变成可回收的 方法的重载( 方法的重载(overload) ) 方法名相同 参数列表不同 返回类型可以不同,也可以相同 重载的方法只是刚好有相同名字的不同方法 第五章:数组 第五章: 什么是数组 数组也是对象 数组中保存着多个相同类型的元素 数组中的每一个元素都是变量 创建一个int型的数组对象 创建一个 型的数组对象 1. 声明一个int数组变量,数组变量是数组对象的遥控器 int nums; 2. 创建大小为7的数组,并将它赋值给变量nums nums = new int7; 3. 赋于int数组每一个元素一个int值 nums0 = 6; nums1 = 34; 这个数字我们称为数组的 nums2 = 23; 下标,数组的下标从0开 下标, nums3 = 4; 始 nums4 = 15; nums5 = 0; nums6 = 57; 7个int类型的变量 创建数组对象的另外几种方式 Int nums = 6,34,23,4,15,0, 57; Int nums = new int 6,34,23,4,15,0, 57; 可以换换位置,如: Int nums; 数组犹如杯架 元素本身是基本类型的, 元素本身是基本类型的, 但数组却是个对象 创建Dog数组 数组 创建 1. 声明一个Dog数组变量pets 2. 创建大小为7的Dog数组对象,并赋给变量pets 3. 创建新Dog对象并将它赋值给数组元素 Dog pets; pets = new Dog7; pets0 = new Dog(); pets1 = new Dog(); 创建Dog数组 数组 创建 Dog pets; pets = new Dog7; 创建Dog数组 数组 创建 pets0 = new Dog(); pets1 = new Dog(); Java注重类型 注重类型 一旦数组被声明出来,你就只能装入所声明类型的元素 你不能将Cat放进Dog数组中 数组元素的默认值 byte short int long 为0 float double 为0.0 char 为 0 boolean 为 false 引用类型为null 数组的一个属性-length 数组的一个属性 所有java数组都有一个length属性,表示数组的长度 长度的意思是指这个数组最多能保存的元素个数 length属性只能被读取,不能被修改 多维数组 1. 定义方式:type 维数 arrayName; 定义方式: ; 例如: 例如:int intArray;int a2; ; ; 2. 分配内存空间 有两种方法: 分配内存空间page 9,有两种方法 有两种方法: 直接为每一维分配空间: int a = new int23; 直接为每一维分配空间 ; 分别为每一维分配空间 int a = new int2 ; ; a0 = new int3; a1 = new int3; 可以为每行设置为空间大小不同的数组。 可以为每行设置为空间大小不同的数组。 a0 = new int3; a1 = new int5; 多维数组 数组的数组 初始化,有两种方式: 先定义数组,分配空间,然后直接对每个元素进行赋 值 在定义数组的同时进行初始化。 如:int a = 2,3, 1,5, 3,4; 数组的拷贝 System.arraycopy(); arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src - 源数组。 srcPos - 源数组中的起始位

温馨提示

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

评论

0/150

提交评论