我需要获取应用程序可以在设备上使用的显示矩形的尺寸.为此,我尝试使用:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Run Code Online (Sandbox Code Playgroud)
我的问题是它给了我整个显示器的高度,并且显示器顶部有一个"状态/通知"栏,应用程序无法使用.
我需要应用程序可以使用的实际维度.
为了帮助您更好地理解这个问题,我将留下一个图片:
在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)
我的问题:
在指数之间:
db.test.ensureIndex( { "key": 1 } )
db.test.ensureIndex( { "key": "hashed" } )
对于查询db.products.find( { key: "a" } )
,哪一个更高性能?是hashed
关键O(1)
我是怎么回答这个问题的:
在我知道你不能使用多键索引之前hashed
,我创建了一个表单的索引db.test.ensureIndex( { "key": 1, "sortOrder": …
在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)
根据我的研究,我找到了
输出
EXPLAIN
有时可能会产生误导.例如,
filesort
与文件无关,using where
并不意味着您正在使用WHERE
子句,并且using index
可以在没有定义单个索引的情况下显示在表上.
Using where
只是意味着表(WHERE
或ON
)上有一些限制条款,并不会返回所有记录.请注意,LIMIT
这不算作限制条款(尽管可以).
Using …
问题很简单,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).
在确定哈希表的大小之前,我想知道它将消耗多少内存以便不进行扩散.
我知道哈希表的大小可能与图片可能消耗的内存相比非常小,但我想确保我没有消耗更多的内存而不是必需的内存.
在问这个问题之前,我在其他地方之间搜索过
(是的,我知道其中两个地方相互矛盾,这就是问题的部分原因).
如果您因任何原因不理解某些内容或想了解更多信息,请发表评论,我会尽快回复.
比你多得多.
很简单,我需要#
使用正则表达式匹配符号.我正在研究一个标签检测器.
我试过在谷歌搜索和堆栈溢出.一个相关的帖子在这里,但由于他想从字符串中删除#符号,他没有使用正则表达式.
我已经尝试了正则表达式/\b\#\w\w+/
,并且/\b#\w\w+/
它们不起作用,如果我删除它#
,它会检测到该单词.
我想有一个布尔值来通知系统某些特定服务启动的部分.
由于一些奇怪的原因,我收到了错误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
我正在设计一个 api,它返回一个从第三方服务获取的图像 url。
我的问题是,对于所有媒体,我都使用我所谓的“媒体对象”
{
"ConetetType": "image/jpeg",
"href": "http://..."
}
Run Code Online (Sandbox Code Playgroud)
但是第三方服务不提供内容类型,只提供一个 url。
image/*
ContentType是否有效?
我在像这样和这样的其他问题中看到了它,但我没有在任何标准中看到它,比如rfc2045并且它不在Wikipedia的选项列表中。
我的目的是防止我的服务器为了获得真实的内容类型而必须加载图像。
我使用“媒体对象”的原因是因为我们可以在同一领域提供视频,并且该信息对于播放视频和将图像与视频分开非常有用。
我正在创建一个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) 我一直在尝试在本地计算机和远程服务器之间使用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) android ×3
java ×2
php ×2
java-threads ×1
mongodb ×1
mysql ×1
regex ×1
rfc ×1
synchronized ×1
zeromq ×1