小编Som*_*guy的帖子

"new String()"也是不可变的吗?

我一直在研究Java String.以下问题基于以下帖子

Java String是java中特殊
的String不可变性

  1. 不可变性:现在,通过不变性,String类被设计为公共池中的值可以在其他位置/变量中重用.如果String被创建为, 则这很好

    String a = "Hello World!"; 但是,如果我创建String之类的

    String b = new String("Hello World!"); 为什么这也是不变的?(或者是吗?).由于这有一个专用的堆内存,我应该能够修改它而不影响任何其他变量.因此,通过设计,还有其他任何原因,为什么String整体被认为是不可改变的?或者我的上述假设是错误的?

  2. 我想问的第二件事是关于常见的字符串池.如果我创建一个字符串对象为

    String c = ""; 是在池中创建的空条目?

这些帖子上已经有帖子吗?如果是这样,有人可以分享链接吗?

java string immutability

73
推荐指数
8
解决办法
8921
查看次数

Android AutoCompleteTextView onItemSelectedListener未使用蓝牙键盘触发

我有一个简单的应用程序,只包含一个AutoCompleteTextView(下面的代码).我有OnItemClickListenerOnItemSelectedListener定义.单击下拉建议中的各个项目会触发该onItemClick事件.但是,使用蓝牙键盘时,使用箭头键导航到给定项目似乎不会触发onItemSelected事件(此事件不会显示日志).

什么触发了这个onItemSelected事件?我的印象是highlight,其中一个下拉项目就是这样,但情况似乎并非如此.

如果OnItemSelectedListener不是突出显示项目的正确事件侦听器,是否满足此要求?

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

public class MainActivity extends Activity {

    String[] options = {"a1", "a2", "a3", "b1", "b2", "b3", "b4", "b5"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // An adapter object
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_item, options);

        AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
        autoCompleteTextView.setAdapter(adapter);
        autoCompleteTextView.setThreshold(1);

        // Set …
Run Code Online (Sandbox Code Playgroud)

android accessibility autocompletetextview

10
推荐指数
1
解决办法
550
查看次数

Nodejs回调机制 - 哪个线程处理回调?

我是nodeJS的新手,并且想知道Node的单实例模型.在一个简单的nodeJs应用程序中,当使用回调异步处理某些阻塞操作时,运行nodeJs的主线程是否也处理回调?如果请求是从数据库中获取一些数据,并且有100个并发用户,并且每个db操作需要几秒钟,当最终触发回调时(对于每个连接),主线程是否接受这些请求用于执行回调?如果是这样,nodeJs如何扩展以及它如何快速响应?

asynchronous scalability callback single-threaded node.js

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

Java中传递接口引用和类引用之间的区别

如示例所示,传递接口引用或类引用之间有什么区别;

Interface MyInterface
{
     void foo();
}
public class MyClass implements MyInterface
{


 public void foo()
    {
        doJob();
    }
}

....
//in another class or etc..
public void case1(MyClass mc)
{
    mc.foo();
}

public void case2(MyInterface mi)
{
    mi.foo();
}
....
//In somewhere
MyClass mc = new MyClass();
case1(mc);
case2(mc);
Run Code Online (Sandbox Code Playgroud)

case1和case2之间的主要区别是什么?它们在性能,可见性,保护对象免受非法使用方面是否具有任何优势?像这样使用它有什么缺点吗?

java performance encapsulation interface object

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