了解下JAVA的java运算符总结
没有那个大公司会傻了吧唧用.net网页编程开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net网页编程不行,限制在window系统,又是捆绑,鄙视微软之!上面这个例子向人人展现了怎样伴同特定的运算符利用主数据范例。从基本上说,它是统一个例子反重复复地实行,只是利用了分歧的主数据范例。文件编译时不会报错,由于那些会招致毛病的行已用//!酿成了正文内容。
//:AllOps.java
//Testsalltheoperatorsonallthe
//primitivedatatypestoshowwhich
//onesareacceptedbytheJavacompiler.
classAllOps{
//Toaccepttheresultsofabooleantest:
voidf(booleanb){}
voidboolTest(booleanx,booleany){
//Arithmeticoperators:
//!x=x*y;
//!x=x/y;
//!x=x%y;
//!x=x+y;
//!x=x-y;
//!x++;
//!x--;
//!x=+y;
//!x=-y;
//Relationalandlogical:
//!f(x>y);
//!f(x>=y);
//!f(x<y);
//!f(x<=y);
f(x==y);
f(x!=y);
f(!y);
x=x&&y;
x=x||y;
//Bitwiseoperators:
//!x=~y;
x=x&y;
x=x|y;
x=x^y;
//!x=x<<1;
//!x=x>>1;
//!x=x>>>1;
//Compoundassignment:
//!x+=y;
//!x-=y;
//!x*=y;
//!x/=y;
//!x%=y;
//!x<<=1;
//!x>>=1;
//!x>>>=1;
x&=y;
x^=y;
x|=y;
//Casting:
//!charc=(char)x;
//!byteB=(byte)x;
//!shorts=(short)x;
//!inti=(int)x;
//!longl=(long)x;
//!floatf=(float)x;
//!doubled=(double)x;
}
voidcharTest(charx,chary){
//Arithmeticoperators:
x=(char)(x*y);
x=(char)(x/y);
x=(char)(x%y);
x=(char)(x+y);
x=(char)(x-y);
x++;
x--;
x=(char)+y;
x=(char)-y;
//Relationalandlogical:
f(x>y);
f(x>=y);
f(x<y);
f(x<=y);
f(x==y);
f(x!=y);
//!f(!x);
//!f(x&&y);
//!f(x||y);
//Bitwiseoperators:
x=(char)~y;
x=(char)(x&y);
x=(char)(x|y);
x=(char)(x^y);
x=(char)(x<<1);
x=(char)(x>>1);
x=(char)(x>>>1);
//Compoundassignment:
x+=y;
x-=y;
x*=y;
x/=y;
x%=y;
x<<=1;
x>>=1;
x>>>=1;
x&=y;
x^=y;
x|=y;
//Casting:
//!booleanb=(boolean)x;
byteB=(byte)x;
shorts=(short)x;
inti=(int)x;
longl=(long)x;
floatf=(float)x;
doubled=(double)x;
}
voidbyteTest(bytex,bytey){
//Arithmeticoperators:
x=(byte)(x*y);
x=(byte)(x/y);
x=(byte)(x%y);
x=(byte)(x+y);
x=(byte)(x-y);
x++;
x--;
x=(byte)+y;
x=(byte)-y;
//Relationalandlogical:
f(x>y);
f(x>=y);
f(x<y);
f(x<=y);
f(x==y);
f(x!=y);
//!f(!x);
//!f(x&&y);
//!f(x||y);
//Bitwiseoperators:
x=(byte)~y;
x=(byte)(x&y);
x=(byte)(x|y);
x=(byte)(x^y);
x=(byte)(x<<1);
x=(byte)(x>>1);
x=(byte)(x>>>1);
//Compoundassignment:
x+=y;
x-=y;
x*=y;
x/=y;
x%=y;
x<<=1;
x>>=1;
x>>>=1;
x&=y;
x^=y;
x|=y;
//Casting:
//!booleanb=(boolean)x;
charc=(char)x;
shorts=(short)x;
inti=(int)x;
longl=(long)x;
floatf=(float)x;
doubled=(double)x;
}
voidshortTest(shortx,shorty){
//Arithmeticoperators:
x=(short)(x*y);
x=(short)(x/y);
x=(short)(x%y);
x=(short)(x+y);
x=(short)(x-y);
x++;
x--;
x=(short)+y;
x=(short)-y;
//Relationalandlogical:
f(x>y);
f(x>=y);
f(x<y);
f(x<=y);
f(x==y);
f(x!=y);
//!f(!x);
//!f(x&&y);
//!f(x||y);
//Bitwiseoperators:
x=(short)~y;
x=(short)(x&y);
x=(short)(x|y);
x=(short)(x^y);
x=(short)(x<<1);
x=(short)(x>>1);
x=(short)(x>>>1);
//Compoundassignment:
x+=y;
x-=y;
x*=y;
x/=y;
x%=y;
x<<=1;
x>>=1;
x>>>=1;
x&=y;
x^=y;
x|=y;
//Casting:
//!booleanb=(boolean)x;
charc=(char)x;
byteB=(byte)x;
inti=(int)x;
longl=(long)x;
floatf=(float)x;
doubled=(double)x;
}
voidintTest(intx,inty){
//Arithmeticoperators:
x=x*y;
x=x/y;
x=x%y;
x=x+y;
x=x-y;
x++;
x--;
x=+y;
x=-y;
//Relationalandlogical:
f(x>y);
f(x>=y);
f(x<y);
f(x<=y);
f(x==y);
f(x!=y);
//!f(!x);
//!f(x&&y);
//!f(x||y);
//Bitwiseoperators:
x=~y;
x=x&y;
x=x|y;
x=x^y;
x=x<<1;
x=x>>1;
x=x>>>1;
//Compoundassignment:
x+=y;
x-=y;
x*=y;
x/=y;
x%=y;
x<<=1;
x>>=1;
x>>>=1;
x&=y;
x^=y;
x|=y;
//Casting:
//!booleanb=(boolean)x;
charc=(char)x;
byteB=(byte)x;
shorts=(short)x;
longl=(long)x;
floatf=(float)x;
doubled=(double)x;
}
voidlongTest(longx,longy){
//Arithmeticoperators:
x=x*y;
x=x/y;
x=x%y;
x=x+y;
x=x-y;
x++;
x--;
x=+y;
x=-y;
//Relationalandlogical:
f(x>y);
f(x>=y);
f(x<y);
f(x<=y);
f(x==y);
f(x!=y);
//!f(!x);
//!f(x&&y);
//!f(x||y);
//Bitwiseoperators:
x=~y;
x=x&y;
x=x|y;
x=x^y;
x=x<<1;
x=x>>1;
x=x>>>1;
//Compoundassignment:
x+=y;
x-=y;
x*=y;
x/=y;
x%=y;
x<<=1;
x>>=1;
x>>>=1;
x&=y;
x^=y;
x|=y;
//Casting:
//!booleanb=(boolean)x;
charc=(char)x;
byteB=(byte)x;
shorts=(short)x;
inti=(int)x;
floatf=(float)x;
doubled=(double)x;
}
voidfloatTest(floatx,floaty){
//Arithmeticoperators:
x=x*y;
x=x/y;
x=x%y;
x=x+y;
x=x-y;
x++;
x--;
x=+y;
x=-y;
//Relationalandlogical:
f(x>y);
f(x>=y);
f(x<y);
f(x<=y);
f(x==y);
f(x!=y);
//!f(!x);
//!f(x&&y);
//!f(x||y);
//Bitwiseoperators:
//!x=~y;
//!x=x&y;
//!x=x|y;
//!x=x^y;
//!x=x<<1;
//!x=x>>1;
//!x=x>>>1;
//Compoundassignment:
x+=y;
x-=y;
x*=y;
x/=y;
x%=y;
//!x<<=1;
//!x>>=1;
//!x>>>=1;
//!x&=y;
//!x^=y;
//!x|=y;
//Casting:
//!booleanb=(boolean)x;
charc=(char)x;
byteB=(byte)x;
shorts=(short)x;
inti=(int)x;
longl=(long)x;
doubled=(double)x;
}
voiddoubleTest(doublex,doubley){
//Arithmeticoperators:
x=x*y;
x=x/y;
x=x%y;
x=x+y;
x=x-y;
x++;
x--;
x=+y;
x=-y;
//Relationalandlogical:
f(x>y);
f(x>=y);
f(x<y);
f(x<=y);
f(x==y);
f(x!=y);
//!f(!x);
//!f(x&&y);
//!f(x||y);
//Bitwiseoperators:
//!x=~y;
//!x=x&y;
//!x=x|y;
//!x=x^y;
//!x=x<<1;
//!x=x>>1;
//!x=x>>>1;
//Compoundassignment:
x+=y;
x-=y;
x*=y;
x/=y;
x%=y;
//!x<<=1;
//!x>>=1;
//!x>>>=1;
//!x&=y;
//!x^=y;
//!x|=y;
//Casting:
//!booleanb=(boolean)x;
charc=(char)x;
byteB=(byte)x;
shorts=(short)x;
inti=(int)x;
longl=(long)x;
floatf=(float)x;
}
}///:~
注重布尔值(boolean)的才能十分无限。我们只能为其付与true和false值。并且可测试它为真仍是为假,但不成为它们再增加布尔值,或举行其他其他任何范例运算。
在char,byte和short中,我们可看到算术运算符的“转型”效果。对这些范例的任何一个举行算术运算,城市取得一个int了局。必需将其明白“外型”回本来的范例(减少转换会形成信息的丧失),以便将值赋回谁人范例。但关于int值,却不用举行外型处置,由于一切数据都已属于int范例。但是,不要抓紧小心,以为统统事变都是平安的。假如对两个充足年夜的int值实行乘法运算,了局值就会溢出。上面这个例子向人人展现了这一点:
//:Overflow.java
//Surprise!Javaletsyouoverflow.
publicclassOverflow{
publicstaticvoidmain(String[]args){
intbig=0x7fffffff;//maxintvalue
prt("big="+big);
intbigger=big*4;
prt("bigger="+bigger);
}
staticvoidprt(Strings){
System.out.println(s);
}
}///:~输入了局以下:
big=2147483647
bigger=-4
并且不会从编译器那边收到堕落提醒,运转时也不会呈现非常反响。爪哇咖啡(Java)的确是很好的工具,但却没有“那末”好!
关于char,byte大概short,夹杂赋值其实不必要外型。即便它们实行转型操纵,也会取得与间接算术运算不异的了局。而在另外一方面,将外型略往可以使代码显得加倍简洁。
人人能够看到,除boolean之外,任何一种主范例都可经由过程外型变成其他主范例。一样地,当外型成一种较小的范例时,必需寄望“减少转换”的成果。不然会在外型过程当中不知不觉地丧失信息。
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的), 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 是一种使用者不需花费很多时间学习的语言 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
页:
[1]
2