前一段时间我们曾经给大家简单介绍了关于java10的特性以及发布日期等事情。今天,我们一起来正式了解一下java10编程开发语言的新特性都有哪些,以及针对这些特性的使用方法。
Java10新特性
这次发布的Java10,新带来的特性并不多。
根据官网公开资料,共有12个JEP(JDKEnhancementProposal特性加强提议),带来以下加强功能:
JEP286,var局部变量类型推断。
JEP296,将原来用Mercurial管理的众多JDK仓库代码,合并到一个仓库中,简化开发和管理过程。
JEP304,统一的垃圾回收接口。
JEP307,G1垃圾回收器的并行完整垃圾回收,实现并行性来改善坏情况下的延迟。
JEP310,应用程序类数据(AppCDS)共享,通过跨进程共享通用类元数据来减少内存占用空间,和减少启动时间。
JEP312,ThreadLocal握手交互。在不进入到全局JVM安全点(Safepoint)的情况下,对线程执行回调。优化可以只停止单个线程,而不是停全部线程或一个都不停。
JEP313,移除JDK中附带的javah工具。可以使用javac-h代替。
JEP314,使用附加的Unicode语言标记扩展。
JEP317,能将堆内存占用分配给用户指定的备用内存设备。
JEP317,使用Graal基于Java的编译器,可以预先把Java代码编译成本地代码来提升效能。
JEP318,在OpenJDK中提供一组默认的根证书颁发机构证书。开源目前Oracle提供的的JavaSE的根证书,这样OpenJDK对开发人员使用起来更方便。
JEP322,基于时间定义的发布版本,即上述提到的发布周期。版本号为\$FEATURE.\$INTERIM.\$UPDATE.\$PATCH,分别是大版本,中间版本,升级包和补丁版本。
部分特性说明
1.var类型推断。
这个语言功能在其他一些语言(C#、JavaScript)和基于JRE的一些语言(Scala和Kotlin)中,早已被加入。
在Java语言很早就在考虑,北大青鸟云南计算机学院http://www.kmbdqn.cn/发现早在2016年正式提交了JEP286提议。后来举行了一次公开的开发工程师调查,获得多建议的是采用类似Scala的方案,“同时使用val和var”,约占一半二多的是“只使用var”,约占四分之一。后来Oracle公司经过慎重考虑,采用了只使用var关键字的方案。
学生资源可以在这本书的配套网站上面找,我已经给你找到了:http://wps.pearsoned.com/ecs_liang_ijp_10/
打开网站后点击如图所示的链接,你就能看到了
先给你个第七题吧 我以前做过的
public static void main(String[] args) {Scanner sc = new Scanner(System.in)
System.err.println("输入")
int y = sc.nextInt()
f(y/2+1)
}
private static void f(int x){
int f1 =1,f2=1,i=3
if(x==1)System.out.print(f1)
if(x==2)System.err.print(f1+" "+f2)
if(x>=3){
System.out.print(f1+" "+f2)
while(x>=i){
f1=f1+f2
System.err.print(" "+f1)
i++
f2=f2+f1
System.err.print(" "+f2)
}
}
}
第九题
public static void main(String[] args) {//阶乘1-n
Scanner in = new Scanner(System.in)
System.err.println("ssss")
int n = in.nextInt()
System.err.println(getN(n))
}
public static int getN(int n) {
if (n < 0 ) {
System.err.println("dayu 0")
return -1
} else if (n == 0) {
return 1
} else {
return n * getN(n - 1)
}
}
第八题
public static void main(String[] args) {
for(int i=100i<999i++){
int a = i/100
int b = i%100/10
int c = i%10
int sum = a*a*a + b*b*b + c*c*c
if(sum==i){
System.err.println(i)
}
}
}
第十题
public static void main(String[] args) {
int sum=0
int k=0
for(int i=1i<=100i++){
k = i*(100-i)
sum=sum+k
}
System.err.println(sum)
}
第六题
public static void main(String[] args) {System.out.println("种数="+pay(100,0))
}
private static final int LEN = 3
static int[] a={1,2,5}
public static int remain(int i){
//求出当前未使用的钞票之和 7 5
int total = 0
for(int j=LEN-1j>ij--)
total += a[j]
return total
}
private static int pay(int total, int i) {
int count = 0
if(i>2){
if(total == 0){
//当总钱数减完时,一种方案完成,返回1
return 1
}
return 0
}
else {
//判断余额是否小于于等于没用的钞票,如果没有,不能再选当前的钞票了
for(int n=1total-n*a[i]>=remain(i)n++){
count += pay(total-n*a[i],i+1)
}
}
return count
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)