java基础整理01
2015-05-20 10:46
330 查看
一:进制间的转换
二:基本数据类型,与运算。
输出结果:如图
三:赋值与比较运算符
得到控制台输出结果:
四:逻辑运算符
得到控制台输出结果:
五:位运算符
六:三元表达式
输出控制台打印结果:
七:if学习
输入正确结果的控制台信息:
输入错误结果的控制台信息:
八:switch学习
九:switch学习02
package study.base.day002; /** * 一个汉字是两个字节 * 一个字节是8位,一个汉字编码两个字节是十六位。 * 八进制就是二进制的三个代表一个位 * 16进制用 0x 开头表示 * @author Administrator */ public class Day2 { public static void main(String[] args) { System.out.println("60"); System.out.println(0x3c); System.out.println(0x3f); System.out.println(01011001); /** * 十进制转二进制:比如 6 的二进制 * 原理:对十进制数进行除 2 运算。 * 2|__6__ 余数 0 * 2|_3__ 余数 1 * 1 不可整除了 1 * 结果从下到上排列 * 得到6的二进制数是 110 * * 1 0 0 1 1 0 1 0 对应的值,若二进制位0,则没有 * 128 64 32 16 8 4 2 1 */ //输入十进制,输出二进制 System.out.println(Integer.toBinaryString(6)); /** * 二进制转十进制 * 如 110 -->从又到左换算 * 0乘于2的0次方 + 1乘于2的1次方 + 1乘于2的二次方 * 0*2(0)+1*2(1)+1*2(2) = 0+2+4 = 6 */ /** * 二进制数相加减 * 例如: * 101 * +100 * __________ * 1001 * 最后一位1+0得1 * 中间位数0+0得0 * 第一位数1+1得2,所以应该进1 * 所以第二位数应该变为0 * */ /** * 十六进制 * 四个二进制位就是一个十六进制位 * 例如: * 十进制: 90 * 二进制: 0101 - 1010 * 十六进制: 5 A 10因为十六进制没有10的概念,所以应该改写为一个A * 所以正确的写法为:0x5A 为90的十六进制数。 * 四个二进制数的最大值位15,所以用四个二进制数表示一个16进制数 */ /** * 同理的八进制 * 三个二进制数代表一位八进制数 * 例如:90 * 十进制 90 * 二进制 01 011 010前面少了一位,或补0显示 * 二进制 001 011 010 * 八进制 1 3 2 * */ /** * ------------------------------ * 负数的二进制表现形式 * 十进制 二进制 * 6 110 * -6:其实就是6的二进制取反+1。 * 取反:将二进制的1变成0,0变成1。 * 内存中6的表现形式:0000-0000 0000-0000 0000-0000 0000-0110 * 得-6的表现形式:1111-1111 1111-1111 1111-1111 1111-1001 * 然后再加二进制的1:0000-0000 0000-0000 0000-0000 0000-0001 * =:1111-1111 1111-1111 1111-1111 1111-1010 = -6 */ System.out.println(Integer.toBinaryString(-7)); //不通过第三方变量的方式来给两个整形的值互换。 int a = 9; int b = 10; a = a+b; b = a-b; a = a-b; System.out.println("a:"+a+"//b:"+b); } }
二:基本数据类型,与运算。
package study.base.day002; public class Day2017 { public static void main(String[] args){ byte a = 2; //取值范围:-128~127 a = (byte)(a+2); short s = 30000; long l = 41; //强制类型转换。 float fe = (float) 2.2; float f = 2.2f; double d = 2.234234; char ch = '3'; char ch2 = '4'; char ch3 = 'a'; boolean bl = false; System.out.println(('A'+0)); System.out.println('a'+1); System.out.println(ch3); System.out.println((char)5); System.out.println((char)('b'+1)); } } package study.base.day002; public class Day2020 { public static void main(String[] args) { /** * \转义符 * \n:换行 * \b:退格 相当于backspace * \r:按下回车键 * \t:制表符 相当于tab键 */ System.out.println("hhh::\bsss:"); System.out.println("\"hello\""); } }
输出结果:如图
三:赋值与比较运算符
package study.base.day002; /** * 赋值和比较运算符 * instanceof */ public class Day2021 { public static void main(String[] args) { //+= -= *= /= %= int x = 5; //x += x; 10 //x -= x; 0 //x *= x; 25 //x /= x; 1 //x %= x; 0 short s = 4; //范围-32768~+32767 //s = (short) (s+5); 9 方法一得用强制类型转换。 s +=5; //9 只做赋值运算,内部自动执行了强制转换。 System.out.println("x:"+s); System.out.println("x:"+x); int a,b,c; a = b = c = 4; System.out.println("x:"+b); System.out.println(4!=4); } }
得到控制台输出结果:
四:逻辑运算符
package study.base.day002; /** * 逻辑运算符 */ public class Day2022 { public static void main(String[] args) { int i = 9; if(i>8 & 1<10){ System.out.println("xssss"); }; System.out.println("x:"); } }
得到控制台输出结果:
五:位运算符
<pre name="code" class="java">/** * 位运算符 * << 左移 其实就是数乘于2的移动的位数次幂。 * >> 又移 就是数除以2的移动位数次幂。 * >>> 无符号右移 */ /** * 例如:3<<2 * 先显示3在二进制中的表现形式:0000-0000 0000-0000 0000-0000 0000-0011; * 把二进制数向左移动两位,因此少了两位,然后再把最后面的数补上两位00; * 得到的二进制数在内存中为:0000-0000 0000-0000 0000-0000 0000-1100; * 再换算成十进制:12; * * 6>>2 =1 * 0000-0000 0000-0000 0000-0000 0000-0110 * 往右移动2位,然后在高位再加两个0 * 0000-0000 0000-0000 0000-0000 0000-0001 * 带符号右移 最高位为1的数都是负数 * 如-6: * 1111-1111 1111-1111 1111-1111 1111-1010 * 当最高位为1时,则要自动补两个1,而不是自动补0 * * 最高位补数法则: * >>:最高位补什么由原有的数据的最高位而定。 * 如果最高位是0,右移后,用0补空位。--》正数 * 如果最高位是1,右移后,用1补空位。--》负数 * >>>:无论最高位是什么,右移后,都用0补充。 */ package study.base.day002; public class Day2024 { public static void main(String[] args) { /** * 位运算福 * &:与 运算符 * &的例子:6&3 =2 * 把他们分别转换成二进制数,然后视0为假的,1为真 * 110 * & 011 * —————————— * 010 * 再转换成十进制:2 * * |:或 运算符 * 例如:6|5 =7 * 110 * | 101 * —————————— * 111 * 再转换成十进制:7 * * * ^:异或 运算符 * 例如:6^5 =3 * * 110 * ^ 101 * —————————— * 011 * 再转换成十进制:3 * * ~:反码 运算符 * -6的表现形式:-6的取反+1 * ~6的值为-7 * 计算6的反码:~6 = -7 得出结论一个正整数的反码等于这个数的负数-1 * 0000-0000 0000-0000 0000-0000 0000-0110 * ———————————————————————————————————————————————————————————— * 1111-1111 1111-1111 1111-1111 1111-1001 = -7 +1 =-6 * 反码计算结束 *计算+1 +0000-0000 0000-0000 0000-0000 0000-0001 * =1111-1111 1111-1111 1111-1111 1111-1000 再次反码 * ———————————————————————————————————————————————————————————— * =0000-0000 0000-0000 0000-0000 0000-0111 =7 * 计算7^4 * 111 * ^100 * ———————— * 011 3 * ^100 * —————————— * 111 7 * 一个数,异或同一个数两次,则等于他本身 */ System.out.println( ~6 ); //控制台输出结果为:-7 } }
六:三元表达式
<pre name="code" class="java">package study.base.day002; /** * 三元表达式 */ public class Day2026 { public static void main(String[] args) { /** * 计算60&15 * 方法: * 0000-0000 0000-0000 0000-0000 0011-1100 * & * 0000-0000 0000-0000 0000-0000 0000-1111 * ———————————————————————————————————————————— * 0000-0000 0000-0000 0000-0000 0000-1100 在转等于12 * * 计算60右移4位 * 60>>4 * 60:0000-0000 0000-0000 0000-0000 0011-1100 * 右移动4位,则前面补4个0 * 0000-0000 0000-0000 0000-0000 0000 0011 =3 */ int num = 60; //获取60的最低4位,通过&15; int n1 = num & 15; //12 System.out.println((n1>9)?(n1-10+'A'):n1); System.out.println(":"+(60&15)); //要获取下一组四位,将60右移四位, int temp = 60>>>4; //对temp的值进行最低四位的获取。 int n2 = temp & 15; //0-9 'A' 'B' 'C' 'D' 'E' 字母对应的值 //ASCII 65 66 67 68 69 // 10 11 12 13 14 System.out.println(n2>9?(n2-10+'A'):n2); /** * 三元运算符: * (条件表达式)?表达式1:表达式2 * 如果条件为true,则表达式1 * 如果条件为false,则表达式2 */ int x,y; x = 4; y = (x>1)?'a':200; System.out.println("y的值是:"+y); } }
输出控制台打印结果:
七:if学习
public class Day2027if { public static void main(String[] args) { int a=9,b; b = (a>1)?100:200; if(a>1){ b=100; }else{ b=200; } System.out.println("打印B的结果:"+b); int num =3; if(num==1) System.out.println("ssss"); else if(num==2) System.out.println("xxx"); else System.out.println("oooo"); //根据用于指定月份,打印该月份所属的季节 Scanner s = new Scanner(System.in); System.out.print("请输入月份:"); int month = s.nextInt(); if(month>=1 && month<4){ System.out.println("春季"); }else if(month>=4 && month<7){ System.out.println("夏季"); }else if(month>=7 && month<10){ System.out.println("秋季"); }else if(month>=10 && month<13){ System.out.println("冬季"); }else{ System.out.println("输入月份有误,程序结束。"); } } }
输入正确结果的控制台信息:
输入错误结果的控制台信息:
八:switch学习
package study.base.day002; import java.util.Scanner; public class Day2028Switch { public static void main(String[] args) { Scanner s = new Scanner(System.in); int num; System.out.println("请输入呗,1-4:"); num = s.nextInt(); switch(num){ //byte short int char //case取值 //case 1: //执行语句 //break; //case 2: //执行语句 //break; //default: //执行语句 //break; case 1: System.out.println("1"); break; case 2: System.out.println("2"); break; case 3: System.out.println("3"); break; case 4: System.out.println("4"); break; default: System.out.println("数据有误"); break; } int a = 4,b=2; char ch = '-'; switch(ch){ case '-': System.out.println(a-b); break; case '+': System.out.println(a+b); break; case '*': System.out.println(a*b); break; case '/': System.out.println(a/b); break; default: System.out.println("数据有误"); break; } } }
九:switch学习02
package study.base.day002; import java.util.Scanner; public class Day2029Switch2 { public static void main(String[] args) { //switch的季节练习 /** * if 和 switch 语句很像, * 具体什么场景下,应用哪个语句呢? * 如果判断的具体数值不多,而是符合byte short int char String 这四种类型 * 建议使用switch语句,因为效率稍高 * * 其它情况:对区间判断,对结果为 boolean 类型的判断,使用if * 因为if的使用范围更广。 */ Scanner s = new Scanner(System.in); System.out.println("请输入一个月份:"); int inp = s.nextInt(); switch(inp){ case 1: case 2: case 3: System.out.println("春季"); break; case 4: case 5: case 6: System.out.println("夏季"); break; default: System.out.println("error"); break; } } }
相关文章推荐
- Java基础笔记整理---【01】cmd操作命令
- Java基础知识点整理Day_01
- 整理java基础零散知识点
- Java基础笔记的复习与整理---Socke…
- ~这些年,我们一起学过的Java~01~基础入门
- Java泛型基础知识整理第一部分
- Java基础巩固之梦-01.错失工作机遇之谈
- java基础--Jar包添加到build path方式说明--01
- 2018年JAVA面试题整理(1)--基础
- java基础知识整理
- Java 教程整理:基础、项目全都有
- java基础知识记录--XML部分(摘自张孝祥整理java面试题)
- 整理Java基础知识--数组1
- Java基础知识点整理Day_02
- 01 java 编程基础
- Java基础01 从HelloWorld到面向对象
- Java基础01:基础
- java基础知识整理
- Java基础知识强化之多线程笔记01:多线程基础知识(详见Android(java)笔记61~76)
- Java基础【01】规则&&eclipse快捷键