小编Rav*_*yal的帖子

Java final 字段:当前 JLS 是否可能出现“污点”行为

我目前正在尝试了解有关最终字段的 JLS 部分

为了更好地理解 JLS 中的文本,我还在阅读Jeremy Manson(JMM 的创建者之一)撰写的The Java Memory Model

该论文包含让我感兴趣的示例:如果o具有 final 字段的对象对另一个线程可见t两次:

  • o的构造函数完成之前首先“不正确地”
  • o的构造函数完成后的下一个“正确”

然后即使仅通过“正确”发布的路径访问它,也t可以看到半构造的o

这是论文中的部分:

图 7.3:简单最终语义示例

f1 是最后一个字段;它的默认值为 0

主题 1 主题 2 主题 3
o.f1 = 42;
p = o;
freeze o.f1;
q = o;

Run Code Online (Sandbox Code Playgroud)
r1 = p;
i = r1.f1;
r2 = q;
if (r2 == r1)
    k = r2.f1;
Run Code Online (Sandbox Code Playgroud)
r3 = q;
j = r3.f1;



Run Code Online (Sandbox Code Playgroud)

我们假设 r1、r2 和 …

java multithreading final java-memory-model jls

15
推荐指数
2
解决办法
684
查看次数

java.lang.IllegalArgumentException:在发出https请求时索引7处的权限中的非法字符

在从android模拟器向我的本地wamp服务器发出http请求时,我得到了上述错误.

// testing on Emulator:
private static final String LOGIN_URL="http:// 10.0.2.2:80/webservice/login.php";

//request:
JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST", params);
Run Code Online (Sandbox Code Playgroud)

java android wampserver android-emulator

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

在阻止所有美国IP后,Google能否访问我的网站?

我将以这种方式使用.htaccess阻止所有美国IP:

<Limit GET HEAD POST>
order deny,allow
deny from 3.0.0.0/8
deny from 4.0.0.0/25
deny from 4.0.0.128/26
deny from 4.0.0.192/28
deny from 4.0.0.208/29
....
allow from all
</Limit>
Run Code Online (Sandbox Code Playgroud)

在阻止所有美国IP后,Google是否能够访问和索引我的网站?

编辑:抱歉模棱两可,但我希望谷歌为我的网站编制索引.

.htaccess googlebot

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

当公共列具有不同的名称但两个表中的信息相同时如何连接两个sql表

SQL 查询相对较新。我可以从一个简单的查询中成功获得结果,该查询显示客户编号和已开具发票的总美元金额,从最高金额到最低金额排序。我还想显示客户名称。客户名称,[Name],与客户编号一起在另一个表中,但客户编号的列名称不同,即。Table 1[Bill-to Customer No_]并且Table 2只是[No_]。我如何获取信息Table 2以与客户编号显示在同一行?

sql

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

如何减少或消除按钮点击启动 Android 活动的延迟

我已经注意到这个问题很长时间了。当我通过按钮打开一个活动时,我可以感觉到活动“开始”启动之前有一点延迟,比如 1 秒,即使两个活动都是空的,就好像它是故意延迟的一样。

我检查过的所有其他 StackOverflow 线程都有某种负载会减慢速度。但是,这完全是空的,没有负载或后台任务。

我所说的延迟是什么意思:当我单击按钮时,应用程序大约一秒钟不执行任何操作,然后在启动下一个活动时开始转换。用户可能认为应用程序没有响应。

测试设备速度慢吗?我认为情况并非如此。

  1. 我已经在 Android 10 VM 中进行了测试(1 秒延迟),

  2. Android 9、8、7、6、5.1、5 VM(1 秒延迟)、

  3. 诺基亚 1 Plus(慢)搭载 Android 10 和 9(1/2 秒延迟),

  4. 诺基亚 5.1 搭载 Android 9(1/4 秒延迟),

  5. Galaxy s6 Edge 搭载 Lineage 16 (Android 9) 和 Android 7.0 现货无延迟,

  6. Galaxy s5 Lineage 15 (Android 8)、Lineage 14 (Android 7)、Stock 6.0(1/8 秒延迟)、

  7. Galaxy m31、m21 和 A51 搭载 Android 9 One UI1?(1/2 秒延迟),

