java中?:是什么意思
62个回答
展开全部
按位异或运算符
两个操作数中,如果两个相应位相同,则结果为0,否则为1
即:
0^0=0, 1^0=1, 0^1=1, 1^1=0
例如:
00101010^00010111=00111101
1)如果需使用一个整数的某些特定的位翻转,可使用另一个
相应位为1的操作数与原来的整数进行按位异或操作实现。
下面的例子对整数变量 ii的第四位翻转
int revertFouth=ii^8;
其余位则没有变化
2)通过按位异或运算可以实现两个值的交换。而不使用临
时变量。例如交换两个整数a,b的值可通过下列语句实现:
int a=15,b=24;
//a的最右边8位为00001111,b的最右边8位为00011000
//a和b其余位为0,下同
a=a^b; //a的最右边8位为00010111,a=23
b=b^a; //b的最右边8位为00001111,b=15
a=a^b; //a的最右边8位为00011000,a=24
*位逻辑运算表达式返回两个操作数中数据长度较长的数据
类型
其中较小的左侧将被填满,若为整数,则填满0,
若为负数,则左侧填满1
首先复习一下异或运算(^)的性质:它满足交换律、结合律。
此处有一个经典的运用:现在有一万(1-10000)的个数 ,从中拿掉 一个数,问怎么才能找出拿掉的数 ?
设 最初的数组是 A,
拿掉 x 之后的数组是 B,
xor() 是对数组内所有元素做异或,则有:
xor(A) == xor(B) ^ x
Fake代码
xor(A) == xor(B) ^ x
Fake代码
xor(A) == xor(B) ^ x
xor(A) == xor(B) ^ x
所以:
xor(B) ^ xor(A) == xor(B) ^ xor(B) ^ x == 0 ^ x == x
Fake代码
xor(B) ^ xor(A) == xor(B) ^ xor(B) ^ x == 0 ^ x == x
Fake代码
xor(B) ^ xor(A) == xor(B) ^ xor(B) ^ x == 0 ^ x == x
xor(B) ^ xor(A) == xor(B) ^ xor(B) ^ x == 0 ^ x == x
结论:
A 和 B 两个数组共 19999 个数,全部用来做异或,结果就是去掉的那个数 x。
(注:设 A = {a1, a2, a3, .... a10000}, 则 array_xor(A) = a1 ^ a2 ^ a3 ^ ... ^ a10000 )
两个操作数中,如果两个相应位相同,则结果为0,否则为1
即:
0^0=0, 1^0=1, 0^1=1, 1^1=0
例如:
00101010^00010111=00111101
1)如果需使用一个整数的某些特定的位翻转,可使用另一个
相应位为1的操作数与原来的整数进行按位异或操作实现。
下面的例子对整数变量 ii的第四位翻转
int revertFouth=ii^8;
其余位则没有变化
2)通过按位异或运算可以实现两个值的交换。而不使用临
时变量。例如交换两个整数a,b的值可通过下列语句实现:
int a=15,b=24;
//a的最右边8位为00001111,b的最右边8位为00011000
//a和b其余位为0,下同
a=a^b; //a的最右边8位为00010111,a=23
b=b^a; //b的最右边8位为00001111,b=15
a=a^b; //a的最右边8位为00011000,a=24
*位逻辑运算表达式返回两个操作数中数据长度较长的数据
类型
其中较小的左侧将被填满,若为整数,则填满0,
若为负数,则左侧填满1
首先复习一下异或运算(^)的性质:它满足交换律、结合律。
此处有一个经典的运用:现在有一万(1-10000)的个数 ,从中拿掉 一个数,问怎么才能找出拿掉的数 ?
设 最初的数组是 A,
拿掉 x 之后的数组是 B,
xor() 是对数组内所有元素做异或,则有:
xor(A) == xor(B) ^ x
Fake代码
xor(A) == xor(B) ^ x
Fake代码
xor(A) == xor(B) ^ x
xor(A) == xor(B) ^ x
所以:
xor(B) ^ xor(A) == xor(B) ^ xor(B) ^ x == 0 ^ x == x
Fake代码
xor(B) ^ xor(A) == xor(B) ^ xor(B) ^ x == 0 ^ x == x
Fake代码
xor(B) ^ xor(A) == xor(B) ^ xor(B) ^ x == 0 ^ x == x
xor(B) ^ xor(A) == xor(B) ^ xor(B) ^ x == 0 ^ x == x
结论:
A 和 B 两个数组共 19999 个数,全部用来做异或,结果就是去掉的那个数 x。
(注:设 A = {a1, a2, a3, .... a10000}, 则 array_xor(A) = a1 ^ a2 ^ a3 ^ ... ^ a10000 )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。
JDK包含的基本组件包括:
·javac – 编译器,将源程序转成字节码
·jar – 打包工具,将相关的类文件打包成一个文件
·javadoc – 文档生成器,从源码注释中提取文档
·jdb – debugger,查错工具
JDK中还包括完整的JRE(Java Runtime Environment,Java运行环境),也被称为private runtime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。
JDK中还包括各种例子程序,用以展示Java API中的各部分。
从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显著特点是随着Java (J2EE、J2SE以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。
JDK一般有三种版本:
SE(J2SE),standard edition,标准版,是我们通常用的一个版本
EE(J2EE),enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序,
ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序
Java开发工具(JDK)是许多Java专家最初使用的开发环境。尽管许多编程人员已经使用第三方的开发工具,但JDK仍被当作Java开发的重要工具。
JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心Java
API是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。Java API包括一些重要的语言结构以及基本图形,网络和文件I/O。一般来说,Java API的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。
作为JDK实用程序,工具库中有七种主要程序。
Javac:Java编译器,将Java源代码转换成字节码。
Java:Java解释器,直接从类文件执行Java应用程序字节代码。
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javadoc:根据Java源码及说明语句生成HTML文档。
Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。
JDK包含的基本组件包括:
·javac – 编译器,将源程序转成字节码
·jar – 打包工具,将相关的类文件打包成一个文件
·javadoc – 文档生成器,从源码注释中提取文档
·jdb – debugger,查错工具
JDK中还包括完整的JRE(Java Runtime Environment,Java运行环境),也被称为private runtime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。
JDK中还包括各种例子程序,用以展示Java API中的各部分。
从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显著特点是随着Java (J2EE、J2SE以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。
JDK一般有三种版本:
SE(J2SE),standard edition,标准版,是我们通常用的一个版本
EE(J2EE),enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序,
ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序
Java开发工具(JDK)是许多Java专家最初使用的开发环境。尽管许多编程人员已经使用第三方的开发工具,但JDK仍被当作Java开发的重要工具。
JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心Java
API是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。Java API包括一些重要的语言结构以及基本图形,网络和文件I/O。一般来说,Java API的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。
作为JDK实用程序,工具库中有七种主要程序。
Javac:Java编译器,将Java源代码转换成字节码。
Java:Java解释器,直接从类文件执行Java应用程序字节代码。
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javadoc:根据Java源码及说明语句生成HTML文档。
Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询