复习:一、Java数据类型1、基本数据类型 8种也称为:简单类型、原生类型内存存储方式:字节 二进制位byte short int long char float double boolean1 2 4 8 2 4 8 1byte: -128 ~ 127char: 0 ~ 65535 既是字符 又是数字 unicode编码2、引用数据类型也称为:复杂类型、对象类型内存存储: 引用变量 -> 对象 (堆区)(对象的地址)JVM内存结构:1)Stack 栈区 局部变量(临时变量)方法中定义的变量是局部变量栈是一种先进后出的数据结构2)Heap 堆区 分配空间,创建对象 new3)Code 方法区 类的信息、静态资源JVM第一次认识类的信息:类加载 仅一次按照表现形式分为5种:类 接口 数组 枚举 标注class interface int[]JDK已经提供了很多引用类型:java.lang.String 字符串类java.lang.System 系统类java.lang.Integer int类型的包装类java.lang.Math 算术类java.util.Scanner 扫描器类...还可以自定义引用类型 class 类package day03;public class Student{String name;int age;public void study(String course){System.out.println(name + "学习" + course);}}如何使用引用类型? 直接new 创建对象 表示实例package day03;public class TestStudent{public static void main(String[] args){//引用类型 设计 实现 以及使用的过程//stu1就是对象的引用变量 内存地址Student stu1 = new Student();stu1.name = "Tom";stu1.age = 23;stu1.study("JavaSE");}}对象的气球理论:我们将对象比喻成一个充满氢气的气球,引用就好比连着气球的绳子。1)一根绳子同一时刻只能连着一个气球,就好比一个引用同一时刻只能指向一个对象。Student stu1 = new Student();Student stu2 = new Student();2)一个气球同一时刻可以被多根绳子连着,就好比一个对象同时可以有多个引用指向。Student stu3 = stu1;3)如果一个气球没有绳子连着,就会飞走。就好比一个对象如果没有引用指向,该对象就会成为系统的垃圾,等待着GC垃圾收集机制的回收。stu2 = null; 给引用赋值 null 值4)如果一根绳子没有连着任何气球,就如同一个引用不指向任何对象,此时为null.如果访问空引用的成员(属性、方法),会抛出一个异常:空指针异常异常名称: java.lang.NullPointerExceptionstu2.name = "";stu2.study("Web");3、void 只能用在方法的返回值类型中表示无返回值类型作业题:生成一个随机大写字母 'A' ~ 'Z'思路:1.先准备一个[0, 25]的随机整数double d1 = Math.random(); double [0, 1)0.0000xxx 0.999xxxd1 * 260.000xxx 25.xxxint num = (int)(d1 * 26);0 252.再使用'A' + 1 -> 常量 int 自动转为 char'A' + num -> 变量 结果 intint -> char 必须强制类型转换char randomChar = (char)('A' + num);3.最后打印输出randomChar在day04.homework包 创建TestRandomChar.java程序二、数据类型的转换在day04包下创建一个程序:TestTypeChange.java1、自动类型转换(1)常数在表数范围内能够自动转型字面值:123 'A'byte b1 = 1; //int -> byte [-128, 127]char c1 = 'A' + 1; //常量相加 还是常量 int->char// 65 + 1 -> 66 int -> char 'B'(2)范围小的能够自动向范围大的转换byte -> short -> int -> long -> float -> doublechar ->int n1 = 'a'; //char -> int 9(3)引用类型子类可以自动向其父类转换java.lang.Object类 是所有类的共同父类Student stu1 = new Student();Object obj1 = stu1; //Student -> Object(4)基本类型能够和包装类型之间互相转换 JDK5.0基本类型 包装类型 java.lang包下的类byte --- Byteint --- Integerdouble --- Doubleint n1 = 123;Integer in1 = n1; //int->Integer 自动封箱int n2 = in1; //Integer->int 自动解箱2、强制类型转换除了能够自动类型转换之外,都用强制类型转换语法: (数据类型) 常量、变量、表达式byte b2 = (byte)128; //int -> byte 超过范围128是int类型 4Byte = 32bite00000000 00000000 00000000 10000000int 强转为 byte 1Byte = 8bit保留低位字节,最右边10000000 byte 最高位1负数 补码01111111 + 1--------------10000000 -128256是int类型 4Byte = 32bite00000000 00000000 00000001 00000000int 强转为 byte 1Byte = 8bit保留低位字节,最右边 00000000 -> 0三、运算符和表达式运算符 operator 也称为操作符+ - * / = > < ...表达式 expression将数据结合运算符进行组合,形成实际业务中的运算代码。 比如:a +b a*b-c 1+2*3-4/6 a*(b-c)运算符:优先级:只需记忆常用的 其它使用( ) 提升优先级结合律:在相同优先级时,考虑从左->右,从有右->左计算,大多数都是从左->右。优先级从上到下递减:() . []() 提升优先级 (a+b)*c 先算a+b. 取成员运算符 好比“stu1的”的意思stu1.name stu1.study("JavaSE")[] 取数组的下标arr[0] arr[1] ...++ -- + - ! ~ ()day04包,TestPlusPlus.java程序 CPP C++ Plus 加++ 自加1运算符 只能针对变量int a = 1;前++ 先自加1,再取值int b = ++a; // b 2 a 2后++ 先取值,后自加1int b = a++; // b 1 a 2-- 自减1运算符前-- 先自减1,再取值后-- 先取值,后自减1+ 正号 5 +5 没有区别 正数的+一般省略- 负号 -5! 逻辑非 boolean flag = true; !flag 是false~ 位运算符 按位取反 0变1 1变0(数据类型) 强制类型转换算术运算符: Arithmeticday04包 创建TestAri.java程序* / %* 乘/ 除% 取余数+ -+ 加- 减移位运算符:(了解)<< >> >>><< 左移>> 右移>>> 无符号右移 注意:没有<< <= >= instanceof< 小于> 大于<= 小于或者等于>= 大于或者等于instanceof "是不是"用于引用类型变量和类型的比较判断对象是否为某种类型。== !=== 比较是否相等!= 比较是否不相等位运算符: 针对整数 按照 二进制位 进行运算在day04包创建TestBit.java程序byte a = 3; // 0000 0011byte b = 5; // 0000 0101a & b& 按位与 "有0则0,全1则1"0000 00110000 0101 & a & b--------------0000 0001 1^ 按位异或 "同0异1"0000 00110000 0101 ^ a ^ b--------------0000 0110 6| 按位或 "有1则1,全0则0"0000 00110000 0101 | a | b--------------0000 0111 7&既是位运算符,也是逻辑运算符 表示逻辑与(并且 and)| 既是位运算符,也是逻辑运算符 表示逻辑或(或者 or)逻辑运算符的结果 是 布尔值 true / false参与运算的数据 也是 布尔值需求:买手机,必须有相机,并且是3G手机,才考虑买,否则不买。分析:语法 if else 分支语句并且 逻辑与 &在day04包下创建TestAnd.java&& 短路与条件a && 条件b如果条件a为false,此时无需再判断条件b,结果为false优点:效率高如果条件a为true,还需要判断条件b如果条件b也为true,结果为true如果条件b为false,结果为false|| 短路或条件a || 条件b如果条件a为true,此时无需再判断条件b,结果为true优点:效率高如果条件a为false,还需要判断条件b如果条件b也为false,结果为false如果条件b为true,结果为true条件运算符: (三目运算符)条件表达式 ? 条件为true的值 : 条件为false的值?:需求:求出两个整数的最大值int a = 3, b = 5; 语法也对a > b ? a : b 表达式结果 5在day04包下创建 TestThree.java赋值运算符: = 一定优先级最低= *= /= %= += -= <<= >>= >>>= &= ^= |=其它都是复合赋值运算符a = 1;a *= 1; 等价于 a = a * 1;boolean b1 = 1*5-6/2*3 > 1 && 5>3;boolean b1 = (1*5-6/2*3 > 1) && (5>3);= 赋值 将等号右边的表达式 全部计算完成后再赋值给左边的变量b1学习思路:3W1Hwhat? 是什么?why? 为什么需要使用? 优点where? 应用场合?How? 如何使用?四、方法的设计和使用1、什么是方法在其它语言中,称为函数 function,在Java中称为方法 method:表示一段固定的业务代码,定义一次,可以重复使用方法有三个要素:方法名、参数表、返回值类型方法的实现:方法体 写业务代码2、方法的设计(1)声明 三要素 (方法的签名)public static int add (int a, int b)(2)实现 使用方法体实现方法业务代码public static int add (int a, int b){//方法体 方法的具体实现return a + b;}3、方法的使用 (方法的调用)特点:从哪里调用,就从哪里返回main方法:int a = 3;int b = 5
算术运算测试与评分 java_JAVA基础之四 - 珊珊的济南测试故事 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
最新推荐文章于 2021-07-22 17:59:55 发布