算术运算测试与评分 java_JAVA基础之四 - 珊珊的济南测试故事 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

复习:一、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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值