是否可以通过项目的所有maven依赖项的源代码搜索一些文本?
例如:如果您导入以下示例maven项目:https://github.com/ajorpheus/javadoc-mem-test/tree/search-in-jars,搜索tempHeaders应该会显示AbstractClientHttpRequest.java为搜索结果.
有插件可以让人这样做吗?
如果Intellij不支持这个,那么在给定maven项目的情况下,你会知道一种与IDE无关的方法吗?我看过像jarexplorer这样的工具,但他们似乎没有做到这一点.
我想使用Apache Commons DBCP在Java应用程序中启用连接池(此处没有容器提供的DataSource).在Web的许多站点(包括Apache站点)中,库的使用基于以下代码段:
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
ds.setUsername("scott");
ds.setPassword("tiger");
ds.setUrl(connectURI);
Run Code Online (Sandbox Code Playgroud)
然后通过getConnection()方法获得数据库连接.但是在其他站点 - 以及Apache站点 - 数据源实例是通过以下方式实现的:
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectURI,null);
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory);
ObjectPool objectPool = new GenericObjectPool(poolableConnectionFactory);
PoolingDataSource dataSource = new PoolingDataSource(objectPool);
Run Code Online (Sandbox Code Playgroud)
他们之间有什么区别?我正在使用连接池BasicDataSource,或者我需要一个使用连接池的实例PoolingDataSource?是BasicDataSource线程安全的(我可以将它用作Class属性)还是我需要同步它的访问?
我正在阅读这篇关于团队使用Intellij Idea进行大型maven项目的经历的博客文章,并且还看了两年前为IDEA v.10.0.2发布的类似问题.
前者提到的一个提示很有意义:
移动C:\Users\$user\.IntelliJIdea12到防病毒无法访问扫描的文件夹中.
我一直在寻找以性能为中心的VM选项,目前我idea64.exe.vmoptions看起来像这样:
-Xms1200m
-Xmx1200m
-XX:MaxPermSize=200m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-Dsun.io.useCanonCaches=false
Run Code Online (Sandbox Code Playgroud)
您是否有更多此类技巧可以改善Intellij IDEA(12.1.3,64位)与大型/巨型maven项目的性能?
您能否分享一下您在VM中的VM选项idea64.exe.vmoptions 和/或IDEA配置中所做的发现idea.properties.
我已经尝试过使用JDK 7来启动IDEA,但这似乎并没有以某种方式影响它的性能.如果您尝试过这样做,您是否也遇到过相同的情况?
我可以在intellij上调试时暂停一个线程吗?我想要的是与其他ID类似的东西 - 右键单击一个线程并暂停它.
我有两个不同的MyEclipse工作区,包含一组不同的项目.我希望通过创建直接打开工作区的快捷方式来避免在两者之间切换.
这可能吗 ?
我在 bitbucket 中有一个 git 存储库,有什么方法可以使用 IntelliJ IDEA 而不是通过网络创建拉取请求吗?
我发现这可以在 IntelliJ 中为 github 存储库完成。但是没有发现任何与 Bitbucket 类似的东西。
// The worst possible legal hash function - never use!
@Override public int hashCode() { return 42; }
Run Code Online (Sandbox Code Playgroud)
这是合法的,因为它确保了相等的对象具有相同的哈希码.这很糟糕,因为它确保每个对象都具有相同的哈希码.因此,每个对象都会散列到同一个存储桶,并且散列表会退化为链接列表.应该以线性时间运行的程序改为以二次方运行.
我试图弄清楚如何(引自第47页,第9项,Joshua Bloch的Effective Java).
我看到它的方式如下(考虑以下代码):
Map<String, String> h = new HashMap<String,String>();
h.put("key1", "value1");
h.put("key1", "value2");
Run Code Online (Sandbox Code Playgroud)
什么与第二发生h.put("key1",...)命令如下:1.获取的散列码key1
2.获取到表示上述哈希码3.在该桶桶中,为每个对象,调用equals方法找到相同的对象是否存在.
这有点快,因为首先你找到对象的"组"(桶),然后找到实际的对象.
现在,当哈希码实现42为ALL对象返回相同的整数(如上所述)时,只有一个桶,并且需要在整个hashmap中的每个对象上逐个调用equals方法/哈希表.这与链表一样糟糕,因为如果链表中的对象也是如此,则必须逐个比较(调用equals)每个对象.
有人说,这就是哈希表退化为链表的原因吗?
(我为上述文本的冗长而道歉.我的概念中我不够清楚地说明它更简洁)
我正在为此站点(Site1)中的页面编写Greasemonkey脚本.Site1有各种交易和优惠,我的GM脚本旨在执行以下操作:
当访问Site1上的商品时,脚本会查询 Site2以查明该商店是否也列在Site2上.如果是这样,请在Site1上显示Site2的搜索结果.
问题是Site2显示进度条("加载结果"),然后显示结果.因此,我的Ajax请求总是返回空结果,看起来像这样(参见红色框部分):(
点击查看大图)
但是,它实际上应该具有Site2搜索结果的完整内容,如下所示:(
点击查看大图)
我尝试过同步Ajax请求GM_xmlhttpRequest,但无济于事.
这是Site 2的问题进度条:(
点击查看大图)
在将响应返回到Site1之前,如何让AJAX请求等待Site2上的搜索完全呈现?
作为参考,我的完整工作脚本代码位于pastebin.com.
这是相关的片段:
$(document).ready(function(){
var rewardsSiteResults = $('<div class="panel deal-panel rc-lr"></div>').attr('id', "rewardsSiteResults")
.html("<p>" + progressMessageText + "</p> ").append(spinnerGif);
$(insertSelector).after(rewardsSiteResults);
var addressMap = getAddressOfHotel();
var pinCode = addressMap[pinCodePlaceHolder];
var hotelName = addressMap[hotelNamePlaceHolder];
var queryURL = constructQueryURL(pinCode, hotelName);
$.ajaxSetup({async:true, timeout: 5000});
$.get(queryURL,null, function(response) {
if(!displayed){
displayed=true;
//rewardsSiteResults.html("adfaasddsf");
var text = $(response).find("#col2");
$(text).find("script").remove();
//console.log(text.html())
// $('<iframe id="someId"/>').appendTo('#rewardsSiteResults')
// .contents().find('body').append(response);
rewardsSiteResults.html("<div class='panel deal-panel rc-lr'>" …Run Code Online (Sandbox Code Playgroud) 这是尝试从Effective Java 2nd Edition中仔细理解ITEM 40:设计方法签名的一部分.
建议改进方法签名可读性的一个目的是瞄准四个或更少的参数.建议使用多种技术管理较长的参数列表,其中一种技术如下:
结合前两个方面的第三种技术是使Builder模式(第2项)从对象构造适应方法调用.如果你有一个包含许多参数的方法,特别是如果它们中的一些是可选的,那么定义一个代表所有参数的对象并允许客户端对该对象进行多次"setter"调用是有益的.它设置单个参数或小的相关组.一旦设置了所需的参数,客户端就会调用对象的"执行"方法,该方法对参数进行任何最终有效性检查并执行实际计算.
我熟悉Builder模式,因为它用于对象构造,但我不确定我是否正确理解了如何使其适应方法调用.
这是我到目前为止:(
我试图改进方法的方法调用move)
public class Space {
public static class Builder {
// Required parameters
private final int x;
private final int y;
private final int z;
// optional params
private long time = 0;
public Builder(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
public Builder time(long val) {
time = val;
return this;
}
public void move() …Run Code Online (Sandbox Code Playgroud) java ×3
maven ×3
ajax ×1
algorithm ×1
bitbucket ×1
builder ×1
debugging ×1
eclipse ×1
equals ×1
git ×1
greasemonkey ×1
hashcode ×1
ide ×1
javascript ×1
jquery ×1
methods ×1
myeclipse ×1
performance ×1
pull-request ×1
tampermonkey ×1
workspace ×1