获取Map集合中所有的key可以通过map集合的keySet()方法获取例如: Map map = new HashMap(); map.put(xx,xx); //存放数据 //.... 省略 Set set = map.keySet(); //可以通过迭代器进行测试 Iterator iter = set.iter...
public class Point { private int x; private int y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } ...
Java中有三种常见运算符,分别是算术运算符、比较运算符、逻辑运算符,当然还有位运算符、赋值运算符和三目运算符,下面分别简要介绍各运算符。
1、数学运算符(7个)
+ :加法 还可以作为字符串连接运算符
- :减法
* : 乘法
/ : 除法 注意:两个操作数都是整数类型时,结果还是整数(小数部分不能四舍五入,而是自然截取),除数不能为0。两个操作数中只要有一个是浮点数,结果也是浮点数,此时允许除数是0,或者0.0,结果是正无穷大或负无穷大。
% : 求余 注意:求余结果不一定都是整数,当操作数中只要有一个是浮点数,则允许除数是0或0.0,结果是非数:NaN。
++ :自加 注意:当++在操作数左边,表示先加1,再运算(使用);当++在操作数右边,表示先运算(使用),在加1。
-- : 自减 注意:当--在操作数左边,表示先减1,再运算(使用);当--在操作数右边,表示先运算(使用),在减1。
2、比较运算符(6个),结果返回布尔值(true或false)
<= :小于等于,只支持两边都是数值类型。
> :大于,只支持两边都是数值类型。
>= :大于等于,只支持两边都是数值类型。
== :等于,如果两边都是数值类型,即使数据类型不同,只要值相同,都返回true。如果两边是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,且必须指向同一个对象才会返回true。还支持两个Boolean类型值进行比较。
!= :不等于,如果两边都是数值类型,无论数据类型是否相同,只要值不相同,都返回true。如果两边是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,只要不指向同一个对象就返回true。还支持两个Boolean类型值进行比较。
3、逻辑运算符(6个)
& : 与,两个操作数都是true,才返回true。
| : 或,两个操作数只要有一个是true,即返回true。
! : 非,取反,操作数是true,则返回false;操作数是false,则返回true。
^ : 异或,两个操作数不同时,返回true,相同时返回false。
&& : 短路与,只要前一个操作数是false,立即返回false,不进行后面运算。
|| : 短路或,只要前一个操作数是true,立即返回true,不进行后面运算。
4、位运算符(7个),一般操作数是整型变量和值
& :按位与,当两位同为1时才返回1。
| :按位或,只要有1位为1时即返回1。
~ :按位非,按位取反。
^ :按位异或,当两位相同时返回0,不相同时返回1。
<
>> :右移,二进制码整体右移,左边空出来的位以原来的符号位填充。
>>> :无符号右移,左边空出来的位总是以0填充。
4、赋值运算符(1个)
= 把右边的值赋给左边的变量。
扩展:示例:x*=y,对应x=x*y
+=,-=,*=,/=,%=
&=,|=,^=
<<=,>>=,>>>=
5、三目运算符(1个)
表达式? true时返回:false时返回 ,不常用,可作为if-else的精简写法。
Java中有三种常见运算符,分别是算术运算符、比较运算符、逻辑运算符,当然还有位运算符、赋值运算符和三目运算符,下面分别简要介绍各运算符。
1、数学运算符(7个)
+ :加法 还可以作为字符串连接运算符
- :减法
* : 乘法
/ : 除法 注意:两个操作数都是整数类型时,结果还是整数(小数部分不能四舍五入,而是自然截取),除数不能为0。两个操作数中只要有一个是浮点数,结果也是浮点数,此时允许除数是0,或者0.0,结果是正无穷大或负无穷大。
% : 求余 注意:求余结果不一定都是整数,当操作数中只要有一个是浮点数,则允许除数是0或0.0,结果是非数:NaN。
++ :自加 注意:当++在操作数左边,表示先加1,再运算(使用);当++在操作数右边,表示先运算(使用),在加1。
-- : 自减 注意:当--在操作数左边,表示先减1,再运算(使用);当--在操作数右边,表示先运算(使用),在减1。
2、比较运算符(6个),结果返回布尔值(true或false)
<= :小于等于,只支持两边都是数值类型。
> :大于,只支持两边都是数值类型。
>= :大于等于,只支持两边都是数值类型。
== :等于,如果两边都是数值类型,即使数据类型不同,只要值相同,都返回true。如果两边是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,且必须指向同一个对象才会返回true。还支持两个Boolean类型值进行比较。
!= :不等于,如果两边都是数值类型,无论数据类型是否相同,只要值不相同,都返回true。如果两边是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,只要不指向同一个对象就返回true。还支持两个Boolean类型值进行比较。
3、逻辑运算符(6个)
& : 与,两个操作数都是true,才返回true。
| : 或,两个操作数只要有一个是true,即返回true。
! : 非,取反,操作数是true,则返回false;操作数是false,则返回true。
^ : 异或,两个操作数不同时,返回true,相同时返回false。
&& : 短路与,只要前一个操作数是false,立即返回false,不进行后面运算。
|| : 短路或,只要前一个操作数是true,立即返回true,不进行后面运算。
4、位运算符(7个),一般操作数是整型变量和值
& :按位与,当两位同为1时才返回1。
| :按位或,只要有1位为1时即返回1。
~ :按位非,按位取反。
^ :按位异或,当两位相同时返回0,不相同时返回1。
<
>> :右移,二进制码整体右移,左边空出来的位以原来的符号位填充。
>>> :无符号右移,左边空出来的位总是以0填充。
4、赋值运算符(1个)
= 把右边的值赋给左边的变量。
扩展:示例:x*=y,对应x=x*y
+=,-=,*=,/=,%=
&=,|=,^=
<<=,>>=,>>>=
5、三目运算符(1个)
表达式? true时返回:false时返回 ,不常用,可作为if-else的精简写法。
1、数学运算符(7个)
+ :加法 还可以作为字符串连接运算符
- :减法
* : 乘法
/ : 除法 注意:两个操作数都是整数类型时,结果还是整数(小数部分不能四舍五入,而是自然截取),除数不能为0。两个操作数中只要有一个是浮点数,结果也是浮点数,此时允许除数是0,或者0.0,结果是正无穷大或负无穷大。
% : 求余 注意:求余结果不一定都是整数,当操作数中只要有一个是浮点数,则允许除数是0或0.0,结果是非数:NaN。
++ :自加 注意:当++在操作数左边,表示先加1,再运算(使用);当++在操作数右边,表示先运算(使用),在加1。
-- : 自减 注意:当--在操作数左边,表示先减1,再运算(使用);当--在操作数右边,表示先运算(使用),在减1。
2、比较运算符(6个),结果返回布尔值(true或false)
<= :小于等于,只支持两边都是数值类型。
> :大于,只支持两边都是数值类型。
>= :大于等于,只支持两边都是数值类型。
== :等于,如果两边都是数值类型,即使数据类型不同,只要值相同,都返回true。如果两边是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,且必须指向同一个对象才会返回true。还支持两个Boolean类型值进行比较。
!= :不等于,如果两边都是数值类型,无论数据类型是否相同,只要值不相同,都返回true。如果两边是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,只要不指向同一个对象就返回true。还支持两个Boolean类型值进行比较。
3、逻辑运算符(6个)
& : 与,两个操作数都是true,才返回true。
| : 或,两个操作数只要有一个是true,即返回true。
! : 非,取反,操作数是true,则返回false;操作数是false,则返回true。
^ : 异或,两个操作数不同时,返回true,相同时返回false。
&& : 短路与,只要前一个操作数是false,立即返回false,不进行后面运算。
|| : 短路或,只要前一个操作数是true,立即返回true,不进行后面运算。
4、位运算符(7个),一般操作数是整型变量和值
& :按位与,当两位同为1时才返回1。
| :按位或,只要有1位为1时即返回1。
~ :按位非,按位取反。
^ :按位异或,当两位相同时返回0,不相同时返回1。
<
>> :右移,二进制码整体右移,左边空出来的位以原来的符号位填充。
>>> :无符号右移,左边空出来的位总是以0填充。
4、赋值运算符(1个)
= 把右边的值赋给左边的变量。
扩展:示例:x*=y,对应x=x*y
+=,-=,*=,/=,%=
&=,|=,^=
<<=,>>=,>>>=
5、三目运算符(1个)
1、 算术运算符(+,—,*,/,%,++,——):依次为加,减,乘,除,求余数。除最后两种是单目运算符外,其它几种都是双目运算符。前四种运算较简单,不再展开叙述,最后三种运算的定义如下:
% 表示取余。如4/3 =1。计算公式4-int(4/3)*3
Op++ 表示 op = op +1;
Op-- 表示 op = op -1;
2. 关系运算符(>,>=, ==,<=,<,!=), 分别表示大于,大于等于,等于,小于等于,都是双目运算符,即运算结果是布尔型,即为true 或false。
3. 逻辑运算符(&&,|| , ! ) 分别表示与,或,非。前两种是双日运算符,最后一种是单目运算符,参与运算的是布尔值,其结果也为布尔值。
4. 位运算符(~,&, |, ^ >>.<<,>>>) 依次为取反,按位与,按位或,按位异或,右移位,左移位,无符号右移位
5. 赋值运算符(=) 赋值操作符,它将等号右边数据的值赋值给左边的变量。
6. 条件运算柠(?:)
条件运算符为三目运算符,其—“般格式为:a>b?a:b
7. 扩展运算符(十=’—=, *= , /= ,%=,&=,|=,^=,>>=,<<=,>>>=)
扩展运算符都是由一个双目运算符和一个等号连在一起组成(注意它们之间不能用空格隔开),以“+=”为例说明这类扩展运算符的用法
Java中有三种常见运算符,分别是算术运算符、比较运算符、逻辑运算符,当然还有位运算符、赋值运算符和三目运算符,下面分别简要介绍各运算符。
1、数学运算符(7个)
+ :加法 还可以作为字符串连接运算符
- :减法
* : 乘法
/ : 除法 注意:两个操作数都是整数类型时,结果还是整数(小数部分不能四舍五入,而是自然截取),除数不能为0。两个操作数中只要有一个是浮点数,结果也是浮点数,此时允许除数是0,或者0.0,结果是正无穷大或负无穷大。
% : 求余 注意:求余结果不一定都是整数,当操作数中只要有一个是浮点数,则允许除数是0或0.0,结果是非数:NaN。
++ :自加 注意:当++在操作数左边,表示先加1,再运算(使用);当++在操作数右边,表示先运算(使用),在加1。
-- : 自减 注意:当--在操作数左边,表示先减1,再运算(使用);当--在操作数右边,表示先运算(使用),在减1。
2、比较运算符(6个),结果返回布尔值(true或false)
<= :小于等于,只支持两边都是数值类型。
> :大于,只支持两边都是数值类型。
>= :大于等于,只支持两边都是数值类型。
== :等于,如果两边都是数值类型,即使数据类型不同,只要值相同,都返回true。如果两边是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,且必须指向同一个对象才会返回true。还支持两个Boolean类型值进行比较。
!= :不等于,如果两边都是数值类型,无论数据类型是否相同,只要值不相同,都返回true。如果两边是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,只要不指向同一个对象就返回true。还支持两个Boolean类型值进行比较。
3、逻辑运算符(6个)
& : 与,两个操作数都是true,才返回true。
| : 或,两个操作数只要有一个是true,即返回true。
! : 非,取反,操作数是true,则返回false;操作数是false,则返回true。
^ : 异或,两个操作数不同时,返回true,相同时返回false。
&& : 短路与,只要前一个操作数是false,立即返回false,不进行后面运算。
|| : 短路或,只要前一个操作数是true,立即返回true,不进行后面运算。
4、位运算符(7个),一般操作数是整型变量和值
& :按位与,当两位同为1时才返回1。
| :按位或,只要有1位为1时即返回1。
~ :按位非,按位取反。
^ :按位异或,当两位相同时返回0,不相同时返回1。
<
>> :右移,二进制码整体右移,左边空出来的位以原来的符号位填充。
>>> :无符号右移,左边空出来的位总是以0填充。
4、赋值运算符(1个)
= 把右边的值赋给左边的变量。
扩展:示例:x*=y,对应x=x*y
+=,-=,*=,/=,%=
&=,|=,^=
<<=,>>=,>>>=
5、三目运算符(1个)
表达式? true时返回:false时返回 ,不常用,可作为if-else的精简写法。
Java中的常用六种运算符
六种运算符:算术运算符、关系运算符、逻辑运算符、赋值运算符、字符串连接、三目/条件运算符。
(1)算术运算符
包含+、-、*、/、%、++、--。
和数学计算差不多。不同之处如下:
<1>除法:当两个整数相除时,结果有小数,则会无条件舍去,只保留整数。
<2>%表示取余数。余数为0,则表示可以被整除。
<3>++和--的用法
这里以++为例子,--同理即可。有两种情况:
单独使用情况
所谓单独使用,指的是一个语句里面,只有a++或者++a。不能出现其他的代码。
上面的代码单独使用,++在前、在后一个效果。
被使用情况
被使用情况下,++在前,例如:++a相当于a=a+1。
上面代码,b=++a相当于a=a+1,然后b=a。所以b的最终结果为a自加1后的值,即:b=11。
被使用情况下,++在后,例如:a++相当于a。
上面代码,b=a++相当于b=a,然后a=a+1。所以b的最终结果为a的值,即:b=10。
所谓被使用就是除了++a或者a++之外,含有其他语句,例如:上面代码++a之后含有赋值语句。
(2)关系运算符
包含>、<、>=、<=、==、!=。
关系运算的结果都是boolean类型,即:true或者false。关系成立,则为true,关系不成立,则为false。
(3)逻辑运算符
包含&&(与)、||(或)、!(非)。
与(&&)运算:全为true,整个表达式结果则为true。
或(||)运算:有一个为true,则整个表达式结果为true。
非(!)运算:非真则假。
逻辑运算符一般要和关系运算符一起使用。所以逻辑运算的结果也为boolean值。
逻辑运算两个特殊之处:
逻辑与短路(&&)现象
逻辑与短路指的是当多个关系表达式通过与(&&)运算时,第一个关系表达式如果为false,那么后面的关系表达式的代码就不会执行。
举例说明,代码如下:
以上代码分析:
由于a=5,b=6,所以第一个关系a>b为false,出现与短路现象,所以++ac两个表达式不会被执行,所以最终结果flag=false,而a和b的值不会增加减少。>
换句话说,如果没有出现与短路,那么代码执行结束后,a应该加1,b应该减1。
逻辑或短路(||)现象
逻辑或短路指的是当多个关系表达式通过或(||)运算时,第一个关系表达式如果为true,那么后面的关系表达式的代码就不会执行。
代码和与短路类似。
分析和与短路类似。
(4)赋值运算符
包含=、+=、-=、*=、/=、%=。
赋值可以分为两类:
简单赋值运算符:=
扩展赋值运算符:+=、-=、*=、/=、%=
扩展赋值运算符具有数据类型强制转换的功能。
上面代码都是给s进行赋值操作,但是第二种方式却编译错误。
分析:因为short类型在参与运算时,一律先转换为int类型,然后再进行计算。s+=10相当于s=s+10,但是由于扩张赋值运算符具有强制转换功能,所以s+=10等价于s=(short)(s+10),结果编译正确。相反的,简单赋值不具有该功能,所以s=s+10计算时,先转换为int类型,s+10结果为int类型,而s为short类型,所以数据类型不匹配,编译错误。
(5)字符串连接运算符
包含+,就一个加号表示。
连接运算符也有两种情况:
若两边是数值,则直接做加法运算。
若有一边是字符串,则进行字符串连接。
常见面试题:
// 下面输出结果分别为多少
System.out.println(10+20+30+"");
System.out.println(10+20+""+30);
System.out.println(""+10+20+30);
第一个结果为字符串"60"。
第二个结果为字符串"3030"。
第三个结果为字符串"102030"。
(6)三目/条件运算符
格式:表达式 ? 值1:值2
当表达式的值为true时,整个表达式的值取值1。
当表达式的值为false时,整个表达式的值取值2。
三目运算符可以替换简单的if...else结构。
1、算术运算符 +-*/% ++ --
2、赋值运算符 = += -= *= /= %=
3、逻辑运算符 ! && || ^
4、比较运算符 > < <= >= !=
5、位运算符 << >>>
6、三元运算符
算术运算符:
1、+:加法运算符
(1)字符串之间的拼接
(2)表示正数
(3)相加运算
2、-:减法运算符
(1)表示负数
(2)相减运算
3、/:除法运算符 取商运算符
(1)两个整数相除,只取商,不取余
(2)如果有一个数是小数,结果还是一个小数
4、%:取余运算符
(1)两个整数相除,取两个数相除的余数
(2)两个数相除取余数,余数的正负只和第一个数的正负有关,跟第二个么有关系
自增自减:
++:在变量基础上加1
--:在变量的基础上减1
1、注意事项:
(1)如果自增或者自减单独作为一句存在,符号放在变量前和变量后么有区别,都是 自增或者自减1;
(2)如果自增和自减和其他语句或者表达式一起存在
符号放在变量的后面,先取值,后运算
符号放在变量的前面,先运算,后取值
赋值运算符:
基础的赋值运算符:=
将=右边的数据赋值给左边
扩展的赋值运算符:
+= -= *= /= %=
将符号左右两边的数据进行对应的运算,将运算的结果赋值给左边的变量
比较运算符:
基础的比较运算符:
> >= < <=
只可以比较数值类型:整数 小数 字符
扩展的比较运算符:
== !=
逻辑运算符:
1、&& :逻辑短路与
左右两边的表达式结果都为真,运算结果为真
左右两边的表达式结果有一个为假,运算结果为假
特点:
如果符号左边的表达式结果为假,右边的表达式直接不执行,直接取假
如果符号左边的表达式结果为真,右边的表达式需要执行,结果根据两个表达式的 取值有关
2、||:逻辑短路或
左右两边的表达式结果有一个为真,运算结果就为真
左右两边的表达式结果都为假,运算结果就为假
特点:
如果符号左边的表达式运算结果为真,右边的表达式跳过,直接取真
如果符号左边的表达式结果为假,右边的表达式需要执行,执行的结果跟两个表达 式的结果有关
3、!:逻辑非
对表达式的结果取反
遇真为假,遇假为真
相关问题推荐
对于每一位才开始接触JAVA的新手来说,先不要管算法和数据结构,大多数简单的程序不需要用到算法和数据结构,所以当你真正需要时再去学习。编程一段时间以后,你就会知道在哪些地方用到他们。这时知道算法的名字并了解它们的功能,然后动手去实践。当我们在去...
2个都很好就业,更关键的是要学得到东西
获取Map集合中所有的key可以通过map集合的keySet()方法获取例如: Map map = new HashMap(); map.put(xx,xx); //存放数据 //.... 省略 Set set = map.keySet(); //可以通过迭代器进行测试 Iterator iter = set.iter...
不同年龄,不同掌握程度,学历,找工作城市,面试能力这是一个多方面影响的结果,如果是平均值的话,全国平均薪资14k左右
具体学多久,根据自己的学习力,自律性、解决问题能力来决定若系统性学习,跟着讲师的节奏走,大概半年左右,有专业的讲师把课程进行规划,尽心系统学习,有问题,讲师会帮忙解决,学习的效率很高,避免了自学中出现各种问题解决不了,而耽误很多时间,可能会...
(1)idea启动时会有两个快捷方式,安装完后默认生成在桌面的是32位的idea的快捷方式,如果我们使用这个快捷方式运行大项目,一般都会很卡。解决方法是找到idea的安装目录,然后进入bin文件夹,找到名称为idea64的应用程序,右键他生成桌面快捷方式。以后每次...
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要...
ava是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。(一)Package(包)的命名Package的名字应该都是由一个小写单词组成,例如com、xuetang9、compan...
public class Point { private int x; private int y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } ...
经典版单例模式public class Singleton { private static Singleton uniqueInstance;//利用一个静态常量来记录singleton类的唯一实例。 private Singleton() { } public static Singleton getInstance()...
哈希表的长度一般是定长的,在存储数据之前我们应该知道我们存储的数据规模是多大,应该尽可能地避免频繁地让哈希表扩容。但是如果设计的太大,那么就会浪费空间,因为我们跟不用不到那么大的空间来存储我们当前的数据规模;如果设计的太小,那么就会很容易发...
1. DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才...
1)作用不同: throw用于程序员自行产生并抛出异常; throws用于声明在该方法内抛出了异常2) 使用的位置不同: throw位于方法体内部,可以作为单独语句使用; throws必须跟在方法参数列表的后面,不能单独使用。3)内容不同: throw抛出一个异常对象,且只能是...
基本执行过程如下:1)程序首先执行可能发生异常的try语句块。2)如果try语句没有出现异常则执行完后跳至finally语句块执行;3)如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。4)catch语句块可以有多个,分别捕获不同类型...
100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。 400 语义有误,当前请求无法被服务器理解。 401 当前请求需要用户验证...
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。受检异常跟程序运行的上下文环境有关,即使程序设计无误,仍然可能因使用的问题而引发。Java编译...