小编bhs*_*cer的帖子

Java 10中"受限关键字"和"保留类型名称"之间的概念差异是什么?

Java 10附带了新的局部变量类型推断.令牌var可用于减少声明变量时所需的样板.例如

var s = "hello";
Run Code Online (Sandbox Code Playgroud)

根据什么类型的令牌在Java 10中完全是"var"?这个新令牌不是"关键字",而是"保留类型名称".因此,单词"var"仍然可以用作变量名,它保持与现有代码的向后兼容性.

var var = "you can do this";
Run Code Online (Sandbox Code Playgroud)

当在Java 9中引入"模块"功能时,这个新令牌的类型(以及其他9个相关令牌)被称为"受限制的关键字".也就是说,它们仅被视为特定上下文特定限制下的关键字.例如,您仍然可以使用称为模块的变量.

当新的语言功能以不会破坏现有用户定义符号的方式添加到C++时,它们被称为"上下文相关关键字".

varJava 10中新的"保留类型名称" 标记与"上下文相关关键字"或"受限制关键字" 之间是否存在概念差异.也就是说,var在某些特定于上下文的限制下,新令牌不仅仅是一个关键字.如果是这种情况,为什么不将它简单地添加到"受限制的关键字"列表中?

为了进一步增加我的混淆,JLS的当前草案版本说:

字符序列var通常被视为标识符,但在某些特殊情况下,其行为就像是关键字一样.

这个定义听起来像是一个"受限制的关键字".

java java-10

20
推荐指数
1
解决办法
824
查看次数

如何在JavaScript中计算与Python timeit类似的函数

测量JavaScript中函数执行时间的最佳方法是什么?最好类似于Python timeit.

javascript performance function

9
推荐指数
1
解决办法
1723
查看次数

Ajax API调用的Base64身份验证

我正在尝试获得基本的API调用,但API提供程序不提供任何开发人员支持.它们要求每个呼叫都在base64基本身份验证标头中发送.当我使用他们的在线API测试实用程序时,我的密钥是有效的,但我不能让它在我自己的代码或JSFiddle.net中工作.我甚至试图复制从我的代码中的测试实用程序返回的"身份验证:基本...."值,但这不起作用.

我在Stackoverflow中查看了很多示例,并且我对其他API使用类似的代码没有问题.base64基本身份验证对我来说是新的,当我在IE中运行代码时,调试器会声明一个我找不到的语法错误.如果发生任何错误,我期待401错误.

有关错误的任何想法或其他调试方法?

$(document).ready(function() {
    var mySecret = "somevalue";
    var myClientId = "somevalue";
    $.ajax({
        url: "https://www.udemy.com/api-2.0/courses/",
        type: 'GET', 
        dataType: "json", 
        contentType: "text/plain",
        beforeSend: function (xhr) {
            xhr.setRequestHeader("Authorization", "Basic " + btoa(myClientId+":"+ mySecret));
        },
        success: function(data) {
            alert("hi");
        }
    }); 
});
Run Code Online (Sandbox Code Playgroud)

ajax jquery

7
推荐指数
1
解决办法
2374
查看次数

如何处理Apache Curator Distributed Lock连接丢失

假设我有两个分布式进程运行以下代码,该代码使用zookeeper和curator进行共享锁:

public static void main(String[] args) throws Exception {
    CuratorFramework client = CuratorFrameworkFactory.newClient("localhost:2181", new ExponentialBackoffRetry(500, 2));
    client.start();
    InterProcessMutex lock = new InterProcessMutex(client, "/12345");

    System.out.println("before acquire");
    lock.acquire();
    System.out.println("lock has been acquired");
    //do some things that need to be done in an atomic fashion
    lock.release();
    System.out.println("after release");
}
Run Code Online (Sandbox Code Playgroud)

"做一些事情"评论代表多个语句,这些语句一次只需要由一个进程完成.例如,多次写入各种数据库.

这一切看起来都很好,直到其中一个java进程在获得锁定后失去与zookeeper的连接.

根据文件:

强烈建议您添加ConnectionStateListener并监视SUSPENDED和LOST状态更改.如果报告了SUSPENDED状态,则除非您随后收到RECONNECTED状态,否则您无法确定是否仍然保持锁定状态.如果报告了LOST状态,则确定您不再持有锁.

如果我理解正确,在获取锁定后的任何时候,我可能会收到一个通知,说明由于网络问题导致锁定已丢失,此时某些其他进程可能已获得锁定.如果确实如此,则无法保证在获取锁定后您是唯一具有锁定的进程.我必须一次只能由一个进程执行的宝贵声明可能与另一个进程交错.

我误解了上面的内容吗?如果是这样,请澄清它的含义.如果我没有误解上述内容,如果无法保证独家访问,策展人锁如何有用?

java locking distributed-computing apache-zookeeper apache-curator

6
推荐指数
1
解决办法
1827
查看次数

有没有办法使用 Guava 获取 InputStream 的哈希码?

