java10编程语言都有哪些新特点?

java10编程语言都有哪些新特点?,第1张

前一段时间我们曾经给大家简单介绍了关于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

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11498259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存