最优模式学习编程(第1章Java基础)谭东编写.docx_第1页
最优模式学习编程(第1章Java基础)谭东编写.docx_第2页
最优模式学习编程(第1章Java基础)谭东编写.docx_第3页
最优模式学习编程(第1章Java基础)谭东编写.docx_第4页
最优模式学习编程(第1章Java基础)谭东编写.docx_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

最优模式学习编程(第1章Java基础)最优模式学习编程(Java Web开发与Android) 用文字总结就是: 1.Java基础:5天 2.Java面向对象:5天 3.Java核心:10天 4.Java项目:5天(此项目结合java期间所学的大部分技术和知识,能够让你理论结合实际运用) - 5.数据库:3天 - MySQL(想学oracle的也是3天) 6.JDBC:3天(数据库和java结合) 7.XML:2天 - 8.HTML:2天 9.CSS:2天 10.JavaScript:2天 - 11.Servlet/JSP:9天 - 12.注意:学习安卓的这里可以跳过,学习Java Web开发的看这里: 3大框架学习阶段:Struts、Hibernate、Spring 每个框架各需4天(学习安卓的可以将此阶段放到最后) - 13.Android核心I :7天 14.Android核心II :7天 15.Android高级:6天 16.T-Manager项目:10天 17.T-Game项目:10天 18.T-Solo项目:10天 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 第1章 Java基础 Java Basic(5days) Day01 Java简介、变量、二进制 1.Java语言简介 1.1 Java平台分类: JavaSE:Java标准版,Java基础部分 JavaEE:Java企业版(Servlet/JSP,Struts2,Hibernate,Spring框架) JavaME:Java微型版 - Android 1.2 Java语言的特点: 1)简单:具有简单的语法,舍弃了多重继承、运算符重载等,具有垃圾回收的特性 2)安全:不使用指针,避免了直接操作内存 3)面向对象:OO,一个纯粹的面向对象的编程语言,具有封装、继承、多态等特征 4)跨平台:一次编写,处处运行。Java程序编译后可以运行在各种平台上 1.3 Java为什么能够跨平台, 1)JVM - Java虚拟机,用于解析和执行Java代码,各个平台都有自己的JVM 2)字节码 - 是与平台无关的指令,包含在.class文件中 过程: .java源文件-javac编译-.class字节码文件 可以运行在各种平台的JVM中 1.4 JVM、JRE、JDK的关系 JVM - Java虚拟机 JRE - Java运行时(环境),JRE = JVM + JavaSE API (在用户环境下,Java程序只需要JRE即可) JDK - Java开发工具包,JDK = JRE + Java Tools JDK主目录bin: 包含java开发工具,如javac.exe,java.exe lib: 包含Java SE API,如rt.jar JRE=JVM+JavaSE API JDK=JRE+Java Tools 1.5 开发工具 1)记事本+命令行(配置Java环境) Java环境变量: JAVA_HOME 设置JDK的主目录 CLASSPATH 设置Java类库的位置 ,.;%JAVA_HOME%lib PATH 设置可执行文件的路径,.;%JAVA_HOME%bin SRC 源文件夹(Source Folder)包是用来管理类的 测试Java环境:c:/java -version 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 2)Eclipse - 一个Java集成开发环境 a. 工作区:Workspace,用于管理Java工程 b. 工程: Project,目前使用Java Project c. 版面:由相关的多个视图组成 d. 源文件夹:Source Folder,用于存放Java源文件,默认的源文件夹是src 2.Java程序的基本结构 2.1 Java源文件 是一个以.java结尾的文本文件,包含package语句、import语句和类的定 义: 如程序目录为:day01HelloWorld.java 则程序内容开头应写为: package day01; / day01的包 public class HelloWorld /类名和文件名必须一致 2.2 package语句: 用于指定类所在的包名,Java源文件放在与包同名的目录下。 package day01;-Java源文件放在srcday01下 可以在包中使用.分割: package day01.homework; - Java源文件放在srcday01homework下 2.3 类的定义: public修饰的类称为公有类,公有类的类名需要和Java源文件名称保持相同。 一个Java源文件可以包含多个类的定义,但至多能包含一个公有类。 2.4 主方法 又称为入口方法,Java控制台程序在运行时执行的方法: public static void main(String args) . 2.5 命名规则: 类名通常以大写字母开头, 方法名通常以小写字母开头, 关键字区分大小写,如public 2.6 方法中的语句以分号结尾 2.7 Java程序的编译和运行过程: a. javac.exe将Java源程序编译为字节码文件: Demo1.java-Demo1.class b. 每次运行Java程序时,首先启动一个单独的JVM进程(由java.exe提供) 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 c. JVM加载字节码文件,并进行安全校验 d. JVM将字节码二次编译为平台相关的机器码: .class - 平台相关的机器码 e.JVM调用主方法,运行程序并输出结果 3.掌握变量的使用 3.1 什么是变量, 用于存储一个变化的数据,运行时变量在内存中有对应的存储单元 3.2 声明变量: 数据类型 变量名称; 常用的数据类型有int,double等 变量名称中可以使用字母、数字、_、$,但不能以数字开头: int _age; double $salary; int v1, v2; 3.3 变量的初始化:第一次给变量赋值称为初始化 int v3=65; v1 = 100; 3.4 使用变量: v1 = v1 + 1; v2 = v3; System.out.println(v3); 重要规则:局部变量(方法中定义的变量)必须初始化之后才能使用。 Task:交换两个变量的值 4.二进制基础: 4.1 常用的进制: 1)十进制:0-9,逢10进1 2)二进制:0-1,逢2进1, 计算机内部数据采用二进制表示,1个字节(byte)由8个二进制位(bit)组成 int a=30; -1个整数在内存中占4个字节 0000 0000 0000 0000 0000 0000 0001 1110 char ch = A; -1个字符在内存中占2个字节 0000 0000 0100 0001 3)十六进制:0-9,a,b,c,d,e,f, 每4位构成1个十六进制数位 二进制 十进制 十六进制 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 0000 0 0x0 1001 9 0x9 1010 10 0xa 1111 15 0xf 定义十六进制的变量: int a = 0x0000001e; 4.2 二进制和十进制的转换: 1)二进制-十进制 关键理解二进制数位的权: 128 64 32 16 8 4 2 1 0 1 0 0 0 0 0 1 =1*2(0)+0*2(1)+1*2(6)+0*2(7)=65(十进制) Task:1000个苹果放在10个箱子中,客户无论取多少个苹果,都可以整箱提供,而不必拆箱。问苹果如何分配到箱子中, 1 2 4 8 16 32 64 128 256 489 二进制0011 1011 = 1+2+8+16+32=59 2)十进制 - 二进制:依次寻找最接近的权 64 32 16 8 4 2 1 十进制59 - 0 1 1 1 0 1 1 27 11 3 1 4.3 二进制和十六进制的转换: 二进制 - 十六进制:每4位对应一个十六进制数位 0011 1011 0x3b = b*16(0)+ 3*16(1) = 59 十六进制 - 二进制 0x4f 0100 1111 5.Integer类中与进制转换有关的方法: String toBinaryString(int num) - 将num转换为二进制形式的字符串 String toHexString(int num) - 将num转换为十六进制形式的字符串 int parseInt(String s,int radix) - 将指定进制(radix)形式的字符串转换为整数 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 Day02 基本数据类型 - 内容回顾: 1)Java语言的特点:简单,安全,面向对象,跨平台 2)Java平台无关性:JVM,字节码(.class) 3)JVM,JRE=JVM+JavaSE API,JDK=JRE+Java Tools 4)Eclipse: 工作区,项目(Java Project),包 5)重点:Java程序的基本结构 src/day01/homework/HomeWork1.java package 语句; 类的定义 - 公有类的名称和源文件名称保持相同 主方法 - main方法 6)难点:变量的使用 - 声明,初始化,变量赋值,使用变量 *局部变量必须在初始化时候才能使用 7)难点:二进制基础 a. 二进制、十六进制的表示方式 b. 进制的转换 c. Integer类的相关方法: String toBinaryString(int n) String toHexString(int n) int parseInt(String s,int radix) 如int n=Integer.parseInt(ff,16);/n=255 8)System.out.Println();快捷键:sysout+alt+右斜杠 9) Integer类的相关方法: String toBinaryString(int num) String toHexString(int n) int parseInt(String s,int radix) 以上为将字符串转换成整数的 下面的是将各种进制转换为十进制 如 int n=Integer.parseInt(ff,16); / n=255 第一个参数的字符串要和第二个参数的属性一样 - 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 1. 补码 - 负数的二进制形式 1.1 补码 按位取反加一。(首先得到对应正数的二进制形式,然后按位取反加一) 例子:-45: 45对应的二进制是: 0010 1101 按位取反 1101 0010 -45 - 1101 0010 加一 - 1101 0011 负数的二进制表示形式就是补码形式(按位取反加一) 2. 编程相关 2.1 文档注释 /* 文档注释,用于类和方法前 . */ 2.2 Eclipse常用的快捷键: ALT+/ : 智能产生补充代码至完整,(sysout,main,for,if) ALT+UP : 将代码向上移动一行 ALT+DOWN:将代码向下移动一行 CTRL+ALT+UP:将代码向上复制一行 CTRL+ALT+DOWN:将代码向下复制一行 CTRL+D:快速删除一行代码 CTRL+/:添加或取消单行注释 SHIFT+CTRL+/:添加多行注释 SHIT+CTRL+:取消多行注释 SHIFT+CTRL+F:格式化代码 SHIT+ALT+X,J:运行Java Project 课堂练习: 创建类Demo3,定义一个int变量,值为-128,分别输出对应的二进制和十六进制的字符串,添加适当的注释,练习使用各种快捷键 3. 数据类型 3.1 数据类型 基本数据类型:byte,short,int,long,float,double,char,boolean 引用类型:如Integer,String 3.2 基本数据类型的范围 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 基本数据类型:byte-字节类型,存储整数,占用1个字节,存储范围-128127 short-短整型,存储整数,占用2个字节(16位),存储范围 -2(15) 2(15)-1 Int - 整型,占用4个字节(32位),存储范围-2(31) 2(31)-1,约21亿+long - 长整型,占用8个字节(64位) float - 单精度浮点类型,占用4个字节 double - 双精度浮点类型,占用8个字节,精度较高 char - 字符类型,存储一个字符,占用2个字节 例如: char c1=A; char c2=中; 字符采用unicode编码,范围065535 A - 65 0000 0000s 0100 0001 09,AZ,az连续编码(与ASCII编码相同): 0 - unicode编码为48 A - 65 a - 97 boolean - 布尔类型,存储true ,false 4. 理解字面量 4.1 字面量 字面量又称为直接量,在语句中直接使用的数值或字符称为字面量。 int n=100; /100就是字面量 char c=A; /A就是字面量 数值类型的字面量 byte,short,int类型的字面量就是数值本身 short sh1=0x7fff;/十六进制的字面量面前使用0x,否则无法识别字面量 long类型的字面量以l、L结尾;(以小写或者大写L结尾) 例如: long num=1L; Float 类型的字面量以f、F结尾 float f1=1.5f; double类型的字面量以d、D结尾 double d1=3.14d; (浮点数的默认字面量类型为double类型) 字符类型的字面量使用单引号中的字符: char c1=A,c2=中;(char类型只能定义一个字符,不能定义多个字符串) 4.2 使用转义字符: n 换行 t Tab键,一般是4个英文字符的宽度 u十六进制Unicode编码 提供字符对应的Unicode编码 转义字符,这个表示一个字符单引号 (boolean类型的字面量只有true和false) 5. 数据类型的转换 自动类型转换:小类型自动赋值给大类型 大类型V1 = 小类型数据; 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 如int n=100;long num=n; char-long byte-short-int-long -float-double 强制类型转换: 小类型v2=(小类型)大类型数据: 如:int n=0x7f01; byte b=(byte)n; 可能损失数据精度 6. 使用Scanner接收控制台的输入 6.1 Scanner类: JavaSE提供的一个类,位于java.util包中(也叫工具包),提供了接收控制台输入的各种方法 如何使用Scanner类: 首先使用import语句导入包java.util import java.util.Scanner; 创建Scanner的对象: Scanner sc=new Scanner(System.in); 调用Scanner的方法获取相应的输入的数据; String next() -接收输入的字符串,不能包含空格 int nextInt() -接收输入的整数 doubble nextDouble() -接收输入的浮点数 例如:String name=sc.next();/对象.方法 作业: 创建Java程序,接收用户输入的一个整数,分别输出对应的二进制和十六进制的字符串 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 Day03 基本运算符 1.基本运算符 1.1 Java语句以;结尾 int a=100+200; Java表达式 a+1 true&false 无符号右移运算符 运算符是java表达式的组成部分 1.2 运算符的分类: 算术运算符 + - * / % 赋值运算符 = += -= *= /= %= 自增运算符 + - 关系运算符 = != = = 逻辑运算符 & | ! 三元运算符 exp?exp1:exp2 位运算符 & | 1.3 算数运算符 1) / 整除运算符 int v1=10/3; /3 double v2=10/3; /3.0 double v3=10.0/3; / 3.333 2) % 取模(整数后的余数) int v=10%3; / 1 3) 表达式中只有byte或者short类型,结果是int类型 byte v1=1,v2=2; byte v3=v1+v2; /编译不能通过 4) 表达式中小类型自动转换为大类型,表达式结果的类型由大类型决定 5) 表达式中字符串使用+(即字符串的拼接)从左向右进行结合 String s1=v=+100+200; /v=100200; String s2=100+200+v; /300v 1.4 赋值运算符 int a=1; int b=2; a+=b; /a=a+b; b%=a; /b=b%a; 1.5 难点:自增运算符 + - 1)后置的用法:a+ a- 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 规则:首先取出操作数a,然后对操作数进行加一或减一的运算,最后将第一步取出的操作数赋给=左边的变量 int a=1; int b=a+;/b=1,a=2 2)前置的用法:+a -a 规则:首先对操作数进行加1或减1的运算, 然后取出运算后操作数的值, 最后赋给等号左边的变量 int a=1; int a=+a;/a=2 int b=+a;/b=3,a=3 1.6 关系运算符 = != = 2;/关系运算的结果类型为boolean 1.7 难点:逻辑运算符 & | ! (逻辑运算符中的操作数必须是boolean类型) 1) & 逻辑与 boolean a=true,b=false; boolean c = a & b; 规则: a b c - true true true true false false false true false flase false false 2)| 逻辑或 boolean c = a | b 规则: a b c - true true true true false true false true true false false false 3)&和|又称为短路逻辑运算符,当第一个操作数 能够决定表达式结果时,不再使用第2个操作数。 boolean b = flase & (1/0=1); 4)! 逻辑非 规则: !true-false !false-true 1.8 三元运算符: 语法:boolean_exp1 ? exp2 : exp3 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 规则:当第一个操作数boolean_exp1为true时, 表达式的结果为exp2,否则为exp3 int result,a=1; retsult = (a=1) ? 100 : 0; 等价的if语句: if(a=1) result = 100; else result = 0; 1.9 运算符的优先级: 规则一: + - ! | 高 * / % | + - | 关系运算符= != = 按位右移运算,向右移动一个数位,相当于除2 int n=8;/0000 1000 n=n1;/0000 0100 特点:右移一位,相当于除2 4)按位左移运算,向左移动一个数位,低位补0 int n=15;/0000 1111 n=1; /0001 1110 0x1e=30=15*2 特点:左移一位,相当于乘2 int n=123456; n=n3;/相当于n=n*8 3. 程序结构: 3.1 分类 顺序结构 选择结构(分支结构):if,switch 循环结构:for,while,do.while 3.2 选择结构: 1) 语法一: if(条件) /语句体 特点:条件必须是一个布尔表达式, 满足条件执行语句体。 当语句体只有1条语句时候,可以省略大括号 Task1. 接收控制台输入的两个整数,输出最大值 2) 语法二: if(条件) /语句体1 else /语句体2 特点:条件满足时,执行语句体1,否则执行语句体2。else不能单独使用 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 3) 语法三: if(条件) /语句体1 else if(条件2) /语句体2 else if(条件3) /语句体3 else /语句体4 4) 嵌套if语句: if(条件1) if(条件2) . . else . . Task:判断一个年份是否为闰年, 计算闰年的规则:4年一润,100年不润,400年在润 3.3 循环结构中的for循环 1) 基本语法: for(exp1;exp2;exp3) /exp是表达式(表达式1,表达式2条件,表达式3) /语句体 Example: for(int i=1;i=100;i+) . . 2) for循环的执行过程:(先表达式1,然后表达式2条件,然后表达式3) for(int i=1,sum=0;i=100;i+) sum+=i; Step1. 执行exp1中的代码,用于初始化相应的变量 for(int i=1,j=100;) Step2. 判断exp2的条件(exp2必须是布尔表达式), 如果为true,执行Step3: 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 如果为false,结束当前for循环 判断条件i=100,满足条件执行Step3 Step3. 执行循环体: sum+=i;/将i累加到变量sum中 Step4. 执行exp3,一般用于处理循环变量的值 i+; 执行exp3之后,回到Step2 Task. 计算1到100之和 3) for循环变化的写法: a. int a=1; for(;a=100;a+) sum+=a; b. int a=1; for(;a=90 优秀 =80 优良 =60 及格 a,200-b 2) 调用没有返回值类型(void)的函数或过程: print(100); 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 3) 函数的执行过程: int nm=max(100,200) Step1. 将实参传递给对应的形参: 100-a,200-b 其中100,200是实参,a和b是函数max的形参 Step2. 执行函数max的语句体,此时形参的值是通过实参传递过来 的,形参此时是有具体值的 Step3. 执行函数体的代码,遇到return语句结束当前函数的调用 ,如: return 200; 并将函数的返回值传递给调用者: nm=200; Java Basic day04 homework: - 1. 输入一个数字,打印该数字的因式分解 如输入90 打印90=2*3*3*5 如输入80 打印80=2*2*2*2*5 2. 如果一个数等于其所有因子之和,我们就称这个数为完数, 例如:数字6的因子为1,2,3,而6=1+2+3,因此数字6就是一个完数。 请编程打印出1000以内所有的完数 3. 通过键盘输入数字,判断是否为素数,当输入-1时结束。 要求:把判断一个数字是否为素数写成独立的功能单元(即函数),函数名称为isPrimeNumber,返回值类型为boolean 4. 编写程序,将华氏温度转换成摄氏温度 要求:定义一个函数用于将华氏温度转换成摄氏温度,在主方法中从控制台输入华氏温度值,并输出对应的摄氏温度值。 例如:提示用户输入华氏温度值96, 则程序输出: 华氏温度值96F对应的摄氏温度值为36C(其中C代表摄氏温度,F代表华氏温度)。 华氏温度与摄氏温度转化的公式为: C = 5 (F - 32) / 9 Day05 数组的定义、复制和扩容及排序算法 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 1. 掌握数组的定义和使用 1.1 什么是数组, 1) 一组具有相同类型的数据,称为数组 使用数组可以更加方便访问和使用这组数据 2) 数组中的每一个数据称为元素,一个数组中元素的类型总 是相同的 3) 数组中的元素按照顺序存放,从0开始,称为序号或下标 1.2 数组的声明: int arr; /数组类型 , 数组名称arr,存放元素类型为int ,数组也为变量。等价于int arr/不常用 1.3 数组的初始化: 1) 静态初始化: int arr6=1,3,5,7,11,13; int arr6=new int1,3,5,7,11,13;/等价,只不过是省略 * 静态初始化必须在声明数组时完成 2) 动态初始化: arr1=new int10; int arr8=new int10; 动态初始化时在内存中开辟对应的空间,如 arr1在内存中占有40个字节的空间 每一个元素的值是对应类型的初值,可以0,0.0,u0000 ,false,null(引用类型的初值) - java.util.Arrays.toString(数组变量) -返回数组的字符串形式,形如e1,e2,. - 1.4. 使用数组的属性length 来获取数组中元素的个数 int n=arr1.length;/也称为数组的大小 1.5 数组的使用和赋值: 语法: 数组名称下标,下标范围0到length-1 超出下标的范围出现异常 char c=arr30; arr10=100; Task. 接收用户输入的10个学员的成绩,分别输出最大值和成绩的总和 Task. 将一个数组的元素以倒置的方式填充到另一个数组中 购买全套丛书加视频教程和案例代码请联系QQ 852041173 或访问博客学习更多知识 2. 理解数组的复制和扩容(难点) 2.1 复制数组的两种方式: 1) 使用Arrays的方法copyOf: 如: int a=6,7,8; int b=Arrays.copyOf(a,3);/将数组a的三个元素复制到数组b中。(超出补0) 2) 使用System的方法arrayCopy: (arr1-arr2) 方法arrayCopy具有5个参数: (1) 源数组arr1 (2) 源数组中的起始位置 (3) 目标数组arr2 (4) 目标数组中的起始位置 (5) 复制的元素的个数 特点:目标数组arr2需要初始化,复制之后不会改变目标数组的大小 3) 区分数组的复制和数组的直接赋值: int arr1=1,1,2,3,5,8; int arr=arr1;/将变量arr1直接赋值给arr 赋值后arr1和arr是同一个数组 但使用copyOf或arrayCopy复制后是两个不同的数组 arr14=0; -arr的第5个元素也变为0 2.2 数组的扩容 1) 数组定义后,长度不能改变 int a=1

温馨提示

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

评论

0/150

提交评论