;
returntotal;
}
publicstaticvoidmain(String[]args){
inta;
a=Varargs.add(1,2,3,4,5,6,7,8,9,10);
System.out.println(a);
}
4主动完成装箱息争箱操纵(Boxing/UnboxingConversions)
申明:完成了基础范例与外覆类之间的隐式转换。基础范例至外覆类的转换称为装箱,外覆类至基础范例的转换为解箱。这些类包含
PrimitiveTypeReferenceType
booleanBoolean
byteByte
charCharacter
shortShort
intInteger
longLong
floatFloat
doubleDouble
比方,旧的完成体例
IntegerintObject;
intintPrimitive;
ArrayListarrayList=newArrayList();
intPrimitive=11;
intObject=newInteger(intPrimitive);
arrayList.put(intObject);//不克不及放进int范例,只能使Integer
新的完成体例
intintPrimitive;
ArrayListarrayList=newArrayList();
intPrimitive=11;
file://在这里intPrimitive被主动的转换为Integer范例
arrayList.put(intPrimitive);
5静态导进(StaticImports)
很复杂的工具,看一个例子:
没有静态导进
Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
有了静态导进
importstaticjava.lang.Math.*;
sqrt(pow(x,2)+pow(y,2));
个中importstaticjava.lang.Math.*;就是静态导进的语法,它的意义是导进Math类中的一切static办法和属性。如许我们在利用这些办法和属性时就不用写类名。
必要注重的是默许包没法用静态导进,别的假如导进的类中有反复的办法和属性则必要写出类名,不然编译时没法经由过程。
6列举类(EnumerationClasses)
用法:publicenumName{types,….}
复杂的例子:
publicenumColors{Red,Yellow,Blue,Orange,Green,Purple,Brown,Black}
publicstaticvoidmain(String[]args){
ColorsmyColor=Colors.Red;
System.out.println(myColor);
}
又一个复杂例子:
importjava.util.*;
enumOperatingSystems{windows,unix,linux,macintosh}
publicclassEnumExample1{
publicstaticvoidmain(Stringargs[]){
OperatingSystemsos;
os=OperatingSystems.windows;
switch(os){
casewindows:
System.out.println(“YouchoseWindows!”);
break;
caseunix:
System.out.println(“YouchoseUnix!”);
break;
caselinux:
System.out.println(“YouchoseLinux!”);
break;
casemacintosh:
System.out.println(“YouchoseMacintosh!”);
break;
default:
System.out.println(“Idon’tknowyourOS.”);
break;
}
}
}
应运enum简写的例子:
importjava.util.*;
publicclassEnumTest
{
publicstaticvoidmain(String[]args)
{
Scannerin=newScanner(System.in);
System.out.print("Enterasize:(SMALL,MEDIUM,LARGE,EXTRA_LARGE)");
Stringinput=in.next().toUpperCase();
Sizesize=Enum.valueOf(Size.class,input);
System.out.println("size="+size);
System.out.println("abbreviation="+size.getAbbreviation());
if(size==Size.EXTRA_LARGE)
System.out.println("Goodjob--youpaidattentiontothe_.");
}
}
enumSize
{
SMALL("S"),MEDIUM("M"),LARGE("L"),EXTRA_LARGE("XL");
privateSize(Stringabbreviation){this.abbreviation=abbreviation;}
publicStringgetAbbreviation(){returnabbreviation;}
privateStringabbreviation;
}
enum类中具有办法的一个例子:
enumProgramFlags{
showErrors(0x01),
includeFileOutput(0x02),
useAlternateProcessor(0x04);
privateintbit;
ProgramFlags(intbitNumber){
bit=bitNumber;
}
publicintgetBitNumber(){
return(bit);
}
}
publicclassEnumBitmapExample{
publicstaticvoidmain(Stringargs[]){
ProgramFlagsflag=ProgramFlags.showErrors;
System.out.println(“Flagselectedis:“+
flag.ordinal()+
“whichis“+
flag.name());
}
}
7元数据(Metadata)
请参考
http://www-900.ibm.com/developerWorks/cn/java/j-annotate1/
http://www-900.ibm.com/developerworks/cn/java/j-annotate2.shtml
8BuildingStrings(StringBuilder类)
在JDK5.0中引进了StringBuilder类,该类的办法不是同步(synchronized)的,这使得它比StringBuffer加倍轻量级和无效。
9把持台输出(ConsoleInput)
在JDK5.0之前我们只能经由过程JOptionPane.showInputDialog举行输出,但在5.0中我们能够经由过程类Scanner在把持台举行输出操纵
比方在1.4中的输出
Stringinput=JOptionPane.showInputDialog(prompt);
intn=Integer.parseInt(input);
doublex=Double.parseDouble(input);
s=input;
在5.0中我们能够
Scannerin=newScanner(System.in);
System.out.print(prompt);
intn=in.nextInt();
doublex=in.nextDouble();
Strings=in.nextLine();
10CovariantReturnTypes(不知道怎样翻译,也许是改动前往范例)
JDK5之前我们掩盖一个办法时我们没法改动被办法的前往范例,但在JDK5中我们能够改动它
比方1.4中我们只能
publicObjectclone(){...}
...
Employeecloned=(Employee)e.clone();
可是在5.0中我们能够改动前往范例为Employee
publicEmployeeclone(){...}
...
Employeecloned=e.clone();
11格局化I/O(FormattedI/O)
增添了相似C的格局化输出输入,复杂的例子:
publicclassTestFormat{
publicstaticvoidmain(String[]args){
inta=150000,b=10;
floatc=5.0101f,d=3.14f;
System.out.printf("%4d%4d%n",a,b);
System.out.printf("%x%x%n",a,b);
System.out.printf("%3.2f%1.1f%n",c,d);
System.out.printf("%1.3e%1.3e%n",c,d*100);
}
}
输入了局为:
15000010
249f0a
5.013.1
5.010e+003.140e+02
上面是一些格局化参数申明(摘自CoreJava2VolumeI-Fundamentals,SeventhEdition)
Table3-5.Conversionsforprintf
ConversionCharacter
Type
Example
d
Decimalinteger
159
x
Hexadecimalinteger
9f
o
Octalinteger
237
f
Fixed-pointfloating-point
15.9
e
Exponentialfloating-point
1.59E+01
g
Generalfloating-point(theshorterofeandf)
a
Hexadecimalfloatingpoint
0x1.fccdp3
s
String
Hello
c
Character
H
b
Boolean
TRUE
h
Hashcode
42628b2
tx
Dateandtime
SeeTable3-7
%
Thepercentsymbol
%
n
Theplatform-dependentlineseparator
Table3-7.DateandTimeConversionCharacters
ConversionCharacter
Type
Example
C
Completedateandtime
MonFeb0918:05:19PST2004
F
ISO8601date
2004-02-09
D
U.S.formatteddate(month/day/year)
02/09/2004
T
24-hourtime
18:05:19
r
12-hourtime
06:05:19pm
R
24-hourtime,noseconds
18:05
Y
Four-digityear(withleadingzeroes)
2004
y
Lasttwodigitsoftheyear(withleadingzeroes)
04
C
Firsttwodigitsoftheyear(withleadingzeroes)
20
B
Fullmonthname
February
borh
Abbreviatedmonthname
Feb
m
Two-digitmonth(withleadingzeroes)
02
d
Two-digitday(withleadingzeroes)
09
e
Two-digitday(withoutleadingzeroes)
9
A
Fullweekdayname
Monday
a
Abbreviatedweekdayname
Mon
j
Three-digitdayofyear(withleadingzeroes),between001and366
069
H
Two-digithour(withleadingzeroes),between00and23
18
k
Two-digithour(withoutleadingzeroes),between0and23
18
I
Two-digithour(withleadingzeroes),between01and12
06
l
Two-digithour(withoutleadingzeroes),between1and12
6
M
Two-digitminutes(withleadingzeroes)
05
S
Two-digitseconds(withleadingzeroes)
19
L
Three-digitmilliseconds(withleadingzeroes)
047
N
Nine-digitnanoseconds(withleadingzeroes)
047000000
P
Uppercasemorningorafternoonmarker
PM
p
Lowercasemorningorafternoonmarker
pm
z
RFC822numericoffsetfromGMT
-0800
Z
Timezone
PST
s
Secondssince1970-01-0100:00:00GMT
1078884319
E
Millisecondssince1970-01-0100:00:00GMT
1078884319047
Table3-6.Flagsforprintf
Flag
Purpose
Example
+
Printssignforpositiveandnegativenumbers
+3333.33
space
Addsaspacebeforepositivenumbers
|3333.33|
0
Addsleadingzeroes
003333.33
-
Left-justifiesfield
|3333.33|
(
Enclosesnegativenumberinparentheses
(3333.33)
,
Addsgroupseparators
3,333.33
#(forfformat)
Alwaysincludesadecimalpoint
3,333.
#(forxoroformat)
Adds0xor0prefix
0xcafe
^
Convertstouppercase
0XCAFE
$
Specifiestheindexoftheargumenttobeformatted;forexample,%1$d%1$xprintsthefirstargumentindecimalandhexadecimal
1599F
<
Formatsthesamevalueasthepreviousspecification;forexample,%d%<xprintsthesamenumberindecimalandhexadecimal
这里是一些复杂的先容,更具体的申明请参考:
CoreJava2VolumeI-Fundamentals,SeventhEdition
CoreJava2VolumeII-AdvancedFeatures,SeventhEdition
内里都有一些很出色的形貌,中文称号就是《Java中心手艺》。只要第七版才有J2SE5.0的先容,可是第七版仿佛还没有中文版。本文还参考了ProfessionalJavaJDK-5thEdition.
其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:
作者: 老尸 时间: 2015-1-20 17:33
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 柔情似水 时间: 2015-1-24 11:29
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 兰色精灵 时间: 2015-1-24 15:07
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 分手快乐 时间: 2015-1-25 22:16
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 愤怒的大鸟 时间: 2015-2-4 06:07
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 再见西城 时间: 2015-2-6 14:21
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 只想知道 时间: 2015-2-10 17:18
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 莫相离 时间: 2015-2-11 14:10
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 简单生活 时间: 2015-2-13 00:59
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 山那边是海 时间: 2015-2-18 12:05
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: 第二个灵魂 时间: 2015-3-6 05:50
是一种为 Internet发展的计算机语言
作者: 透明 时间: 2015-3-11 02:31
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 仓酷云 时间: 2015-3-12 08:31
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
欢迎光临 仓酷云 (http://ckuyun.com/) |
Powered by Discuz! X3.2 |