黑马程序员_java编程基础第2天9-16
2013-11-19 13:30
274 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
x=x/1000*1000; 结果是4
% 取余 System.out.println(10%4); 结果是 2
5%1 0
1%5 0
2%5 2
3%5 3
-1%5 -1
1%-5 1
++ 自增 b=a++; 先算= 再算++ b=++a;先算++再算=
-- 自减
+ 正号/ 加号/ 字符串加号 “hahahhhhhhhhh“+"hhhhhhhhhhhhhhhhh”
System.out.println("5+5="+5+5); //"5+5=5”+5 --> "5+5=55" //字符串数据和任何数据使用+都是相连接,最终都会变成字符串。
int a=3,b;
b=a++;
System.out.println("a="+a+",b="+b); //字符输出数据跟直观
System.out.print("hello world");
System.out.println("hello java");
结果:hello worldhello java
转义字符:通过\ 来转变后面字母或者符号的含义
\n 换行 linux系统中回车符是一个字符表示 \n
\b 退格 相当于backspace
\r 按下回车键 windows系统中,回车符是由两个字符来表示\r\n
\t 制表符 相当于tab键
System.out.print("hello\nworld");
结果:
hello
world
System.out.println("\"hello java\""); //注意\ 在" 前边
结果:"hello java"
System.out.println("\\hello\\");
结果:\hello\
char ch='\n'; OK
char ch='\' '; OK
char ch='\" '; OK
char ch=' ' '; 挂了
char c='你'; ok
short s=4;
s=s+5; //挂了 编译失败,因为s会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型
short s=4;
s+=5; // ok 编译通过,因为+=运算符在给赋值时,自动完成了强转操作。
比较运算符的结果都是boolean型, 要么是true 要么是false
== 相等于 != 不等于 < > <= >= instanceof 检查是否是类的对象 例"hello" instanceof String 结果true
System.out.println(3>4); false
注意== 不能写成=
结果
& AND 与
| OR 或
^ XOR 异或 true^false
true
! Not 非
!ture false
&& AND 短路 false&&true false
|| OR 短路 false||true true
int x=4;
6>x>3;//错误
x>3 & x<6;// OK
逻辑运算符用于连接boolean型的表达式
^: 异或; 就是和 | 有点不一样,当true^true=false (就是两边相同 false,两边不同 为ture)
System.out.println(false^false); //true
&和&&的特点:
&:无论左边是true是false。右边都运算
&&:当左边为false时,右边不运算
| :两边都参与运算
||:当左边为true时,右边不运算。
运算符 运算
范例
<< 左移
3<<2=12 -->3*2*2=12
>> 右移
3>>1=1-->3/2=1
>>> 无符号右移 3>>>1=1 -->3/2=1
& 与运算
6&3=2
| 或运算
6|3=7
^ 异或运算
6^3=5
~ 反码
~6=-7
移n位,就是对乘以或者除以2的n次幂
1111-1111 1111-1111 1111-1111 1111-1010 =-6
-6>>2 //最高位补什么由原有数据的最高位值而定
111111-1111 1111-1111 1111-1111 1111-10
-6>>>2 //无论最高位是什么右移后由0补
001111-1111 1111-1111 1111-1111 1111-10
6&3 :
110 6
& 011 3
010 2
System.out.println(6&3); //2
7^4^4=7 //一个数异或同一个数两次,结果还是那个数 异或运用于加密
2*8 不是最高效 位运算高效 2<<3
2.对两个整数变量的值进行互换? (不需要第三方变量)?
int n=3,m=8;
System.out.println("n="+n=",m="+m);
//1.通过第三方变量。 (开发时用这个)
int temp;
temp=n;
n=m;
m=temp;
//2.不用第三方变量
n=n+m; // 如果n和m的值非常大,容易超出int范围,有局限性
m=n-m;
n=n-m;
//3.技巧试方式
n=n^m;
m=n^m; // (n^m)^m;
n=n^m; // (n^m)^((n^m)^m);
获取16进制位:
int num=60;
// 获取60的最低4位,通过&15;
int n1=num&15;
System.out.println((n1>9)?(char)(n1-10+‘A'):n1);//有错误;
//要获取下一组四位,将60右移四位;
int temp=60>>4; // >> 要是负数的话 移不完 总是补1, >>> 可以解决 最高位补0;
//对temp的值进行最低四位的获取;
int n2=temp&15;
System.out.println((n2>9)?(char)(n2-10+‘A'):n2); //有错误;
16进制 15 移4位;
8进制 7 移3位;
2进制 1 移1位;
如果条件为true,运算结果为表达式1;
如果条件为false,运算结果为表达式2;
示例:获取两个数中大数
int x=3,y=4,z;
z=(x>y)?x:y; //z变量存储的就是两个数的大数
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
算数运算符
int x=4270;x=x/1000*1000; 结果是4
% 取余 System.out.println(10%4); 结果是 2
5%1 0
1%5 0
2%5 2
3%5 3
-1%5 -1
1%-5 1
++ 自增 b=a++; 先算= 再算++ b=++a;先算++再算=
-- 自减
+ 正号/ 加号/ 字符串加号 “hahahhhhhhhhh“+"hhhhhhhhhhhhhhhhh”
System.out.println("5+5="+5+5); //"5+5=5”+5 --> "5+5=55" //字符串数据和任何数据使用+都是相连接,最终都会变成字符串。
int a=3,b;
b=a++;
System.out.println("a="+a+",b="+b); //字符输出数据跟直观
转义字符
ln 代表 换行System.out.print("hello world");
System.out.println("hello java");
结果:hello worldhello java
转义字符:通过\ 来转变后面字母或者符号的含义
\n 换行 linux系统中回车符是一个字符表示 \n
\b 退格 相当于backspace
\r 按下回车键 windows系统中,回车符是由两个字符来表示\r\n
\t 制表符 相当于tab键
System.out.print("hello\nworld");
结果:
hello
world
System.out.println("\"hello java\""); //注意\ 在" 前边
结果:"hello java"
System.out.println("\\hello\\");
结果:\hello\
char ch='\n'; OK
char ch='\' '; OK
char ch='\" '; OK
char ch=' ' '; 挂了
char c='你'; ok
赋值和比较运算符
赋值运算符 += -= *= /= %=short s=4;
s=s+5; //挂了 编译失败,因为s会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型
short s=4;
s+=5; // ok 编译通过,因为+=运算符在给赋值时,自动完成了强转操作。
比较运算符的结果都是boolean型, 要么是true 要么是false
== 相等于 != 不等于 < > <= >= instanceof 检查是否是类的对象 例"hello" instanceof String 结果true
System.out.println(3>4); false
注意== 不能写成=
逻辑运算符
运算符 运算 范例结果
& AND 与
| OR 或
^ XOR 异或 true^false
true
! Not 非
!ture false
&& AND 短路 false&&true false
|| OR 短路 false||true true
int x=4;
6>x>3;//错误
x>3 & x<6;// OK
逻辑运算符用于连接boolean型的表达式
^: 异或; 就是和 | 有点不一样,当true^true=false (就是两边相同 false,两边不同 为ture)
System.out.println(false^false); //true
&和&&的特点:
&:无论左边是true是false。右边都运算
&&:当左边为false时,右边不运算
| :两边都参与运算
||:当左边为true时,右边不运算。
位运算符(左移右移)
位运算是直接对二进制进行运算运算符 运算
范例
<< 左移
3<<2=12 -->3*2*2=12
>> 右移
3>>1=1-->3/2=1
>>> 无符号右移 3>>>1=1 -->3/2=1
& 与运算
6&3=2
| 或运算
6|3=7
^ 异或运算
6^3=5
~ 反码
~6=-7
移n位,就是对乘以或者除以2的n次幂
1111-1111 1111-1111 1111-1111 1111-1010 =-6
-6>>2 //最高位补什么由原有数据的最高位值而定
111111-1111 1111-1111 1111-1111 1111-10
-6>>>2 //无论最高位是什么右移后由0补
001111-1111 1111-1111 1111-1111 1111-10
6&3 :
110 6
& 011 3
010 2
System.out.println(6&3); //2
7^4^4=7 //一个数异或同一个数两次,结果还是那个数 异或运用于加密
位运算(练习)
1.最有效率的方式算出2乘以8等于几?2*8 不是最高效 位运算高效 2<<3
2.对两个整数变量的值进行互换? (不需要第三方变量)?
int n=3,m=8;
System.out.println("n="+n=",m="+m);
//1.通过第三方变量。 (开发时用这个)
int temp;
temp=n;
n=m;
m=temp;
//2.不用第三方变量
n=n+m; // 如果n和m的值非常大,容易超出int范围,有局限性
m=n-m;
n=n-m;
//3.技巧试方式
n=n^m;
m=n^m; // (n^m)^m;
n=n^m; // (n^m)^((n^m)^m);
获取16进制位:
int num=60;
// 获取60的最低4位,通过&15;
int n1=num&15;
System.out.println((n1>9)?(char)(n1-10+‘A'):n1);//有错误;
//要获取下一组四位,将60右移四位;
int temp=60>>4; // >> 要是负数的话 移不完 总是补1, >>> 可以解决 最高位补0;
//对temp的值进行最低四位的获取;
int n2=temp&15;
System.out.println((n2>9)?(char)(n2-10+‘A'):n2); //有错误;
16进制 15 移4位;
8进制 7 移3位;
2进制 1 移1位;
三元运算符
(条件表达式)?表达式1:表达式2;如果条件为true,运算结果为表达式1;
如果条件为false,运算结果为表达式2;
示例:获取两个数中大数
int x=3,y=4,z;
z=(x>y)?x:y; //z变量存储的就是两个数的大数
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
相关文章推荐
- 黑马程序员_java编程基础第2天7-8
- 黑马程序员_java编程基础第2天19-20 switch语句
- 黑马程序员_java编程基础16 集合框架2
- 黑马程序员--第一阶段2.java编程基础--第2天
- 黑马程序员--第一阶段2.java编程基础--第2天
- 黑马程序员 java基础之网络编程TCP
- 黑马程序员——Java基础----网络编程
- 黑马程序员——Java之编程基础(二)
- 黑马程序员_Java基础_网络编程
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序
- 黑马程序员-java基础-网络基础知识,JAVA网络编程
- 黑马程序员--java基础日记--网络编程
- 黑马程序员——Java基础---图形化界面编程
- 黑马程序员:Java基础总结----网络编程
- 黑马程序员--Java基础总结---网络编程
- 黑马程序员--java基础:网络编程
- 黑马程序员—java基础之网络编程
- AdaultBird--我的黑马程序员之路!Chapter13---java编程基础!
- 黑马程序员 JAVA初级-编程基础2 流程控制语句 函数 数组
- 黑马程序员 java编程基础知识笔记