小编J-R*_*Rou的帖子

显示指标减去状态栏?

我需要获取应用程序可以在设备上使用的显示矩形的尺寸.为此,我尝试使用:

Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Run Code Online (Sandbox Code Playgroud)

我的问题是它给了我整个显示器的高度,并且显示器顶部有一个"状态/通知"栏,应用程序无法使用.

我需要应用程序可以使用的实际维度.

为了帮助您更好地理解这个问题,我将留下一个图片:

在此输入图像描述

android

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

Hash和Ascending指数之间的Mongodb性能差异(任何理由不在非有序字段中使用哈希?)

在mongodb中有多种类型的索引.对于这个问题,我对可用于排序的升序(或降序)索引以及根据文档"主要与分片集群一起使用以支持散列分片键" 的哈希索引感兴趣"()确保"更多均匀分布数据"(来源)

我知道你不能创建一个索引,db.test.ensureIndex( { "key": "hashed", "sortOrder": 1 } )因为你得到一个错误

{
    "createdCollectionAutomatically" : true,
    "numIndexesBefore" : 1,
    "errmsg" : "exception: Currently only single field hashed index supported.",
    "code" : 16763,
    "ok" : 0
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

在指数之间:

  1. db.test.ensureIndex( { "key": 1 } )

  2. db.test.ensureIndex( { "key": "hashed" } )

对于查询db.products.find( { key: "a" } ),哪一个更高性能?是hashed关键O(1)


我是怎么回答这个问题的:

在我知道你不能使用多键索引之前hashed,我创建了一个表单的索引db.test.ensureIndex( { "key": 1, "sortOrder": …

mongodb mongodb-indexes

28
推荐指数
1
解决办法
5498
查看次数

什么是EXPLAIN中"使用索引"和"使用位置;使用索引"之间的区别

在mysql中解释的额外字段中,您可以获得:

  • Using index
  • Using where; Using index

这两者有什么区别?

为了更好地解释我的问题,我将使用下表:

CREATE TABLE `test` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `another_field` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

INSERT INTO test() VALUES(),(),(),(),();
Run Code Online (Sandbox Code Playgroud)

最终结果如下:

SELECT * FROM `test`;

id  another_field
1   0
2   0
3   0
4   0
5   0
Run Code Online (Sandbox Code Playgroud)

根据我的研究,我找到了

为什么这个查询使用where而不是index?

输出EXPLAIN有时可能会产生误导.

例如,filesort与文件无关,using where 并不意味着您正在使用WHERE子句,并且using index可以在没有定义单个索引的情况下显示在表上.

Using where只是意味着表(WHEREON)上有一些限制条款,并不会返回所有记录.请注意, LIMIT这不算作限制条款(尽管可以).

Using …

mysql

24
推荐指数
1
解决办法
9775
查看次数

指针大小 - 对象引用有多大?

问题在第一条水平线后完成,其余的是额外信息.

问题很简单,Androids Java VM中的引用消耗的大小是多少?

我的意思是:

如果我们有

String str = "Watever";
Run Code Online (Sandbox Code Playgroud)

我需要什么str,而不是"Watever".- "Watever"保存在指针(或引用)str所指向的位置.

也,

如果我们有

String str = null;
Run Code Online (Sandbox Code Playgroud)

它消耗了多少内存?它是否与另一个相同str

现在,如果我们有:

Object obj[] = new object[2];
Run Code Online (Sandbox Code Playgroud)

需要多少obj消费,多少钱obj[1]obj[2]消费?


queston的原因如下:(如果有人可以推荐一些东西).

我正在开发一款可以保存从互联网下载的许多照片的应用程序.我开始将这些图片存储在"银行"上(在图片列表中一致).

当在图库中显示这些图片时,我曾经在列表中搜索图片(SLOW)然后,如果那时图片不存在,我曾经在下载图片之前显示时间下载图像.

由于这发生在UI线程上,应用程序变得非常慢,所以我考虑在银行而不是我的列表上实现哈希表.

正如我之前解释的那样,这种搜索发生在UI线程中(我不能改变它).因此,如果冲突开始减慢线程,冲突就会成为问题.

我已经读过"为了平衡时间和空间效率,哈希表应该是大约半满",但这使得冲突在一半的时间内发生(对于UI线程不实用).这让我想到了一个非常长的哈希表(与保存的图片数量相比)并使用更多的RAM(具有更少的免费VMHeap).

在确定哈希表的大小之前,我想知道它将消耗多少内存以便不进行扩散.

我知道哈希表的大小可能与图片可能消耗的内存相比非常小,但我想确保我没有消耗更多的内存而不是必需的内存.


在问这个问题之前,我在其他地方之间搜索过

Java中的对象引用有多大,它究竟包含哪些信息?

java中的引用类型大小

哈希教程

(是的,我知道其中两个地方相互矛盾,这就是问题的部分原因).


如果您因任何原因不理解某些内容或想了解更多信息,请发表评论,我会尽快回复.

比你多得多.

java android

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

如何匹配php中的正则表达式中的井号(#)符号(用于主题标签)

很简单,我需要#使用正则表达式匹配符号.我正在研究一个标签检测器.

我试过在谷歌搜索和堆栈溢出.一个相关的帖子在这里,但由于他想从字符串中删除#符号,他没有使用正则表达式.

我已经尝试了正则表达式/\b\#\w\w+/,并且/\b#\w\w+/它们不起作用,如果我删除它#,它会检测到该单词.

php regex

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

在notifyAll()之前未被线程锁定的同步对象

我想有一个布尔值来通知系统某些特定服务启动的部分.

由于一些奇怪的原因,我收到了错误java.lang.IllegalMonitorStateException: object not locked by thread before notifyAll().

奇怪的是,notifyAll()位于一个synchronized块内,该块控制我调用notifyAll()的对象.

我的班级开头是这样的:

public class MyService {

    public static Boolean notifier = Boolean.valueOf(false);

    @Override
    public void start() {
        synchronized (MyService.notifier) {
            MyService.notifier = Boolean.valueOf(true);
            MyService.notifier.notifyAll();
        }
    }

    @Override
    public void stop() {
        synchronized (MyService.notifier) {
            MyService.notifier = Boolean.valueOf(false);
            MyService.notifier.notifyAll();
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在研究一个Android应用程序.我认为它不应该影响任何事情,但是如果影响java的工作方式,我会用该注释补充问题.

如果对象锁定在同步块中,为什么会出现异常?

java multithreading synchronization synchronized java-threads

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

ContentType 图像/* 是否有效

我正在设计一个 api,它返回一个从第三方服务获取的图像 url。

我的问题是,对于所有媒体,我都使用我所谓的“媒体对象”

{
 "ConetetType": "image/jpeg",
 "href": "http://..."
}
Run Code Online (Sandbox Code Playgroud)

但是第三方服务不提供内容类型,只提供一个 url。

image/*ContentType是否有效?

我在像这样这样的其他问题中看到了它,但我没有在任何标准中看到它,比如rfc2045并且它不在Wikipedia的选项列表中。

我的目的是防止我的服务器为了获得真实的内容类型而必须加载图像。

我使用“媒体对象”的原因是因为我们可以在同一领域提供视频,并且该信息对于播放视频和将图像与视频分开非常有用。

rfc

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

WebView不打开网页,但浏览器是(错误:网页不可用)

我正在创建一个Android应用程序(Android 2.3.3),它们之间有一个页眉,一个页脚和一个WebView.问题是WebView没有打开任何网页.(注意:我在模拟器上运行应用程序).

我尝试使用Android浏览器打开网页,并正确打开网页.我也尝试过:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

代码正常工作(在浏览器中打开页面).

我一直在使用www.google.com和我自己的域名,我也一直在使用这两个网页的ip地址(对于谷歌72.14.204.147和我自己的,我自己的开发者的IP服务器).

此外,在编写最流行的答案之前,我已经<uses-permission android:name="android.permission.INTERNET" />在应用程序标记之前.

我在任何人要求之前添加代码:

活动java文件:

public class MyActivity extends Activity {

//Global Variables
WebView mainWebView;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    loadActivityViews();

    mainWebView.getSettings().setJavaScriptEnabled(true);
    mainWebView.loadUrl("www.google.com");
    mainWebView.setWebViewClient(new MyWebViewClient());
}

/** Loads all global views of the Activity */
private void loadActivityViews(){
    mainWebView = (WebView) findViewById(R.id.index_main_web_view);
} 

//Internal Classes

/*
 * MyWebView Class
 * 
 * Forces links to …
Run Code Online (Sandbox Code Playgroud)

android android-webview

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

zeromq - 总是丢失第一条消息

我一直在尝试在本地计算机和远程服务器之间使用zeromq建立一个简单的"管道".我在我的本地计算机上测试了脚本并且它运行良好,但是当我尝试使用远程计算机作为结束时(使用SOCKET_PULL的那台),我开始遇到问题.任何进程发送的第一条消息总是丢失.

代码很简单,

推送(sender.php):

<?php
//Use the specified port or 5555 for sending jobs
$port = $_SERVER['argc'] > 1 ? $_SERVER['argv'][1] : '5555';
$jobN = $_SERVER['argc'] > 2 ? $_SERVER['argv'][2] : '';


$context = new ZMQContext();

//  Socket to send messages on
$sender = new ZMQSocket($context, ZMQ::SOCKET_PUSH);

//If I want to connect to the server I use this line
$sender->connect("tcp://my-server-address.com:$port");

//If I want to connect to localhost I use this line
//$sender->connect("tcp://localhost:$port");

$sender->send('job-1' . ($jobN ? " $jobN" : ''));
$sender->send('job-2' …
Run Code Online (Sandbox Code Playgroud)

php zeromq

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