我确实看到了一种模式,即更快的手机延迟更少,无论结果如何,其他应用程序在同一手机中的响应速度更快。相同设备上的 Google 应用程序的响应速度要快得多。

安卓工作室4.0

知道原因吗?

主要活动代码:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

java performance android

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

使用Java将Resultset转换为CSV文件

您好我试图将oracle jdbc结果集转换为csv文件.以下是使用的代码.如果字段中存在如下值,则会出现问题.它会使输出csv变形,所有这些都在单独的行而不是在一个字段中.

Field中的值以csv为单位

[<333message:脚本中的运行时错误'ProcessItem:'Type:'ITEM'"1:0).内部脚本错误:java.lang.NullPointerException
脚本(第1行):
setHours = 0;
if(ts.instanceId == null) )
"3:ts.instanceId = 0;"
步骤>]

int ncols = result.getMetaData().getColumnCount();  

            System.out.println("ColumnCout"+ncols);  
            FileOutputStream fos=new FileOutputStream(new File("C:\\test.csv"),false);  
            Writer out = new OutputStreamWriter(new BufferedOutputStream(fos),"UTF_8");      

            for (int j=1; j<(ncols+1); j++) {     
            out.append(result.getMetaData().getColumnName (j));       
            if (j<ncols) out.append(","); else out.append("\r\n");      
            }   
            int m =1;    

            while (result.next()) {   

            for (int k=1; k<(ncols+1); k++) {   

            out.append(result.getString(k));    

            if (k<ncols) out.append(","); else out.append("\r\n");    
            }   
            //System.out.println("No of rows"+m);   
            m++;   
            }  
Run Code Online (Sandbox Code Playgroud)

java csv resultset

2
推荐指数
2
解决办法
3万
查看次数

从key中删除hashmap中的值

所以,我有一个 HashMap<String, String>

public HashMap<String, String> frozen = new HashMap<String, String>();
Run Code Online (Sandbox Code Playgroud)

我想根据密钥从中删除一个值.所以我要说我放入这些

frozen.put("1", "1_1");
frozen.put("1", "1_2");
Run Code Online (Sandbox Code Playgroud)

我想只删除其中一个值,而不是整个键集.

我该怎么做呢?如果你仍然不明白,这个不存在的方法应该解释它.

frozen.remove("1", "1_2");
Run Code Online (Sandbox Code Playgroud)

显然这不存在,但这就是我想要的.

提前致谢.

java hashmap

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

Java Date将dd-MMM-yyyy转换为dd MMMMMMMMMM yyyyy?

以下方法返回日期示例:

2015年3月11日

代替:

2015年3月11日

码:

public static String convertDat(String s) throws ParseException {
    SimpleDateFormat converted = new SimpleDateFormat("dd MMMMMMMMMMMMMMMMMMMM yyyy ");
    SimpleDateFormat incoming = new SimpleDateFormat("dd-MMM-yyyy");
    Date currentDate = (Date) incoming.parse(s);
    return converted.format(currentDate);
}
Run Code Online (Sandbox Code Playgroud)

java android date

-2
推荐指数
1
解决办法
700
查看次数

扫描仪不工作?

我是Java的新手,我正在尝试创建一个Java应用程序,它要求你拼写"Java",如果拼写正确,它会输入"yes",但是,它输入"no",我做错了什么:

package quiz;
import java.util.Scanner;
public class quiz {
    public static void main(String[] args) {
        Scanner kirill = new Scanner(System.in);
        System.out.println(kirill.next());
        String kirill2 = "Java";
        if (kirill.equals(kirill2)){
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        System.out.println(kirill);
        kirill.close();
    }

}
Run Code Online (Sandbox Code Playgroud)

运行代码:Java

Java的

没有

java.util.Scanner [delimiters =\p {javaWhitespace} +] [position = 4] [match valid = true] [need input = false] [source closed = false] [skipped = false] [group separator = \,] [decimal separator =.] [positive prefix =] [negative prefix =\Q-\E] [positive suffix =] [negative suffix =] …

java

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