| 文档版本 | 开发工具 | 测试平台 | 工程名字 | 日期 | 作者 | 备注 |
|---|---|---|---|---|---|---|
| V1.0 | 2016.02.22 | lutianfei | none |
5、Java中的字符char可以存储一个中文汉字,因为java语言中的字符变量占用两个byte。
6、Java语言采用的是Unicode编码。
补充float存储格式
float类型数字在计算机中用4个字节存储。遵循IEEE-754格式标准:
一个浮点数有2部分组成:底数m和指数e
- 底数部分 使用二进制数来表示此浮点数的实际值
- 指数部分 占用8bit的二进制数,可表示数值范围为0-255
但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。
所以,float类型的指数可从-126到128底数部分实际是占用24bit的一个值,但是最高位始终为1,所以,最高位省去不存储,在存储中占23bit
科学计数法格式:
- SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
- S表示浮点数正负
- E指数加上127后的值得二进制数据
- M底数
举例:17.625在内存中的存储
- 首先要把17.625换算成二进制:10001.101
- 在将10001.101右移,直到小数点前只剩1位:1.0001101 * 2^4 因为右移动了四位
- 底数:因为小数点前必为1,所以IEEE规定只记录小数点后的就好。所以,此处的底数为:0001101
- 指数:实际为4,必须加上127(转出的时候,减去127),所以为131。也就是10000011
符号部分是整数,所以是0
综上所述,17.625在内存中的存储格式是:
01000001 10001101 00000000 00000000

注:整数相除只能得到整数,若想得到小数,只需将任意一个数据变为浮点数。
++,– :放在操作数前面,先自增或者自减,然后再参与运算。
放在操作数后面,先参与运算,再自增或者自减。
练习题1:
int a=10,b=10,c=10
a=b++; //a=10,b=11,c=10
c=–a; //a=9,b=11,c=9
b=++a; //a=10,b=10,c=9
a=c–; //a=9,b=10,c=8
练习题2:
int x =4
int y =(x++)+(++x)+(x*10)
step1: 4+ (x = 5)
step2: 4+6(x = 6)
step3: 4+6 +(6*10)
符号:
面试题
\\eg: 基本运算符例子class OperatorDemo{public static void main(String[] args){int x = 10;int a,b;a = b = 10;System.out.println(a);System.out.println(b);}}


“&”和“&&”的区别:
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。

注1: ‘~’需注意。eg:~3
注2:’^’的特点:一个数据对另一个数据位异或两次,该数据不变。
eg:
class OperatorDemo{public static void main(String[] args){int a = 10;int b = 20;System.out.println(a^b^b); //10System.out.println(a^b^a); //20}}
class OperatorTest{public static void main(String[] args){int a = 10;int b = 20;System.out.println("a:"+a+",b:"+b);//方式1:使用第三方变量(开发中最常用的)int c = a;a = b;b = c;//方式2:用位异或实现//结论:左边a,b,a; 右边:a^ba = a ^ b;b = a ^ b; // a^b^b = aa = a ^ b; // a^a^b = b//方式3:用变量相加的做法a = a+b; // a= 30b = a-b; // b= 10a = a-b; // a= 20方式4:一句话搞定b = (a+b) - (a=b);}}
示例:
练习2:获取三个整数中的最大值
class OperatorTest{public static void main(String[] args){int a = 10;int b = 30;int c = 20;int temp = (a>b)?a:b;//System.out.println(temp);int max =(temp > c) ? temp : c;System.out.println("max is "+max);//方法2:一步搞定int max1 =(a>b) ? ((a>c) ? a : c) : ((b>c) ? b : c);}}
import java.util.Scanner;class ScannerDemo{public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入一个数据:");int x = sc.nextInt();System.out.println("你输入的数据是:"+x);}}
if(关系表达式) {语句体}
执行流程
注意事项
if(关系表达式) {语句体1;}else {语句体2;}
执行流程
if的第二种格式和三元运算符之间的转换
eg:
//判断一个数据是奇数还是偶数,并输出是奇数还是偶数if(x%2 == 0){System.out.println("X is even");}else{System.out.println("X is odd");}
if(关系表达式1) {语句体1;}else if (关系表达式2) {语句体2;}…else {语句体n+1;}
原文:http://www.cnblogs.com/lutianfei/p/5213638.html