欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java数据类型和运算符,java数据类型

来源: javaer 分享于  点击 47380 次 点评:219

Java数据类型和运算符,java数据类型


Java开篇 第一章主要简单介绍了一下java的基础知识 介绍          知道java是一种可以跨平台面向对象的程序设计语言 组成          JRE=JVM+类库          JDK=JRE+工具类 Java由四个方面组成: 体系 特点 Java虚拟机 垃圾回收机制 Java运行过程  JavaSE整理结构 项目开发命名规范 eclipse创建java项目需要注意的命名规范 标识符的命名规范 注意:          在起名字时,为了提高阅读性,要尽量见名知意数据类型 Java是一种强类型语言,对于每一种数据都定义了明确的数据类型, 数据类型分类: 注意:          整数默认是int类型          浮点数默认是double类型          长整形后缀必须用Ll标记,建议使用L          单精度(float)数必须用Ff标记,建议使用F
  1. 引用数据类型(,接口,数组)
数据类型的转换 默认数据类型转换 从小到大的转换 强制类型转换 大的数据类型转换为小的数据类型 格式:          目标数据类型 变量 = (目标数据类型) (被转换的数据) Eg:int intNum = (int)num; 面试题:       byte b1=3,b2=5,b; b =b1+b2; b=3+5; 哪句是编译失败的,为什么失败??? :b=b1+b2这行代码有问题,因为变量相加,会首先看类型,也就是说b=b1+b2的数据类型会提升为int类型,也就是说int类型的(b1+b2)赋值给byte类型的b,,强制类型转换错误,所以有问题.b=3+5.首先把结果计算出来,然后看是否在byte数值范围内,如果在其范围就不报错.          int charA ='0'+1;               //ASCII:'a' 97 'A' 65 '0' 48  System.out.println(charA);      // 49 System.out.println(‘a’+1);    //98 System.out.println(‘a’+1+”Hello”);  // 98Hello 成员变量 成员变量:作为类的成员而存在,直接存在于类中. 局部变量 局部变量:作为方法或语句块的成员而存在,主要存在于方法参数列表和方法定义中 面试题: Java中成员变量与局部变量的区别?     static{         System.out.println("=====静态代码块=====");     }     {         System.out.println("========构造代码块==========");     }     public static void main(String[] args) {         //实例化         StaticDemo demo = new StaticDemo();         System.out.println("=========普通代码块========"); } 静态代码块优先于构造代码块执行 Java运算 算术运算 +, -, *, /, %, ++(前置):先运算后取值 ++(后置):先取值后运算 --(前置):先运算后取值 --(后置):先取值后运行 Eg:           System.out.println("相加运算:"+(a+b));  //12       System.out.println("相减运算:"+(a-b));  //4       System.out.println("相乘运算:"+(a*b));  //32       System.out.println("相除运算:"+(a/b));  //2       System.out.println("取模运算:"+(a%b));  //0       /*        * ++(前置):先运算后取值          ++(后置):先取值后运算           --(前置):先运算后取值           --(后置):先取值后运行        */ //c=9 ,a=9       System.out.println("前置++运算:"+(c=++a)+"输出a的值:"+a); //c=8, a=9       System.out.println("后置++运算:"+(c=a++)+"输出a的值:"+a); //d=3, b=3       System.out.println("前置--运算:"+(d=--b)+"输出b的值:"+b); //d=4, b=3       System.out.println("后置++运算:"+(d=b--)+"输出b的值:"+b);  注意:          如果对负数取模”%”,可以把模数负号忽略不记Eg:5%-2=1,但是如果被模数是负数则不可以忽略. 练习题:       从控制台输入一个4位数的整数,实现反转进行输出?       //从控制台输入一个4位数的整数,实现反转进行输出?       System.out.println("请输入一个四位数的整数:");       Scanner scanner = new Scanner(System.in);       int numSor = scanner.nextInt(); //4321 ===>1234       /*        * 分析:        *  int g = 12%10 = 2 //取模操作得到个位 ==>两位数得到个位上的数        *  int sg = 123%100 = 3 //取模操作得到个位 ==>三位数得到个位上的数        *  int s = 12/10=1 //除法操作得到十位        *  int ss = 123/10%10 //十位        *         */       int g = numSor%10;        int s = numSor/10%10;       int b = numSor/100%10;       int q = numSor/1000;       System.out.print(g+" "+s+" "+b+" "+q);       System.out.println(g*1000+s*100+b*10+q);          逻辑运算符 &&:短路逻辑与 ||:段路逻辑或 !:逻辑非 位运算符 <<:左移 >>:右移 >>>:无符号右移 & :逻辑与 |:逻辑或 ^:逻辑异或 ~:取反      注意:          位运算符是直接二进制进行运算[只是针对int类型的数据有效]  Integer.toBinaryString(n); //将十进制转换为二进制 Eg: public static void main(String[] args) {    int a = 3;    int b = 2; //1 ===>3/2=1    System.out.println("右移运算:"+(a>>1)); //12 ===>3*2*2=12    System.out.println("左移运算:"+(a<<b)); //1 ===>3/2=1    System.out.println("无符号右移运算:"+(a>>>1));  System.out.println("与运算:"+(6&3)); //2    System.out.println("或运算:"+(6|3)); //7    System.out.println("异或运算:"+(6^3)); //5    System.out.println("取反运算:"+(~b)); //-3    int x=3;    int y=4;    System.out.println("与运算:"+(3&4)); //0    System.out.println("或运算:"+(3|4)); //7    System.out.println("异或运算:"+(3^4)); //7    System.out.println("取反运算:"+(~3)); //-4       //3的二进制: 00000011    //左移:[3<<2]===>00001100 //    //右移:[3>>2]===>00000000 00000000 00000000    //右移:[-3>>2]==>11111111 11111111 11111111 -3/2=-1    //无符号位右移[3>>>2]===>0    // 4的二进制: 00000100    //&与运算规则:00    //|或运算符规则:11    //^异或运算规则:相同则0,异同则1 ^[异或面试题]: //^[异或]的特点: //一个数据位异或两次,该数本身不变    System.out.println(5^6^5);   //6    System.out.println(5^6^6);   //5    //面试题:实现对两个整数进行交换    int mun1=20;    int mun2 = 30;    //第一种实现思路[开发过程中经常用到]:通过一个中间变量来交换    int temp=0;    temp =mun1// ===>20    mun1=mun2// ===30    mun2=temp// ===>20    //第二种实现思路[用位异或实现]    mun1 = mun1^mun2;    mun2 = mun1^mun2; //mun1^mum2^mun2 ===>mun1    mun1 = mun1^mun2; //mun1^mun2^mun1 ===>mun2 //第三种 num2=num1+num2; num1=num2-num1; num2=num2-num1;      //取反规则:数值(正数,负数)1取反    //左移规则:m<<n:整数m表示的二进制数左移n[3<<2],高位移出n为都舍弃,低位补0(此种情况会出现整数变负数)    //左移计算方式:<<左边的数据乘以2的的移动次幂    System.out.println(3<<2); //==>3*2*2    //右移规则:m>>n:整数m表示的二进制右移n,m为正数,则高位全部补0,m为负数,则高位全部补1    //右移计算方式:>>左边的数据除以2的的移动次幂    System.out.println(24>>2); //==>24/2/2=6    System.out.println(24>>>2); //==>24/2/2=6    } 练习题: System.out.println(8>>1);   //4    System.out.println(8<<2);   //8*2*2=32    System.out.println(3+5>>1);  //4    System.out.println(3+(5>>1)); //3+5/2=5 比较运算符 ==, !=, <, >, <=, >= 比较运算符返回的是boolean类型的结果 注意: 三元运算符 格式: A(条件表达式)?表达式1:表达式2 运算规则: System.out.println((8>6)?”8大于6”:”8不大于6”);    

相关文章

    暂无相关文章
相关栏目:

用户点评