java的表示
Ⅰ java 中|| 和 && 这类的符号都表示什么
&&和||是一种逻辑运算符,&&是逻辑与,当两个数都为真,则结果为真。||是逻辑或,两个数任意一个为真,则结果为真。
举个例子:
1、a && b
当a、b都为真时,结果为真。有一个为假或者都为假时结果为假。
2、a || b
当a、b有一个为真时,结果为真。a、b都为假时结果为假。
(1)java的表示扩展阅读:
在java中还有其他的逻辑符号,比如:!、|、 &
“!”是非运算符号,比如a为真,则!a则为假。a如果为假,则!a为真。
而“|”也是逻辑或,“&”也是逻辑与,但是他们与“||”和“&&”有些区别,区别如下:
“&”与“|”无论第一个判断条件是否成立,逻辑运算符前后两个条件都会进行判断。
“&&”与“||”,前者第一个条件不成立,后面的条件均不进行判断,返回false;后者第一个条件成立,后面的条件均不进行判断,返回true。
Ⅱ 跪求“java中二进制怎么表示”
java中二进制的表示:
1、Java中定义两个数,然后分别打印出它们的二进制表示(例如7和-7):
System.out.println("Java二进制7:"+Integer.toBinaryString(7));
System.out.println("Java二进制-7:"+Integer.toBinaryString(-7));
输出:
Java二进制7: 111
Java二进制-7:
7的二进制就是111
-7转化二进制的过程:
(1)把-7转化成7,二进制是 111
(2)Java中对于不满32位的int二进制自动补齐,所以变成了 (29个0)111
(3)然后取反 (29个1)000
(4)然后加1 (29个1)001
(2)java的表示扩展阅读:
c语言中二进制的转换:
用函数转换itoa(值,数组名,进制)
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
char str[8];
inti=8;
itoa(i,str,2);
printf("%s",str);
}
Ⅲ java表达式是什么
Java是面向表达式的语言,Java中一个简单表达式可以是下面任意一种:● 常量:7、false。● 单引号括起来的字符字面常量:'A'、'3'。● 双引号括起来的字符串字面常量:"foo"、"Java"。● 任何正确声明的变量名:myString、x。● 任何用Java二元运算符(本章稍后将详细讨论)连接起来的两个上述类型的表达式:x+2。● 任何用Java一元运算符(本章稍后将详细讨论)修饰的单个上述类型的表达式:i++。● 任何用小括号括起来的上述类型的表达式:(x+2)。以及另外一些与本书后面将要学到的对象有关的表达式类型。无论多么复杂的表达式都可以由不同类型的简单表达式和括号嵌套组合而成,例如:((((4/x) + y) * 7) + z)。2.9.1 算术运算符 Java语言提供了许多基本的算术运算符,如表2-1所示。表2-1 Java算术运算符运算符描 述+加法-减法*乘法/除法%求余(%左边的操作数除以右边的
操作数所得到的余数,例如10%3=1)+和-运算符也可作为一元运算符用于表示正负数:-3.7、+42。除了简单赋值运算符=,还有许多特定的复合赋值运算符,这些运算符将变量赋值和算术操作合并在一起,如表2-2所示。表2-2 Java复合赋值运算符运算符描 述+=a+=b等价于a=a+b-=a-=b等价于a=a-b*=a*=b等价于a=a*b/=a/=b等价于a=a/b%=a%=b等价于a=a%b最后要介绍的两个算术运算符是一元递增运算符(++)和一元递减运算符(--),用于将整数变量的值加1或减1,或者将浮点数变量的值加1.0或减1.0。称它们为一元运算符是因为它们用于单个变量,而前面讨论的二元运算符则连接两个表达式的值。一元递增运算符和一元递减运算符也可用于将字符变量在Unicode序列中向前或向后移动一个字符位置。例如,在下面的代码片段中,字符变量c的值从'e'递增为'f':递增和递减运算符可以以前缀或者后缀方式使用。如果运算符放在操作数之前(前缀模式),变量的递增或递减操作将在更新后的变量值被用于任何由它构成的赋值操作之前执行。例如,考虑下面的使用前缀递增运算符的代码片段,假设a和b在程序前面已经声明为int变量:上述代码执行后,变量a的值是2,变量b的值也是2。这是因为在第二行中变量a的递增(从1到2)发生在它的值赋给b之前。因此这行代码在逻辑上等价于下面两行代码: 另一方面,如果运算符放在操作数之后(后缀模式),递增或递减操作发生在原来的变量值被用于任何由它构成的赋值操作之后。看一下以后缀方式使用递增运算符的相同代码片段:上述代码执行后,变量b的值是1,而变量a的值是2。这是因为在第二行中变量a的递增(从1到2)发生在它的值赋给b之后。因此这行代码在逻辑上等价于下面两行代码:下面是一个稍微复杂一点例子,请阅读附加的注释以确保你能够明白x最终是如何被赋值为10的:稍后将会看到,递增和递减运算符通常和循环一起使用。2.9.2 关系和逻辑运算符逻辑表达式以指定的方式比较两个(简单或者复杂)表达式exp1和exp2,决议出一个boolean值true或者false。 Java提供了表2-3所示的关系运算符来创建逻辑表达式。表2-3 Java关系运算符运算符描 述exp1==exp2如果exp1等于exp2,值为true(注意使用双等号测试相等性)exp1>exp2如果exp1大于exp2,值为trueexp1>=exp2如果exp1大于等于exp2,值为trueexp1<exp2如果exp1小于exp2,值为trueexp1<=exp2如果exp1小于等于exp2,值为trueexp1!=exp2如果exp1不等于exp2,值为true!exp如果exp为false值为true,如果exp为true值为false除了关系运算符,Java还提供了用于组合/修饰逻辑表达式的逻辑运算符。表2-4列出了最常用的逻辑运算符。表2-4 Java逻辑运算符运算符描 述exp1&&exp2逻辑“与”,仅当exp1和exp2都为true时复合表达式值为trueexp1||exp2逻辑“或”,exp1或exp2值为true时复合表达式值为true!exp逻辑“非”,将逻辑表达式的值从true切换到false,反之亦然下面这个例子用逻辑“与”运算符来编程实现逻辑表达式“如果x大于2.0且y不等于4.0”:逻辑表达式常用于流程控制结构,本章稍后将进行讨论。2.9.3 表达式求值和运算符优先级如同本章前面提到的那样,任何复杂的表达式都可以用分层嵌套的小括号构成,例如(((8 * (y + z)) + y) x)。编译器通常按照从内到外,从左到右的顺序对这样的表达式求值。假设x、y、z按照下面的方式声明并初始化:下面的赋值语句右边的表达式:将像下面这样逐步求值:没有小括号时,根据运算符用于表达式求值的顺序,某些运算符具有高于其他运算符的优先级。例如,乘除法先于加减法执行。通过使用小括号可以强制改变运算符的优先级,括号内的运算符比括号外的先执行。考虑下面的代码片段:代码的第一行没有使用括号,乘法操作比加法操作先执行,因此整个表达式的值为2+12=14,就像我们将表达式明确地写成2+(3*4)一样,当然这样做没有必要。 在代码的第二行,括号被明确地放在操作2+3两边,因此加法操作将首先执行,然后求和结果乘以4作为整个表达式的值,即5*4=20。回到前面的例子注意到>和!=运算符优先级高于&&运算符,因此可以去掉嵌套的括号而变成下面这样:然而,额外的括号并不会对代码造成伤害,事实上它可以使表达式的目的更加清楚。2.9.4 表达式类型表达式类型是表达式最终求值结果的Java类型。例如给定下面的代码片段:表达式(x > 2.0) && (y != 4.0)求值结果为true,因此表达式(x > 2.0) && (y != 4.0)称为boolean型表达式。在下面的代码片段中:表达式((8 * (y + z)) + y) * x求值结果为42,因此表达式((8 * (y + z)) + y) * x称为整型表达式。
Ⅳ java如何表示数据结构
一、List接口,有序的Collection接口,精确地控制每个元素插入的位置,允许有相同的元素
1.链表,LinkedList实现了List接口,允许null元素,提供了get()、remove()、insert()方法。
[java] view plain
public void add() {
LinkedList List = new LinkedList();
List.add("link1");
List.add("link2");
List.add("link3");
Iterator it = List.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
it.remove();
Iterator it1 = List.iterator();
for (int i = 0; i < List.size(); i++) {
System.out.println(it1.next());
}
}
2.数组列表,ArrayList,可以动态变化容量的数组,数组列表中存放Object类型,在数组列表中存放的对象类型,以其原型的父类代替,提取其中的元素时要进行类型转换
[java] view plain
public static void main(String[] args)
{
ArrayList al=new ArrayList();
al.add("name");
al.add("value");
al.add("number");
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}
}
二、Set接口,不包含重复元素的Collection接口
1.散列集,HashSet,实现了Set接口,非线性同步与链表和数组列表几乎类似,处理时链表进行数据处理花费时间更短,处理大数据时通常使用散列集
[java] view plain
public static void main(String[] args)
{
long time=0;
HashSet hs=new HashSet();
ArrayList al=new ArrayList();
long starttime=System.currentTimeMillis();
for(int i=0;i<10000;i++)
{
hs.add(new Integer(i));
}
System.out.println(System.currentTimeMillis()-starttime);
for(int i=0;i<10000;i++)
{
al.add(new Integer(i));
}
System.out.println(System.currentTimeMillis()-starttime);
}
2.树集,TreeSet,实现了Set接口,实现了排序功能,集合中的元素默认按升序排列元素。
三、Map接口,没有继承Collection接口,其提供key到value的映射,Map中不能包含相同的key,每个key只能映射一个value。
1.散列表类,HashTable,继承了Map接口,非空(non-null)的对象都可作为key或value,特点:无序的可以快速查找特定的元素
[java] view plain
public static void TableTest(){
Hashtable ht = new Hashtable();
ht.put("key1", "value1");
ht.put("key2", "value2");
String value1=(String)ht.get("key2");
System.out.println(value1);
}
2.散列映射类,HashMap,与HashTable类似,HashMap是异步的,且允许null
[java] view plain
public static void Maptest(){
Map<string string=""> map=new HashMap<string string="">();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
for(Map.Entry<string string=""> entry:map.entrySet()){
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
String value1=(String)map.get("key1");
System.out.println(value1);
}
</string></string></string>