《JAVA基础知识web应用三大框架详细.doc》由会员分享,可在线阅读,更多相关《JAVA基础知识web应用三大框架详细.doc(136页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、day1linux unix 命令: ls:显示用户主目录的所有子目录;相对路径:相对于当前位置的描述一个文件绝对路径:从操作系统中显示文件的位置;pwd:显示用户当前所在的路径rm -rf 文件名rm -rf suns 删除一个文件夹并包括所有文件soft01localhost /$ lsbin dev home lost+found misc net proc sbin srv tmp varboot etc lib media mnt opt root selinux sys usrsoft01localhost /$ pwd/soft01localhost /$ cd soft01lo
2、calhost $ lsDesktop EIOffice EIOfficelog.txt Firefox_wallpaper.png tmp workspacesoft01localhost $ cd soft01localhost $ cs /bash: cs: command not foundsoft01localhost $ cd /soft01localhost /$ cd /home/soft01soft01localhost $ cd /soft01localhost /$ cd homesoft01localhost home$ cd soft01soft01localhost
3、 $ cd /soft01localhost /$ cdbash: cd: command not foundsoft01localhost /$ cd soft01localhost $ 2 JAVAA) java语言基础java 语言特点.简单相对于C+2. 面相对象编辑思象有(封装多态继承). java夸平台性java编写的代码一次编写到处运行 write once run anywhere) . 任意的硬件平台 .任意操作系统中执行 .任意的服务器软件中 .可以连接任意的数据库java 语言的特性.编译性高级编程语言 C 源文件 编译器软件 机器码 特点 : 软件的执行效率高 不能夸平
4、台 2 . 解释性高级编程语言 javascript per1 源文件 解释器 机器码 特点: 软件的执行效率低 能夸平台 java 先编译 后解释 源文件.java 编译器 字节码文件.class 解释器 机器码开发步骤 1. jdk java development kit java开发套件 jdk8 jdk7 jdk6 jdk 工具 jre java运行时环境(类库和虚拟器(jvm)java 继承开发环境 eclipse(IBM公司开发的)eclipse位置/opt/eclipse运行exlipse .eclipse注释 : 在代码中书写一些描述性质的文字 用于描述代码的功能 1. 单行
5、注释 / 2. 多行注释 /* */ 3. javadoc注释 只想给用户看注释 不想给用户看源代码 javadoc注释 可以只给用户 javadoc注释,可以把源代码中 的注释提取出来,会把注释放置在一个html(网友)中 /* */ 注意 只能写在类和方法的上面 恢复乱码 -encoding UTF-8 -charset -UTF-8 SUN javadoc注释的名字叫APIday2-包 package 包 :解决文件命名冲突的问题。本质就所一个文件夹 类的全限定名:suns.Test 包的命名:原则上随便,但是 包名不能用JAVA。 公司开发过程中:本公司域名反写命名包。 命名是com.
6、tarena标识符 起名字 1. 字母 数字 _ $ 首位置不能所数字 2.java 严格区分大小写 3. 不能使用java中的关键字与保留字 约定俗成的习惯: 类 :首单词首子母大写 TestJava。 变量:一个单词全部小写 多个单词的话 首单词小写后续的每一个单词首字母大写testJava。 方法:与变量一致。 接口:与类一致。 常量: 全部大写 如果有多个单词单词与单词之间用_连接 TEST_JAVA。 望文生义变量: 就是内存中开辟一个空间用于存储数据 1. 程序运行在那里? 内存里 2.程序处理是什么?数据 程序必须要存储在内存里 变量名:就是内存空间的名字 变量要素 1.变量类型
7、 变量名 变量值。变量类型: 1. 基本数据类型 二进制 0 1 八位代表一个字节 8种: 整数 byte 128127 -2727-1 一个字节 8位 short -3276832767 -215215-1 两个字节 16位 int - -231231-1 四个字节 32位 long -263263-1 八个字节 64位 long a=10L; 注 在JAVA中表示 8进制 0开头 16进制 0x开头 0x1F 注 字面值:一种变量类型 可取的有晓值Integer.toBinaryString() java 帮助我们把十进制转换成二进制 浮点数(小数) float (单精度浮点数) 4个字节
8、 32位 float f=10.2f; float f=10.2F; double (双精度浮点数) 8个字节 64位 double d=10.2;或者 double d=10.2D; double d=10.2d; 注:1. . 浮点数所可以用科学计数法表示。 2. 丢失精度 布尔值 boolean true false 字符 char 字面值3种方式 1 char c=A; 2 char c=65; 3. unicode 编码 uxxxx 转意字符 : 字符的原始含义改变表达了新的含义 n换行 t退格 原样输出 是转意字符 再加上一个就原样输出 2. 对象数据类型 无穷无尽 String
9、字符串类型转换 自动类型转换 小类型的数据可以自动转换成大类型的数据 运算过程中的过程中的类型提升 如果参与运算的双方 其中一方为int 其运算结果为int 如果其中有一方为long 其运算结果类型为long 如果其中一方为float 其运算结果类型为float 如果 其中一方为double 其运算结果类型为double 剩下其运算结果为int 注 : 只有有变量参与的运算才会产生类型的提升 值的运算没有类型的提升。 short a=1; int b=a+1; char c=A+1; 结果 c为B 强制类型转换 short b=1; int a=(int)b; 运算符 1. 赋值运算符 2.算
10、数运算符 -* / (模取余) 表达式:由变量常量运算符组成的式子 整数/整数 结果永远是取整数 只有浮数/整数是才会取小数 double c=10/20 ; 结果为0; double c=10.0/20;结果为 0.5; i+=2;与i=i+2;差不多 byte i=10; i+=2; i+ 与+i都是在原有的变量i的值+1 如果i=10 i+这个表达式的值为10(即i原始的值);+i 这个表达式的值为11(即i+1后的值); 逻辑运算符 与 两边都为真 就真,两边有一个为假就为假。 (一方为false 结果为false) 或 一方为true 结果为true & 短路与 与结果一致 短路或
11、与结果一致 比较运算符 比较运算结果为boolean = = = != Math.pow(arg1,arg2);作用所、是获得一个数字的次幂,arg1:具体想获得次幂结果的数字。arg2:次幂。Math.pow(5,2)结果为 25.0day3 获取随即获得一个整数 java.util.Random r=new java.util.Random(); int num=r.nextInt(26);即是获得0,26)之间的数,char result=Anum;局部变量 :在方法内部定义的变量 就是局部变量 1. 在使用时必须先赋值 后使用。 2.局部变量的有效范围: 从定义局部变量的位置开始,到定
12、义局部变量的代码块为止 在这个区域内 局部变量有效。 3. 局部变量在同一作用范围内 不允许命名冲突。 public static void main(String args) System.out.println(i);/错误 int a=12; System.out.println(a);/错误 int i=10; System.out.println(i);/正确 注: 方法的形式参数也所局部变量String(字符串)基本使用 1. 区别char 只能是单个字符 String 可以是多个A AAAA 2. 字符 char 基本类型 字符串 对象类型 注意 :1. String s=s;/
13、正确 字符只能是一个字母 字符串只要双引号括起来 都叫字符串 2. 字符串的连接 + 3.连接其.他变量、数据 也用+ 程序的流程控制 1. 顺序流程 2. 条件分支 1. if() 2.if() else 3. 多路分支 if() else if() else if() else switch语句 switch(n)case n: 语句1; break;case n: 语句2; break; default: 语句3; n 只能是 byte short int char 中的一 种 JDK7中可以用String 类型 default 位置灵活 随便放 3.循环流程 1 while(条件) 2
14、 do语句 while(条件) do while 与while 的区别 不满足循环条件的时候 while 不执行循环体代码 do while 至少执行一次循环体代码 3 for(循环变量;循环条件;循环增量) break 停止循环 continue 停止本次循环 标签循环 lab1:for(int i=0;i3;i+) lab2:for(int j=0;j10)return; day5day5 数组 array :可以一次定义多个变量 存储数据数组语法 int i=new int3; int 表示数组类型。i:数组变量名,数组变量。 注 数组下标 从0开始 .连续的 数组变量i没存数据 ,存储
15、的是 数组的特点 1. 开辟的内存空间是连续的 2. 数组变量存储的数组内存中的首地址 3. 数组空间一旦开辟 不可扩充 不可减少数组元素的默认值:没有为数组元素赋值,数组元素就会有一个默认值 int 0 byte 0short 0long 0float 0.0double 0.0boolean falsechar String null对象类型的数组的默认值 为null数组的遍历 :按照莫中顺序依次使用数组的每一个元素数组长度 :数组创建元素的个数。int a=new int10;数组长度 a.length 遍历数组时使用数组长度 int i new int2; 第二种方式 int a=1,
16、2,3;数组定义第三种元素 int i=new int 4,5,6;1. 现象 a)数组下标越界 :arrayIndexoutofBoundsException b)数组变量 存储 内存中的首地址2. 数组的扩充 1. a)创建新的更大的数组 b)把老数组中的copy到新的数组中 2. 一个方法System.arraycopy(老数组,0,新数组,0,老数组.length); 3. 数组扩充的第三种方式 java.util.Array.copyof(老数组,新数组的长度);返回值 新数组 jdk6.0之后可以用数组排序 : 1. 选择排序 2.冒泡排序 3.排序函数 java.util.Arr
17、ays.sort(int);day6java 是第一门完全面向对象的语言 1.类和对象 类: 一类事物,抽象的概念对象:一个事物,具体的概念2.如何去描述一个类特征和行为属性和方法3.java 当中如何描述一个类?class 类名属性(变量):方法方法 返回类型 方法名字(形参列表)方法体4.类和对象的关系类:类是对象模板对象:是类的一个个体,一个实例。5.对象(1)声明对象类名 对象名 (2)创建一个对象(让系统给我们的对象开辟内存空间) 对象名new 类名()不标准对象名new 构造方法()企业标准写法先声明对象: 类名 对象名 Person person;创建对象实例: 对象名=new
18、构造方法();person=new Person(); (3)如何访问对象的属性和方法 a.访问属性:对象名.属性名 b.访问方法:对象名.方法名给属性赋值person.name= ;person.age=22;person.money=;总结:真实的企业开发 先分析现实当中问题 建模创建类创建对象类就是一个模板,对象才是真正执行的部分。6. 构造方法(为了给对象的属性赋初始化的值更方便)(1)方法名跟类名一致 (2)方法没有任何返回值 (3)一般创建对象的时候调用(类名 对象名new 构造方法() (4)每个对象如果我们程序员没有制定构造方法的话,系统给默认给我们创建一个空的构造方法, 空的
19、构造方法,没有参数,没有方法体的构造方法,如果我们写了自己的构造方法,系统提供的构造方法将被覆盖掉7. this:指当前的对象8. 面向对象编辑特征多态(事物在不同的情况下有不同的表现) java 语言当中,多态包含方法的重载,方法的重写 方法的重载:同一个类的内部,方法名一样,参数不一样(参数的个数一样,参数的类型不一样,参数对应的顺序不一样)构造方法重载:9. 三元运算符(表达式1?表达式2:表达式3)刘英谦 day71.java当中的值的传递返回类型 类名(参数列表)方法体参数列表:一般类型(int double char float .)引用类型:2.类和类的三种关系1.依赖:一个类的
20、功能依赖另外类来实现 练习 人类: 属性: 姓名 年龄 方法:骑车 车类: 属性:名字 速度 颜色 方法:启动 加速 刹车 public class Car String name;int speed;String color;public Car(String name,int speed,String color)this.color=color;this.name=name;this.speed=speed;void addSpeed()this.speed=this.speed+10;void run()System.out.println(当前的速度是+this.speed);voi
21、d stop()this.speed=0;System.out.println(停车+this.speed);public class Person String name;String age;public Person(String name,String age)this.age=age;this.name=name;void drive(Car car)car.addSpeed();car.run();car.stop();public static void main(String args)Person person=new Person(刘,20);Car car=new Car
22、(000,0,蓝);person.drive(car);2.聚合:3.继承:面相对象编程最核心的思想之一。 练习 学校管理系统(老师 and 学生) 老师类: 属性: 姓名 年龄 性别 工资 方法:学习 上课 学生类 : 属性 : 年龄 性别 年龄 班级 分数 方法: 学习 游戏 先不写构造方法(继承当中构造方法比较特殊)。 人类(老师和学生共有的部分)。public class Person1 String name;String sex;int age;void study()System.out.println( this.name+每天学习到10点半不解释);public class
23、Studnet extends Person1int score;String classes;void playGame()System.out.println(专打CF);public class Teacher extends Person1double salary;void teacj()System.out.println(我的地盘我作主!);public static void main(String args)Teacher te=new Teacher();te.name=刘英谦;te.age=0;te.salary=;te.sex=男;te.study();te.teacj
24、();System.out.println();Studnet student=new Studnet();student.name=我;student.age=10;student.score=100;student.classes=10001;student.study();student.playGame();真实的企业开发中大部分,都是别人已经写好的类,然后我们去继承别人写的类,继续写我们的类,好处是可以节约我们的代码。(java开发永远所站在别人的肩膀上)extends 继承 最初的一个类 包含了老师和学生的共有信息 ,让老师类和学生类都继承最初这个类,这样共有的就不用写了。设计游戏
25、中的人物(player boss)Player 属性 : hp mp name x y方法 :向左移动 向右移动 跳Boss:属性 :hp name x y方法:向左移动 向右移动抽象一个父类Role:属性:hp name x y方法:向左移动 向右移动package game;public class Role int hp;int x;int y;String name;void left()x-;void right()x+;public Role(String name,int hp,int x,int y)this.hp=hp;package game;public class Bo
26、ss extends Role /构造方法不能继承,只能引用/public Boss(String name,int hp,int x,int y)super(name,hp,x,y); package game;public class Player extends Role int mp;public Player(String name,int hp,int x,int y,int mp)super(name,hp,x,y);this.mp=mp;void jump()for(int i=0;i5;i+)this.y+;System.out.println(this.y);for(int
27、 i=0;i5;i+)this.y-;System.out.println(this.y);package game;public class Test public static void main(String args)Boss boss=new Boss(,1,1,1);boss.hp=100;boss.name=怪物;boss.x=12;boss.y=24;boss.left();boss.right();System.out.println(boss的坐标,x=+boss.x+y=+boss.y);Player player=new Player(,45,46,4694,46);p
28、layer.hp=100;player.mp=100;player.name=玩家;player.x=100;player.y=100;player.jump();继承当中的构造方法聚合:一个类是由其它几个类聚合而成(属性)package com;public class Cpu double hz;String name;public Cpu(double hz,String name)this.hz=hz;this.name=name;int add(int a,int b)return a+b;double add(double a,double b)return a+b;package
29、 computer;public class Cpu extends DianNaopublic Cpu(int a,int b)super(a,b);int add()return this.a+this.b;package com;public class Computer Display display; Cpu cpu; public Computer(Display display,Cpu cpu) this.display=display; this.cpu=cpu; /开机 void showC() this.display.show(); /计算 void cale() java.util.Scanner input=new java.util.Scanner(Syst