& 按位与
|按位或
~按位取反
^按位异或
java中位运算符
<< 按位左移
>>带符号右移
>>>无符号右移 高位补0 高位正数补0 负数补1
0xffffffff 表示-1 补码表示
java中每种数据类型都有自己对应的类 java.lang.* 包中
例如我们将一个数字转换成十六进制 java的输出函数中没有像C语言的格式化功能但是每个类型都对应了一个类 我们可以通过这些类的静态方法进行数据的转换
例子 :
public class text
{
public static void main(String[]args)
{
int n=0xffffffff; //补码表示二进制的-1
System.out.println(n<<2);
System.out.println(n);
System.out.println(Integer.toHexString(n));
}
}
讲究速度的时候可以用移位运算 代替 乘除
javap bin目录下的反编译工具
/* java 面向对象的编程 .
* OOP 描述对象对象之间的联系
* java的方法也允许重载 。。和c++类型
*this 代表对象本身
*多个对象对应的成员方法在内存中只有一个拷贝
*非静态可以调用 静态静态不可以调用非静态
*静态变量作为统计计数因为他们用的是同一个变量
*/
public class point //要和文件名相同
{
final double PI=3.1415926;//final声明常量 声明的时候也可以不初始化 放在构造函数中完成
int x,y; //point类的成员类型
void output()//point类的成员方法
{
System.out.println(x);
System.out.println(y);
}
point() //java的构造方法 java会提供一个确定的构造方法不带参数的 来构造如果构造函数不存在的话
{
x=5;
y=5;
}
static void printf() //静态方法 对象方法为实例方法 在静态函数中不能调用成员因为在new之前 还没有内存空间 没有代码区 static例外
{
System.out.println("java function is static!");
}
void set(int x,int y) //对成员变量进行赋值
{
this.x=x;
this.y=y;
}
point(int m,int n)//带参数的构造函数
{
x=m;
y=n;
}
public static void main(String []args) //程序的入口函数
{
point a=new point(); //java给对象分配空间的时候一定要加上括号 new后面
a.x=10;
a.y=10;
a.output();
point b=new point(3,3);
b.output();
point c=new point();
c.set(3,8);
c.output();
point.printf(); //调用类的静态方法
}
}