杰克逊图书馆的ObjectMapper课程似乎是线程安全的.
这是否意味着我应该将我声明ObjectMapper为像这样的静态字段
class Me {
private static final ObjectMapper mapper = new ObjectMapper();
}
Run Code Online (Sandbox Code Playgroud)
而不是像这样的实例级字段?
class Me {
private final ObjectMapper mapper = new ObjectMapper();
}
Run Code Online (Sandbox Code Playgroud) 当我根据我的C++知识使用Java时,我喜欢使用以下方式初始化变量.
public class ME {
private int i;
public ME() {
this.i = 100;
}
}
Run Code Online (Sandbox Code Playgroud)
过了一段时间,我改变了习惯
public class ME {
private int i = 100;
public ME() {
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到了其他的源代码,有些使用了第1个约定,有些则使用了第2个约定.
我可以知道你们都推荐哪种惯例,为什么?
如果返回的值不是我关注的话,我应该如何在ExecutorService的 提交或执行之间进行选择?
如果我同时测试两者,除了返回值之外,我没有看到两者之间有任何差异.
ExecutorService threadExecutor = Executors.newSingleThreadExecutor();
threadExecutor.execute(new Task());
Run Code Online (Sandbox Code Playgroud)
ExecutorService threadExecutor = Executors.newSingleThreadExecutor();
threadExecutor.submit(new Task());
Run Code Online (Sandbox Code Playgroud) 我正在实现以下用于在我的表中存储用户相关数据的模型 - 我有2列 - uid(主键)和一个meta以JSON格式存储有关用户的其他数据的列.
uid | meta
--------------------------------------------------
1 | {name:['foo'],
| emailid:['foo@bar.com','bar@foo.com']}
--------------------------------------------------
2 | {name:['sann'],
| emailid:['sann@bar.com','sann@foo.com']}
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
这是一个更好的方式(性能明智的,设计明智)比一列,每个属性模型,其中表将不得不像许多列uid,name,emailid.
我喜欢第一个模型,你可以添加尽可能多的字段,没有限制.
此外,我想知道,现在我已经实现了第一个模型.如何对其执行查询,例如,我想获取所有名称为'foo'的用户?
问题 - 在数据库中使用-JSON或每个字段的列存储用户相关数据(请记住数字不固定)的更好方法是什么?另外,如果实现了第一个模型,如何查询数据库如上所述?我是否应该同时使用这两个模型,将查询可能搜索的所有数据存储在一个单独的行中,将其他数据存储在JSON中(是不同的行)?
由于我需要执行搜索的列数不会太多,因此使用这两个模型是否明智?我需要搜索的数据的每列密钥和其他人的JSON(在同一个MySQL数据库中)?
我期待着
System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8"));
Run Code Online (Sandbox Code Playgroud)
输出:
Hello%20World
(20是空格的ASCII十六进制代码)
但是,我得到的是:
Hello+World
我使用了错误的方法吗?我应该使用的正确方法是什么?
我有以下代码.
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<div id="hello">Hello <div>Child-Of-Hello</div></div>
<br />
<div id="goodbye">Goodbye <div>Child-Of-Goodbye</div></div>
<script type="text/javascript">
<!--
function fun(evt) {
var target = $(evt.target);
if ($('div#hello').parents(target).length) {
alert('Your clicked element is having div#hello as parent');
}
}
$(document).bind('click', fun);
-->
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
我希望只有在Child-Of-Hello被点击时,$('div#hello').parents(target).length才会返回> 0.
但是,只要我点击任何地方,它就会发生.
我的代码有问题吗?
lazySet和set方法有AtomicInteger什么区别?该文件并没有太多的话要说lazySet:
最终设置为给定值.
似乎存储的值不会立即设置为所需的值,而是计划在将来的某个时间设置.但是,这种方法的实际用途是什么?任何例子?
我想知道,当我将元素插入地图时,建议的方法是什么.我是不是该
map[key] = value;
Run Code Online (Sandbox Code Playgroud)
要么
map.insert(std::pair<key_type, value_type>(key, value));
Run Code Online (Sandbox Code Playgroud)
我做了以下快速测试:
#include <map>
#include <string>
#include <iostream>
class Food {
public:
Food(const std::string& name) : name(name) { std::cout << "constructor with string parameter" << std::endl; }
Food(const Food& f) : name(f.name) { std::cout << "copy" << std::endl; }
Food& operator=(const Food& f) { name = f.name; std::cout << "=" << std::endl; return *this; }
Food() { std::cout << "default" << std::endl; }
std::string name;
};
int main() { …Run Code Online (Sandbox Code Playgroud) 有一段时间,我一直在多线程环境中使用HttpClient.对于每个线程,当它启动连接时,它将创建一个全新的HttpClient实例.
最近,我发现,通过使用这种方法,它可能导致用户打开太多端口,并且大多数连接处于TIME_WAIT状态.
http://www.opensubscriber.com/message/commons-httpclient-dev@jakarta.apache.org/86045.html
因此,而不是每个线程做:
HttpClient c = new HttpClient();
try {
c.executeMethod(method);
}
catch(...) {
}
finally {
method.releaseConnection();
}
Run Code Online (Sandbox Code Playgroud)
我们计划:
[方法A]
// global_c is initialized once through
// HttpClient global_c = new HttpClient(new MultiThreadedHttpConnectionManager());
try {
global_c.executeMethod(method);
}
catch(...) {
}
finally {
method.releaseConnection();
}
Run Code Online (Sandbox Code Playgroud)
在正常情况下,global_c将同时由50个++线程访问.我想知道,这会产生任何性能问题吗?MultiThreadedHttpConnectionManager是否使用无锁机制来实现其线程安全策略?
如果10个线程正在使用global_c,那么其他40个线程是否会被锁定?
或者,如果在每个线程中我创建一个HttpClient实例,但是显式释放连接管理器会更好吗?
[方法B]
MultiThreadedHttpConnectionManager connman = new MultiThreadedHttpConnectionManager();
HttpClient c = new HttpClient(connman);
try {
c.executeMethod(method);
}
catch(...) {
}
finally {
method.releaseConnection();
connman.shutdown();
}
Run Code Online (Sandbox Code Playgroud)
connman.shutdown()会遇到性能问题吗?
对于使用50 ++线程的应用程序,我可以知道哪种方法(A或B)更好吗?
什么时候
我期待onDismiss(或onCancel)会被召唤.但是,它们都没有被调用.我可以知道有什么我想念的吗?从AlertDialog setOnDismissListener不起作用,我以为onCancel当我按下后退按钮时会调用它.但它对我不起作用.我可以知道有什么我错过了吗?
public class RateAppDialogFragment extends SherlockDialogFragment {
public static RateAppDialogFragment newInstance() {
RateAppDialogFragment rateAppDialogFragment = new RateAppDialogFragment();
return rateAppDialogFragment;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.rate_app_dialog_fragment, null);
Utils.setCustomTypeFace(view, Utils.ROBOTO_LIGHT_TYPE_FACE);
final AlertDialog dialog = new AlertDialog.Builder(this.getSherlockActivity())
.setTitle("Love JStock?")
.setView(view)
// Add action buttons
.setPositiveButton("Rate 5 stars \u2605", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int …Run Code Online (Sandbox Code Playgroud) java ×6
android ×1
atomic ×1
c++ ×1
concurrency ×1
database ×1
jackson ×1
javascript ×1
jquery ×1
json ×1
mysql ×1
optimization ×1
sql ×1
sql-server ×1
stdmap ×1
stl ×1
url ×1
urlencode ×1