20160711
来源:互联网 发布:雅思听力技巧 知乎 编辑:程序博客网 时间:2024/06/05 11:46
/**1.整数常量2.小数常量3.布尔型常量4.字符常量5.字符串常量6.null常量*/class 笔记{public static void main(String[]agrs){//整数常量System.out.println(100);//小数常量System.out.println(200.5);//布尔型常量System.out.println(true);System.out.println(false);//字符类型常量System.out.println('A');//System.out.println('AB');错误的字符演示 //进制 二,八 用0开头,十,十六 用0x开头/* 电报:电子信号,电子状态开/关,01010101(二进制),多少个电状态表示一个数据:8个.这是国际标准组织规定,USA. 后来出现数字表示值,0和1表示电子的开和关状态. 每个信号就是一个位bit,8bit=1byte,1k=1024byte,1M=1024k,1G=1024M,1T=1024G 八进制:是将二进制从右到左每三位抽出来就是一个数据,不够三位,前面补零,最后再将得出的结果从左到右组成八进制 001 010 101 1 2 5 进制越高,数据越短;数据越短,人为读写越方便.*/ //十进制 System.out.println(60); //八进制 System.out.println(060); //十六进制 System.out.println(0x60); //八进制转换为十进制 System.out.println(074); //十六进制转换为十进制 System.out.println(0x3c); //二进制转换为十进制 这个不对 System.out.println(111100); /* 任意进制转换为十进制 123 系数:每一位上的数值就是系数, 权值:数据从右到左边索引值,以0开始到第n-1个 基数:x进制的基数就是x 任意进制转换为十进制的规则:系数*基数^权值 相加 二进制转换为十进制: 111100 1*2^5+1*2^4+1*2^3+1*2^2+0*2^1+0*2^0=32+16+8+4+0+0=60 八进制转换为十进制: 074 0*8^2+7*8^1+4*8^0=0+56+4=60 十六进制转换为十进制:0x3C 3*16^1+12*16^0=48+12=60 1 2 3 4 5 6 7 8 9 A B C D E F 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ /* 十进制转换为任意进制 12345 规律:数值除以基数直到商为0,最后将余数反转输出 */ /* 二进制转换为八进制:将二进制从右到左每三位组合成一个十进制数据 111100 111 100 7 4 *//* 变量:指在一定范围内可以改变的量.变量要求:数据类型必须定下 ,字符串不可以被赋值 变量类型怎么使用这个变量:给这个变量取个名字 变量名称变量类型 变量名称=变量值;变量作用范围:一对{}之间 定义一个初始值*//* 基本数据类型:0111 1111 以0开头,正数 127 正数的补码是其本身1111 1111 以1开头,负数 -128 负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后加1 所以最小数 的补码形式为1000 0000;所以取反后加1,即为0111 1111+1=1000 0000=128,又因为是负数,所以是-128 可以节省更多的内存 */ //byte类型//格式: 变量类型 变量名称 = 变量值byte by=127;//申明变量的第一种方式(赋值)(等于==)//byte by=128System.out.println(by);//申明变量的第二种方式byte by2;by2=1;//使用前赋值System.out.println(by2); by2=100;System.out.println(by2);//short类型short s=1;System.out.println(s);//int类型int i=250;System.out.println(i);//long类型 在数据后面加上大写的L或llong l=12345678901234L;System.out.println(l);//char类型char c='0';System.out.println(c);//boolean类型boolean b=true;//falseSystem.out.println(b);//错误的变量申明方式,变量名不能被重复//int b=250;//System.out.println(b); 笔记.java:140: 错误: 已在方法 main(String[])中定义了变量 b //int b=250; // ^ // 1 个错误 //float 在小数点后加F或ffloat f=12.34F;System.out.println(f);//doubledouble d=1234.12341234;System.out.println(d); /* public static void main(String[]agrs) java当中参与运算的数据必须保持类型一致*/ int i1=4;i1=i1+5;System.out.println(i1);//i1没有问题,正常输出=9 byte by3=3; int i2=4; i2=by3+i2;//隐式转换 自动转换 System.out.println(i2); //大的数据类型转换成小的数据类型 // by3=by3+i2; //System.out.println(by3);笔记.java:168: 错误: 不兼容的类型: 从int转换到byte可能会有损失 by3=(byte)(by3+i2);//强制类型转换 格式:(转换类型)(被转换的数据)System.out.println(by3); //boolean类型 不能参与运算 boolean boo=true; //boo=boo+1; System.out.println(boo); //char类型能否参与运算?如果直接输出字符,那么会直接打印出字符 char ch='字';//'A' System.out.println((char)(ch + 1)); //ASCII码表 'A' = 65 'B' = 66 输出B 扩展:unicode System.out.println((int)(ch)); //输出A System.out.println(ch); System.out.println(ch + 1); //输出66 //字符串运算:将新的字符串和旧的字符串连接在一起形成新的字符串 String str="Hello World"; System.out.println(str+10);//Hello World10 System.out.println("5+5="+5+5);//5+5=55 加括号有优先级 System.out.println(5+5+"=5+5");//10=5+5 前面认为是int类型 // 下午开始的(*^__^*) 嘻嘻 //算术运算符 /* */ //除号.运算取商 int i4=4325; // i4=i4/1000*1000;//i4=4000 double被转成int类型 i4=(int)(i4*1.0/1000*1000);//得出250?打成i了,是i4!! System.out.println(i4);//i4=4325 //% 运算取余数 System.out.println(2%3);//2 System.out.println(2%2);//0 System.out.println(3%2);//1 System.out.println(-2%3);//-2 System.out.println(2%-3);//2 /*总结:左边大于右边,结果取左边 左边等于右边,结果取零 左边小于右边,结果取余数 有负数的结果取左边 0%2=0 1%2=1 2%2=0 3%2=1 判断整数是否为基数或偶数 */ /* ++,--,自增,自减 */ int i5=1,b5; //i5--; //i5=0 // i5++; //i5=2 // System.out.println(i5); // b5=i5++;//b5=1 b5=++i5;//b5=2 System.out.println(b5); /* 赋值运算符 = ,+=,-=,*=,%= */ int i6=3;//是将左边右边的值相加,赋给左边i6+=2;//i6=5 System.out.println(i6);//10=10+1;赋值运算符要求左边一定要是变量short sh=10;sh+=20;//赋值运算符有自动强制转换的功能,如果数据超出类型范围也会报告啊//sh=sh+20;//右边两侧相加会有精度损失//sh=(short)(sh+20);需要换成这个System.out.println(sh);/* 比较运算符 ==,!=,<,>,<=,>= */ System.out.println("3=3:"+(3==3));//3=3:trueSystem.out.println("3!=3:"+(3!=3));//3!=3:false /* 逻辑运算符 & 与,|或, ^异或,!非,&&与,||或*/int i7=3;System.out.println(i7<4&i7>0);//trueSystem.out.println(i7>4&i7>0);//false/* & 逻辑运算符 左边 右边 结果 //有假则假 true true truetrue false falsefalse true false false false false | 逻辑或运算符 左边 右边 结果 //有真则真 1 1 1 1 0 1 0 1 1 0 0 0 ^ 逻辑异或运算符 左边 右边 结果 //两边相同结果为假,两边不同结果为真 1 1 0 0 1 1 1 0 1 0 0 0 && 逻辑与 短路功能 左边 右边 结果 //左边为真,右边进行运算;左边为假,右边不运算,直接返回false true true true true false false false true false //左边反映false,右边不进行运算 false false false || 逻辑或 短路功能 //左边为真值,右边不需要运算,直接返回true;左边为假,才需要运算右边,根据右边真假返回结果 左边 右边 结果 1 1 1 1 0 1 0 1 1 0 0 0 *//*条件运算符?格式:(调教表达式)?表达式1:表达式2; 如果条件为true,执行表达式1; 如果条件为false,执行表达式2.*/ int a8=2>1?100:200; System.out.println(a8); //复杂条件运算(条件运算嵌套条件运算) int a9=2>1?(1>2?100:300):200; System.out.println("A="+a9);//为什么错误? 记住双引号"" /* 位运算符 <<左移,>>右移,>>>无符号右移,~反码,&与运算,|或运算,^异或运算 */ int a10; // a10=-127>>1;//负数多看看,有问题 //System.out.println(a10); //将数据转换为二进制,然后再对二进制中的位进行计算,0相当于逻辑中的假,1为真 System.out.println(4&3);//100&011=000="0" System.out.println(4|3);// | =111="7" System.out.println(4^3);// ^ =111="7" // int a = 3; // int b11= (a--)<<a; //3<<2=12 后面的a已经减过 // System.out.println(b11); /* >>位右移运算 00000000 00000000 00000000 00001000 =8 00000000 00000000 00000000 00000010(00) =2 总结:数据/2^右移数 <<位左移运算 00000000 00000000 00000000 00000011 =3 (00)00000000 00000000 00000000 00001100 =12 总结:数据*2^左移数 */ System.out.println(8>>2); System.out.println(3<<2);//这个太简单,需要去扩展一下,负数问题?/* 程序流程控制 判断,选择,循环if语句三种格式:1.if(条件表达式){ 执行语句;}说明:如果条件表达式返回true那么执行if中的语句,如果返回false则不执行if里面的语句总结:1.不管条件表达式是简单但还是复杂,返回的都是布尔类型的值 2.if条件表达式后面不能有;,错误的格式 3.{}可以不写,但是前提条件是if执行语句只有一行,建议都使用[]这种写法*/int i11=5;if(i11>0){ System.out.println("i大于0");} if(i11>10){ System.out.println("i大于10");} if(i11>0&i11<10){ System.out.println("i大于0且小于10");}if(i11!=5);{//多了一个;,就是一个空的if,没有执行语句体 System.out.println("i不等于5");} if(i11>10)System.out.println("i小于10,嘿嘿1");//这样就是不执行第一句 System.out.println("i小于10,嘿嘿2"); System.out.println("i小于10,嘿嘿3"); System.out.println("i小于10,嘿嘿4"); } {byte a1=3,a2=4,a; //需要"标识符",忘加{} a=(byte)(a1+a2);//a=a1+a2; //两个byte类型相加和默认为int System.out.println(a); }}
<pre name="code" class="java">class TestDemon{public static void main(String[]agrs){ byte a1=3,a2=4,a; a=(byte)(a1+a2);//a=a1+a2; //两个byte类型相加和默认为int System.out.println(a); //在java中,类型为byte,short,char类型的变量在运算的时候会自动转为int类型}}
<pre name="code" class="java">class MoveDemon{public static void main(String[]agrs){ int a10; a10=(-33)>>>5;//负数多看看,有问题 System.out.println(a10); }}/*Java中,>>、>>>都是在数字的二进制的补码中进行的正数的补码为本身 如33的二进制表示为 00000000 00000000 00000000 00100001 补码为 00000000 00000000 00000000 00100001负数的补码为符号位即最高位1不变(负数符号位为1,正数为0),其余各位取反,再加1 如-33的二进制表示为 10000000 00000000 00000000 00100001 补码为 11111111 11111111 1111111 11011111进行右移>>操作33>>5 即 补码 00000000 00000000 00000000 00100001 右移5位 00000000 00000000 00000000 00000001 因为33为正数,再取补码为 00000000 00000000 00000000 00000001 转为十进制为1 即33>>5=1-33>>5 即 补码 11111111 11111111 1111111 11011111 右移5位 00000111 11111111 11111111 11111110因为-33为负数,再取补码为 00000100 0000000 0000000 00000010 最前一位1为符号位 转为十进制为-2 即-33>>5=-2进行无符号右移>>>操作33>>>5 即 补码 00000000 00000000 00000000 00100001 右移5位 00000000 00000000 00000000 00000001 因为无符号位,代表结果肯定为正数,正数取补码为本身 00000000 00000000 00000000 00000001 转为十进制为1 即33>>>5=1-33>>>5 即 补码 11111111 11111111 1111111 11011111 右移5位 00000111 11111111 11111111 11111110因为无符号位,代表结果肯定为正数,正数取补码为本身 00000111 11111111 11111111 11111110 转为十进制为134217726 即-33>>>5=134217726*/
0 0
- 20160711
- 20160711笔记
- 20160711ubuntu语言包设置
- 20160711常规赛总结
- centOS LVM分区 20160711
- 每天laravel-20160711|Event-2
- android developer tiny share-20160711
- ios developer tiny share-20160711
- VB程序学习代码记录20160711
- xss其他标签下的js用法总结大全 20160711
- runas 命令的使用及RUNAS自动输入密码的方法 20160711
- 揭秘Patchwork APT攻击 :一个与中国南海和东南亚问题相关的网络攻击组织 20160711
- Android之MVP入门使用(一)
- 总结关于登陆Linux的三种方式
- JAVA api 远程hbase出错 org.apache.hadoop.hbase.client.RetriesExhaustedException
- 【shaderToy】中openGL转到unity中的一些技巧
- 写shell脚本调用php文件
- 20160711
- c++教程(四:Constants)
- 利用Keepalived+mysql构建高可用MySQL双主自动切转
- 解决UDT中内存下不去的问题
- JS动态显示时间
- 一个苹果证书如何多次使用——导出p12文件
- Cassandra driver 入门教程 (二) 异步调用连接数据库
- Timer Schedule参数说明
- jquery中filter与grep的区别【笔记】