




已阅读5页,还剩86页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 到 第十二章day01Java开发前奏(第1章)IT行业 硬件 - 各种硬件, 技术含量越高,价格越贵。 软件 - 看不到,摸不着。 软件比硬件值钱得多! iPhone 5 - 5000 制造成本400块其他在品牌,在软件。 美国几乎不造硬件硬件不如软件挣钱。程序 软件的核心部分 程序:当我们要做一件事情时,需要按一种既定的流程、步骤,依次完成每个过程, 最后结果就出来了。 真正的程序员,会影响他的生活习惯,做所有事情,都会有计划,有步骤。 计算机程序: 驱动机器去为我们按既定流程、步骤去完成某件事情。 =计算机是很蠢的!它只会按我们规定的步骤去做事=Java能做什么? 1. 做桌面软件。 针对个人。 Java在桌面软件领域、并不流行。 MS,win8向“移动操作系统”转型。 2. 大型信息化系统。(Java最擅长) 针对企业。 taobao(阿里软件)、各种银行系统、证券、电信、移动 3. 移动互联网软件。 针对个人。 Android 编程语言的运行机制 程序: 驱动机器去为我们按既定流程、步骤去完成某件事情。 能直接驱动计算机的 机器指令。(难度非常大) 汇编 高级语言(C、Java)高级语言编程: 源代码就像“作文”一样,容易编写。 但高级语言的源代码,机器看不懂,但人容易看懂、容易编写。学编程的所有工具安装准则: 1. 不要安装在有空格的路径下。 2. 不要安装在有中文的路径下。 (1) 安装JDK.(2) 既然要使用Java开发,经常需要使用javac、java命令。 执行计算机命令的两个方法 A。 每次运行命令时,都输入该命令的绝对路径。 可行,坏处是麻烦。 B。 告诉系统,总是到某些目录下去找命令。 这就需要PATH环境变量: 它的值是N条路径。中间以分号隔开。 用于告诉操作系统, 以后操作系统要找命令时,就依次在这N条路径中找, 如果找到了,操作系统就执行这些命令。 如果没找到,操作系统就提示:“不是内部或外部命令,也不是可运行的程序” PATH环境变量的作用:告诉【操作系统】到哪些路径下去找【命令】。/* 绝对路径 :以盘符开始的路径,就是绝对路径。 c:abct.txt 相对路径: 不以盘符开始的路径,就是相对路径。 abct.txt*/* 启动dos窗口, 运行 cmd 打开“快速编辑模式”,即可用“右键”完成复制、粘贴。 cd 路径 进入指定路径。 特殊路径: 根路径。 . 当前路径。 符号前的就是当前路径。 . 上一级路径。 dir: 列出该路径下的所有文件和目录。 切换盘符: 直接输入盘符:即可。*/Java程序的最小程序单元: 类。 要定义类 修饰符 class 修饰符 ,只能是public。 Java程序,如果要运行,必须有个入口方法:main方法: public static void main(String args) Java源文件的命名规则: 1. 文件名必须以.java为后缀 2. 如果源文件中定义了public修饰的类,主文件名必须与类名相同。 一个Java源文件,可以包含多个类定义。 但一个Java源文件最多只能包含一个public修饰的类。编译Java程序的命令: javac -d 目录 源文件的文件名 指定将生成的新文件放在哪里。 javac生成的新文件名的命名规则: 类名.class (每个类,对应一个class文件)运行Java程序的命令: java 类名关于CLASSPATH环境变量的解释: 1. CLASSPATH环境变量可以不设置。 2. CLASSPATH环境变量的作用? CLASSPATH环境变量的作用:告诉【JVM】到哪些路径下去找【类】。 CLASSPATH环境变量的值,依然是N条路径,路径之间用分号隔开。 3. 如果你不设置CLASSPATH环境变量,相当于CLASSPATH的值是一个点(.) 如果你设置CLASSPATH环境变量,记得要加上一点(.)。Java程序的注释: 注释的作用: 给人(包括自己)看的。 注释:对程序本身,不存在任何影响。 建议: 总是为程序添加合适的注释。 注释: 还可用于调试程序,可以把程序中某段代码先注释掉。 对于程序员来说,还有一个更重要的能力:排错。 1. 先多遇到错误,多解决错误。 2. 常见的错误,记下来引起错误的原因。 注释分为3种: 单行注释: / 多行注释: /* */ 文档注释: /* */ 它可用于生成API文档。作业: 10个类,分别在屏幕上打印不同的形状:三角形、正方形、长方形day02数据类型与运算符(第3章)Java语言的运行机制: 它既想吸收编译型语言的速度快的优点,又想吸收解释型语言“跨平台”的优点 它变成了一个“既需【编译】(平台无关的字节码文件)、又需要JVM的【解释】”的语言。 Java语言的程序,速度快,而且能跨平台。编译Java程序的命令: javac -d 源文件的路径运行Java程序的命令: java 类名只要做Java开发,javac、java这两个命令是必需的。 是由Oracle的JDK所提供的。 SDK(Software Develop Kits) JDK (Java 的SDK)开发Java之前的准备: (1) 安装JDK。 Java for Developer(JDK) JRE + 各种编译工具。 Java for Your Computer(JRE) JRE (Java的Runtime Enviorment) JVM + 基础类库、程序 (2) 由于我们需要使用javac、java命令。 如果不配置环境变量,每次使用javac、java命令时,都需要输入命令的绝对路径。 可以配置PATH环境变量,它的值是N条路径(以;隔开),以后你输入任何命令时,操作系统都会在PATH所指定的系列路径中搜索。Java程序的最小结构单元: 类。 面向对象。【C程序的最小结构单元: 函数。 面向过程】写Java程序,定义类: 修饰符 class / 入口方法、开始点 public static void main(String args) / 执行性代码 System.out.println(); 注释: 1. 单行注释。 / 2. 多行注释。 /* */ 3. 文档注释。 /* */ 文档注释的作用: javadoc可以直接提取源代码中文档注释,生成对应的【API文档】。 何为API文档? 当我们写了一些类之后,应该为这些类编写“使用说明书”。 javadoc命令: 程序员只要在源代码中添加文档注释,javadoc就可以为提取注释,生成使用说明书【API文档】。 API文档 包列表区 | 详细说明区 -| 类列表区 |文本编辑器: notopad、vim(最老牌、经典文本编辑工具)、ultraedit、editplus。 生成API文档的步骤: (1) 在源代码中添加文档注释。 文档注释必须添加在 类、方法、field、内部类 之前才有效。 如果你把文档注释放在其他地方,它只能多行注释。 (2) 使用javadoc命令: javadoc -d 源文件变量 编程就要操作数据。数据就要放在“东西”中。 变量的作用:“装”一切的数据。通俗理解:可以把变量理解成“瓶子”。 变量需要有个名字(标识符)。通过该名字即可访问变量 分隔符: 所有的符号,都是英文符号。 空格、 花括号 、 、() .标识符:(identifier) 名字 只能由于字母(包括中文字符)、数字、下划线、$组成,其中数字不能开头。 标识符不能是Java的关键字或保留字。关键字: 48个。 2个保留字:(goto、const)现在还没有使用,也许以后会用。 3个直接量: true、false、null。就是值。 这53个都不能作为标识符。 Java语言是“强类型”的语言: 所有变量,必须先声明(声明时就必须指定类型)、后使用。 “什么样的瓶子只能转什么东西”, 指定类型的变量,只能装相应类型的值。Java的数据类型可分为2大类: 基本类型。 引用类型。 整型(byte、short、int、long) 浮点型(float、double) 基本类型 字符型(char) 布尔型(boolean) 只有2个值: true、 false整型: byte(1个字节(byte)=8个位(bit)) 8个bit表示2的8次方种状态。 因此一个bit只能表示256个数。 byte的取值范围: -1280127 short(2个字节(byte)=16个位(bit)) 16个bit表示2的16次方种状态。能表示65536个数。 short的取值范围: -32768032767 int (4个字节(byte)=32个位(bit)) int的取值范围: 负的2的31次方02的31次方-1 long (8个字节(byte)=64个位(bit)) long的取值范围: 负的2的63次方02的63次方-1 /*2的10次方:1024 1K 2的20次方: 1M(百万)2的30次方: 1G(十亿)2的40次方: 1T*/ 1. 当我们直接给出一个整数值时,它默认是int型。 系统绝不会把它当成long处理。 2. 当我们直接给出一个在指定取值范围内的整数时,系统也可把它当成byte、short使用。 3. 如果你系统把一个整数当成long使用,应该在整数后添加l或L。数值的下划线用法。 可以在数值中任意添加下划线(_)作为分隔符。整数一共支持4种表示形式: 10进制值。 默认。 16进制 Ox或0X开头 09、a、bf(15) 8进制 O开头 07 2进制 b或B开头 01 123 1 * 【进制】的2次方 + 2 * 【进制】的1次方 + 3 * 【进制】的0次方。 0x1a = 1 * 16的1次方 + a * 16的0次方 = 26 整数不能除以0,否则会引发“算术异常:ArithmeticException”浮点型: float :4个字节,32位。 double:8个字符,64位。 带小数的数值,就是浮点型。 当你直接给出一个带小数的数值时,它默认是double型。 如果希望当成float使用,应该在数值后添加f或F。 浮点数支持2种形式: 给出带小数的数。 科学计数法。 2.11133E3 浮点型有3个特殊值: 正无穷大 Infinty 正数除以0,得到无穷大。 所有正无穷大都相等。 负无穷大 -Infinity 负数除以0,得到无穷大。 所有负无穷大都相等。 非数 NaN : 0 除以0, 对负数开方等。 非数与任何数都不相等,包括它自己!字符型 char Java用就是Unicode字符集 字符型占2个字节,16位, 65536种状态。 字符型也可以当成无符号整型(065535)(每个字符都有编号)用。 字符型的值,应该用单引号引起来。 (双引号引起来的是字符串)。 字符型有3种形式: A。 字符 B。 转义字符。 n t P50的表3.2 C。 直接用字符的Unicode编号。 布尔型 boolean 它只有两个值: true、 false。 数值型: byte、short、int、long、char、float、double 基本类型 布尔型: boolean/*字符集 计算机底层、内存中都无法记录字符,它们只能记录010101这种二进制位。 但我们有字符需要保存到计算机中,计算机科学家想了一个办法,给字符编号 计算机底层使用、保存这些字符时,其实用的的这些字符的编号。 如果给所有字符都编号,这就叫字符集。 所谓字符集:就是给所有字符编个号。 字符集: 保存(写入)文件 、恢复(读取)文件用的字符集要一致。 ASCII 每个字符占一个字节,8bit,总共能表示256个字符。 A(65) Z(65+25) a(97) z(97+25) 0(48) 9(57) GB2312 GBK GB18030 Unicode :16位、 能表示65536个字符。 utf-8、utf-16。 编程:建议使用utf-8字符集。*/ 类型转换 自动转换 取值范围小的类型,可以自动转换为取值范围大的类型。 (-128127) (-3276832767) (-20亿20亿) byte short int long float double char (065535) 所有数值型,都可自动转换为double。 所有整型,都可自动转换为long。 所有整型,都可自动转浮点型。 强制转换。 当数值类型之间,不能自动转换时就需要进行强制转换。 强制转换的语法格式是: (类型) 【注意】,强制转换,可能会溢出。/* 数值的表示形式: 最高位是符号位, 0代表正数; 1代表负数。 原码 直接换算得到的2进制码。 反码 把原码,除符号位之外,其他位取反得到反码。 补码 正数的补码就是源码;负数的补码为反码+1 计算机底层,所有数值都用补码表示。*/随机的图形验证码 (1)只要生成一个97122(汉字的范围)之间的随机整数 (2)将随机整数,强转为char这就是随机字符。 Math类:所有与数学计算相关的算法,都提供了相应的方法。表达式类型的自动提升 所谓表达式:用运算符,将多个变量、值,串联成“四则混合运算”。 一个表达式,最终也会计算出一个结果,该结果的数据类型, 与整个表达式中等级最高的操作数的数据类型相同。 直接量 直接量,就是在源代码中直接给出的值。 int: 20、 0x12 、 12、012 long: 1L、 23L float: 2.4f double 2.3 3e2 char: 1 、u2331 boolean: true 、false String: helloworld 运算符 算术运算符: + : 加法运算符,也是连接运算符。 - : 减法运算符。 * : 乘法运算符。 / : 除法 % : 取余。 + : 必须操作【一个】【变量】,让变量的值加1 - : 必须操作【一个】【变量】,让变量的值减1 + 如果放在变量的前面,是先将变量加1,再用加1后的值; 如果放在变量的后面,是先用变量原始的值;将变量加1。 - 如果放在变量的前面,是先将变量减1,再用减1后的值; 如果放在变量的后面,是先用变量原始的值;将变量减1。 赋值运算符 = 位运算符 & : 按位与 当上下两位都是1,计算结果才是1. | : 按位或 当上下两位都是0,计算结果才是0;只要有任何一个是1,结果就是1。 : 按位异或当上下两位不同,计算结果才是1. : 按位取反(按位非)。直接取反只要一个运算数即可。 : 右移,右边移出去的位,将会被直接“砍掉”, 左边空出来的位补符号位。 右移N位,相当于除以2的N次方。 :无符号右移,右边移出去的位,将会被直接“砍掉”,左边空出来的位总是补0。 移出来的结果总是正数。练习: 画出下面计算结果的过程 -12 & 34 (byte)234; -334 20 | -124 45day03流程控制和数组(第4章)数据类型与运算符Java数据类型可分为2大类: - 基本类型 - 引用类型基本类型 A。 整型 byte short int long 有4种表示形式: 10进制、8进制(以0开头)、16进制(以0X或0x开头)、2进制(以B或b开头、Java 7才支持) B。 浮点型。float(4个字节)、double(8个字节) 直接给出小数,默认是double类型;如果希望一个数字是float类型,需要添加f/F作为后缀。 C。 字符型。 字符型可以当成无符号整型使用(065535) 字符型有3种表示形式: - 直接给出单个字符 A -转义字符。 - uXXXX,用4位的16进制的Unicode值。 D。 布尔型。 true、false另外一种分类规则: A。 数值型: byte、short、int、long、char、float、double B。 布尔型:boolean7个数值型之间可以相互转换, - 自动转换 : 取值范围小的、向取值范围大的转换,就可自动转换。 byte short int long float double char - 强制转换: 不能自动转换时,就需要进行强制转换。 语法格式是: (类型) 【强制转换可能导致溢出!】运算符: 算术运算符: + - * % / + - 赋值运算符: = 位运算符: & | (左边高位补符号位,右移N位相当于除以2的N次方)、 扩展后的赋值运算符: 所有【双目】运算符,都可以与=结合,结合成为扩展的赋值运算符。 a += b 相当于 a = (a的类型)(a + b) a -= b . a &= b 比较运算符 比较运算符,返回的结果是true或false = = = != 【比较运算符的返回值总是boolean值!】 逻辑运算符 逻辑运算符的作用是: 对两个boolean值进行逻辑运算。 逻辑运算符,只能对boolean值进行运算。 & :与。当两个操作数都是true时、才返回true。 &: 不短路与。 | : 或。当两个操作数只要有一个是true时、就会返回true。 |: 不短路或 !: 非 : 它是单目的。相当于取反。 : 异或。 当两个操作数相同时,结果就会返回false。 &与&的区别何在? 对于“求与”来说,当第一个操作数已经是false时、结果肯定是false,第二个操作数根本不会影响结果。 &,根本不会去计算第二个操作数。 &, 它依然会去计算第二个操作数。 |与|的区别何在? 对于“求或”来说,当第一个操作数已经是true时、结果肯定是true,第二个操作数根本不会影响结果。 |,根本不会去计算第二个操作数。 |, 它依然会去计算第二个操作数。 三目运算符 boolean表达式 ?value1 : value2 当boolean表达式返回true,整个表达式返回value1;否则,就返回value2 运算符的结合性与优先级 运算符有优先级, 一共分成10多个级别的优先级。参看P67. 规则: 尽量多用()来保证哪些东西先算。 流程控制 目前,最主流、最常用的3种流程: 1. 顺序。 从上到下、依次执行每条代码。 如果没有流程控制,默认就是顺序结构。 在顺序结构中,如果后面代码得到了执行,表明前面代码已经执行完成。 2. 分支。 根据条件来执行执行代码。 if语句。 if语句的语法格式: if() / 执行语句 括起来的部分,称为“条件执行体”。 if() / 执行语句 else / 执行语句 if() / 执行语句 else if() else if块可出现0N次。 / 执行语句 else else块可出现01次 / 执行语句 if分支语句的注意点: A. 如果if后的条件执行体只有一行代码,可以省略条件执行体的花括号。 如果if后省略花括号, if条件只控制到紧跟该if语句的第一个分号。 建议: 总是保留条件执行体的花括号。 B. else包含了一个隐含的条件: 该条件就是对前面条件取反。 建议:当有if.else if.时候,应该先判断【范围小】的条件。 Java 7增强后switch语句, 语法格式是这样的: switch() / 此处的表达式可以是byte、short、char、int、String(Java7)、枚举 case 值1: case块可出现1N次 break; case 值2: break; case 值3: break; default: / Java会去计算的值,如果表达式的值与后面指定case的值相同时,就会进入执行对应的case代码块。 switch允许省略case块的break; 如果switch省略了case后面break后,从第一个能进入的case块开始,然后一直执行每个case块的代码(此时根本不判断case后的值),此时根本不会判断case后的值。 3. 循环(回圈) 控制程序将一段多次重复执行。 while循环 while() / 循环体 每次进入循环体之前,会先去判断,如果返回true,就会进行循环体。 只要逻辑表达式为true,就会一直重复执行循环体。 当为false时,此时就会跳出循环(执行循环体花括号后面的代码)。 的执行次数 = 循环体的执行次数 + 1 【注意:】 如果while循环的循环体只有一行代码,可以省略循环体的花括号。 如果省略了while循环体的花括号, while只控制紧跟while的第一个分号。 【练习】 用星号打印三角形 * * * * * 高 : N 一共要打印 6 行。 结论:每行打印的空格数: 高度 - 行数 每行打印的*数: 2 * 行数 - 1 do while循环 do / 循环体 while(); 先执行循环体,然后再去判断逻辑表达式,如果逻辑表达式为true,执行下一次循环。 - 即使逻辑表达式开始就是false,循环体也会执行一次。 do while循环的循环体至少会执行一次。 - 循环体的执行次数 = 逻辑表达式的执行次数。 for循环 - 【语法更简洁】。 - 【内聚性更好】。 for(初始化语句; 逻辑表达式 ; 迭代语句) / 循环体 初始化语句:仅在循环开始之前,执行一次! 逻辑表达式:每次进行循环体之前,都要先判断逻辑表达式的值。 当逻辑表达式返回true,就会进行循环体。 如果逻辑表达式返回false,跳出循环。 逻辑表达式的执行次数 = 循环体的执行次数 + 1 迭代语句: 每次循环体执行完之后、判断循环条件之前,会自动执行迭代语句。 迭代语句的执行次数 = 循环体的执行次数 可以用while循环来改写for循环,改写后为如下形式: 初始化语句 while (逻辑表达式) / 循环体 迭代语句 【注意点】 - 如果在循环体中修改循环计数器的值,循环体的执行次数可能会发生变化。 - for循环中,只有两个分号是必须的。 如果没有逻辑表达式,相当于逻辑表达式总是true。 - for循环的初始化语句,可以一次声明多个变量。这多个变量的类型必须相同。 /* 死循环:无限循环 */ 课堂练习: 打印99乘法表 1 * 1 = 1 1 * 2 = 2,2 * 2 = 4 1 * 3 = 3,2 * 3 = 6 , 3 * 3 = 9 1 * 9 9 * 9 = 81 结论: - 总共打印MAX_NUM行 - 每行要打的token数量 = 行数 控制循环结构: break - 跳出一个循环。 直接调到循环体的后一条代码。 即使是死循环,我们也可以使用break来跳出循环。 默认情况,break只是跳出它所在的循环。 循环可以带标号 所谓标号,就是为循环起个名字。 标号的语法格式为: 标识符: 这就是为循环起了个名字。 如果在break后添加标签,可以直接跳出标签代表的循环。 continue - 忽略本次循环剩下的语句、重新开始下一次循环。 结论:如果一个【不带标号】的continue语句,而且它是循环体的最后一条语句,这个continue语句没有作用。 默认情况,continue只是忽略它所在的循环的剩下语句。 如果在continue后添加标签,可以直接忽略标签所代表循环的剩下语句。 return - 可用于结束一个方法。 return 无论它在多深的嵌套循环中,只要遇到return语句,它会结束方法,整个循环将会完全结束。1. 找出2000以内的所有“水仙花”数字 找出2000以内所有 各位的数值的立方的和 = 该数本身。 比如: 153 = 1 + 125 + 272. 打印圆 (对于有难度,就做将三角形再打个反向,就成了菱形) * * * day04流程控制和数组(第4章) *Java的流程控制第一种:顺序结构 如果我们要做的一件事情,本身是从上到下、按既定的步骤依次执行, 此时就可考虑使用顺序结构。 编程思路: 我要的事情,可定义为一个一个小任务,接下来就将每条任务都翻译为相应程序代码。第二种:分支结构 如果我们要做的事情,要根据具体的条件来决定是否执行。 此时就可考虑使用分支结构。 Java的分支结构有两种: if if(条件) / 条件执行体 else if( 条件) 它可以出现0N次 / 条件执行体 . else 它可以出现01次 / 条件执行体 1. 当条件执行体只有一行代码时,程序可以省略条件执行体的花括号。 省略花括号之后, if只控制到紧跟它的第一个分号。 2. else本身就是一个条件。else相当于是对前面的条件取反。 经验:当有多个else if块,你应该先去处理范围小的条件。 switch switch(表达式) / 表达式的类型可以byteshortcharintString(Java 7)枚举 case 值1: 可出现1N次。 / 执行代码 break; case 值2: / 执行代码 break; default: 隐含条件是:表达式的值不等于前面任意一个值 【注意点:】 如果省略了break,流程会从第一个能进入的case块开始,依次向下执行每个case块,根本不会比较case后面的值, 直到遇到break为止。第二种:循环结构 如果有一件事情,需要多次重复执行, 此时就考虑使用循环结构。 J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民用爆炸物品安全员培训课件
- 民法肖像权课件
- 大学军事考试题目及答案
- 我国新质生产力的发展趋势
- 河南新质生产力先锋图谱
- 民族课件边框
- 新质生产力主题写作:标题技巧
- 新质生产力企业立意高远
- 培养新质生产力的时代意义
- 新质生产力发展倡议书撰写指南
- 信息安全岗位竞聘
- 食品经营许可和备案管理办法培训2024
- 住院患儿实施院内转运临床实践指南2023版课件
- 打包机吊装方案
- 如何列好小说提纲
- 【新教材】部编道德与法治六年级上册-全册-表格式教案教学设计
- 文言实词本义引申义
- 07J902-3 医疗建筑(卫生间、淋浴间、洗池)
- 2024年电工(高级技师)职业鉴定理论考试题库-下(多选、判断题)
- 2024年网上大学智能云服务交付工程师认证考试题库800题(含答案)
- 公共数据交换技术规范
评论
0/150
提交评论