有没有办法在 Java 中获取 InputStream 的 HashCode,我正在尝试使用<p:fileUpload/>from PrimeFaces上传图片,将其转换为 HashCode 并将其与另一张图片进行比较。

目前我正在尝试这个:

public void save(FileUploadEvent event) throws IOException {
        HashCode hashCode = null;
        HashCode hashCodeCompare = null;
        hashCode = Files.asByteSource(new File(event.toString())).hash(Hashing.murmur3_128(50));
        hashCodeCompare = Files.asByteSource(new File(FilePathOfFileToCompare)).hash(Hashing.murmur3_128(50));
        boolean hashTrueFalse;
        if(hashCode.equals(hashCodeCompare)) {
            System.out.println("true");
        } else{
            System.out.println("false");
        }

        try (InputStream input = event.getFile().getInputstream()) {
            String imageName = generateFileName() + "." + fileExtensions(event.getFile().getFileName());
            String imageLink = PICTURE_DESTINATION + "\\" + imageName;


            Picture picture = new Picture();
            picture.setPictureUrl(imageLink);
            pictureService.createOrUpdate(picture);

            personForm.getCurrentPersonDTO().setPictureDTO(pictureMapper.toDTO(picture));


        } catch (IOException e) {
            e.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

java hash inputstream file guava

6
推荐指数
2
解决办法
3063
查看次数

捕获雨水高程是数组

我在一份试卷中解决了这个问题,并在答案书中找到了一个解决方案。我无法理解其背后的算法。谁能解释一下这个算法是如何工作的?

给定 n 个非负整数表示海拔图,其中每个条形的宽度为 1,计算下雨后它能够捕获多少水。

例如,给定输入

[0,1,0,2,1,0,1,3,2,1,2,1] 
Run Code Online (Sandbox Code Playgroud)

返回值将是

6
Run Code Online (Sandbox Code Playgroud)

根据答案书的解决方案是这样的

public class Solution {
    public int trap(int[] height) {
        if (height.length <=2 )
            return 0;
        int h = 0, sum = 0, i = 0, j = height.length - 1;
        while(i < j)
        {
            if ( height[i] < height[j] )
            {
                h = Math.max(h,height[i]);
                sum += h - height[i];
                i++;
            }
            else
            {   
                h = Math.max(h,height[j]);
                sum += h - height[j];
                j--;
            }
        }
        return sum;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java arrays algorithm

5
推荐指数
1
解决办法
3160
查看次数

HTTP请求与cURL一起使用,但在浏览器中使用javascript获取CORS响应

当我使用$ .get或superagent或者request或axios通过浏览器访问typeform API时,我收到错误请求的资源上没有'Access-Control-Allow-Origin'标头.原产地" 的http://本地主机:8100 "因此不允许访问.

但是,当我使用cURL或HTTPIE或Postman发出相同的请求时,它每次都是成功的.如何解决此问题以及如何实现客户端版本?

html javascript cors

4
推荐指数
1
解决办法
823
查看次数

如何计算Java类中的分支数

是否有工具或方法来计算给定Java类中的分支数?例如,我想计算以下简单Java类中的分支数:

public class Testt {

    public boolean getTest(int x) {
        if (x > 5) {
            return true;
        } else {
            return false;
        }
    }

    public int getTest1(int x) {
        int t = 0;
        if (x == 10) {
            t = 1;
        } else if (x == 8) {
            t = 3;
        } else {
            t = 11;
        }
        return t;
    }
}
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
146
查看次数

Javascript格式浮点数的小数位数

任何人都可以帮我解决这个问题吗?我正在使用以下代码来获取输入字段的值

parseFloat($("#salaryFrom").val());
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,如果salaryFrom字段中的值以0结尾,则会从结果中删除.例如,值8.50返回8.5,我需要它返回8.50

javascript jquery

0
推荐指数
1
解决办法
1011
查看次数

Java:无法让.equals()工作

我想制作一个基本游戏,其中生成两个随机数,用户必须输入正确的产品.

我究竟做错了什么?谢谢

import java.util.Scanner; 
import java.awt.*;

public class Userinput {

    public static void main (String[] args) {
        String firstName;

        //Create scanner to obtain user input
        Scanner scanner1 = new Scanner( System.in );
        int a,  b, correctAnswer;
        a=(int) (Math.random()*10);
        b=(int) (Math.random()*10); 

        //obtain user input
        System.out.println("Enter your first name: ");
        firstName = scanner1.nextLine();

        //output information
        System.out.print("Hello " + firstName + " ");
        System.out.println("what is " + a +" times " + b);
        String answer1 = scanner1.nextLine();
        correctAnswer = a * b;
        if …
Run Code Online (Sandbox Code Playgroud)

java equals

0
推荐指数
1
解决办法
54
查看次数

如何使用javascript或jquery将字符串加密为SHA-1?

我想使用JavaScript使用SHA-1哈希函数哈希一个简单的字符串。

javascript

-3
推荐指数
1
解决办法
1540
查看次数