小编Fra*_*kie的帖子

将项目移动到Eclipse中的另一个文件夹

我通常将工作项目放在桌面上的文件夹中.完成后我只需将它们移动到c:\dev\.问题是我是以一种相当古老的方式做到这一点.

1. move project files
2. delete project on Eclipse
3. create new project on Eclipse on the new location
Run Code Online (Sandbox Code Playgroud)

你们如何移动项目?

如果我可以改变:文件 - >属性 - >资源 - >位置路径,它将变得简单!

示例移动:

c:\user\desktop\project_123
c:\dev\project_123
Run Code Online (Sandbox Code Playgroud)

eclipse eclipse-pdt

146
推荐指数
4
解决办法
8万
查看次数

php :: textarea中的新行?

当你通过php插入文本时,如何在textarea中创建一个新行?

我以为它是\n在文本区域印刷的.

谢谢

php textarea

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

java.lang.System.currentTimeMillis()替换方法

除了重新编译之外,rt.jar有什么方法可以用currentTimeMillis()我自己的一个替换呼叫吗?

1#正确的方法是使用Clock对象和抽象时间.

我知道但我们将运行由无数开发人员开发的代码,这些开发人员尚未实现Clock或已经实现了自己的实现.


2#使用像JMockit这样的模拟工具来模拟该类.

即使这只适用于禁用Hotspot -Xint并且我们使用下面的代码成功,但它不会"持久"在外部库上.这意味着你必须在任何地方模拟它,因为代码不受我们的控制,是不可行的.所有代码main()都返回0 milis(从示例中),但a new DateTime()将返回实际系统millis.

    @MockClass(realClass = System.class)
    public class SystemMock extends MockUp<System> { 
        // returns 1970-01-01   
        @Mock public static long currentTimeMillis() { return 0; }
    }
Run Code Online (Sandbox Code Playgroud)

3#System使用-Xbootclasspath/p(编辑) 重新声明启动

尽管可能,虽然您可以创建/更改方法,但有问题的方法被声明为public static native long currentTimeMillis();.如果不深入研究Sun的专有和原生代码,你就无法改变它的声明,这将使这成为逆向工程和不稳定的方法.所有最近的SUN JVM都崩溃,出现以下错误:

    EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000, pid=4668, tid=5736  
Run Code Online (Sandbox Code Playgroud)

4#使用自定义ClassLoader(评论中建议的新测试)

虽然使用-Djava.system.class.loaderJVM 替换系统CL的微不足道实际上加载了使用默认classLoader的自定义classLoader,并且甚至没有通过自定义CL推送System.

    public class SimpleClassLoader extends ClassLoader {
        public SimpleClassLoader(ClassLoader …
Run Code Online (Sandbox Code Playgroud)

java time

15
推荐指数
1
解决办法
5376
查看次数

为什么Java Scheduler在Windows上会出现明显的时间漂移​​?

我在Windows 7上运行Java服务,该服务每天在上运行一次SingleThreadScheduledExecutor。尽管它不是很关键,但我从来没有给过太多,但最近查看了一下数据,发现该服务每天大约漂移15分钟,这听起来实在太多了。

Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(() -> {
   long drift = (System.currentTimeMillis() - lastTimeStamp - seconds * 1000);
   lastTimeStamp = System.currentTimeMillis();
}, 0, 10, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

这种方法+110ms每10秒几乎都会漂移一次。如果我每隔1秒运行一次,漂移平均+11ms

有趣的是,如果我对一个Timer()值执行相同操作,则其平均漂移小于一整毫秒。

new Timer().schedule(new TimerTask() {
    @Override
    public void run() {
        long drift = (System.currentTimeMillis() - lastTimeStamp - seconds * 1000);
        lastTimeStamp = System.currentTimeMillis();
    }
}, 0, seconds * 1000);
Run Code Online (Sandbox Code Playgroud)

Linux:不会漂移(也不与Executor或Timer一起使用)
Windows:不会像Executor那样疯狂地漂移,与Timer无关

经过Java8和Java11测试。

有趣的是,如果您假设每秒11ms的漂移,那么您每天将获得950400ms的漂移,相当于15.84 minutes每天。因此,这是非常一致的。

问题是:为什么?
为什么使用SingleThreadExecutor而不是使用Timer会发生这种情况。

Update1 按照Slaw的评论,我尝试了多种不同的硬件。我发现此问题在任何个人硬件上均未发现。仅对公司一。在公司硬件上,它也出现在Win10上,尽管数量少了一个数量级。

java time

14
推荐指数
1
解决办法
258
查看次数

花括号的这个约定是什么名字?

我对开发人员的数量感到有些困惑,我看到在类名或方法下面用花括号编写方法和类.他们遵循什么惯例?

Sun 明确表示正确的声明是:

// this declaration follows sun's conventions
class Sample extends Object {

    Sample(int i, int j) {
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,越来越多我认为这被宣称为(甚至在书中):

// this declaration follows a convention I cant identify
class Sample extends Object 
{

    Sample(int i, int j) 
    {
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道一个会议只是一个惯例,只要你遵循一个惯例,一切都很好.我只是在寻找后一个宣言遵循什么惯例的答案?

java conventions curly-braces

13
推荐指数
4
解决办法
6323
查看次数

Java反射运行时性能

这是一项学术性的练习(免责声明).

我正在构建一个应用程序,它将尽可能快地获利,因为它将与其他人竞争.

我知道使用反射声明一个类(下面的示例)将遭受巨大的惩罚而不是标准声明.

Class mDefinition = Class.forName("MySpecialClassString");
Constructor mConstructor = mDefinition.getConstructor(new Class[]{MySpecialClass.class});
myClass = (MySpecialClass) mConstructor.newInstance(this);
Run Code Online (Sandbox Code Playgroud)

然而,在宣布myClass我是否以标准方式使用它之后,myClass.myMethod() 我是否也会遭遇性能损失,或者它是否会像我以标准方式宣布该类一样?

java reflection performance

11
推荐指数
2
解决办法
2447
查看次数

保持页面更改历史记录.有点像SO做修订

我有一个CMS系统,可以跨表格存储数据,如下所示:

Entries Table
+----+-------+------+--------+--------+
| id | title | text | index1 | index2 |
+----+-------+------+--------+--------+

Entries META Table
+----+----------+-------+-------+
| id | entry_id | value | param |
+----+----------+-------+-------+

Files Table
+----+----------+----------+
| id | entry_id | filename |
+----+----------+----------+

Entries-to-Tags Table
+----+----------+--------+
| id | entry_id | tag_id |
+----+----------+--------+

Tags Table
+----+-----+
| id | tag |
+----+-----+
Run Code Online (Sandbox Code Playgroud)

我正在尝试实施修订系统,有点像SO.如果我只是因为Entries Table我正在计划在一个单独的表中保留该表的所有更改的副本.因为我必须为至少4个表(TAGS表不需要修改)这样做,这似乎不像一个优雅的解决方案.

你们会怎么做?

请注意,元数据表是以EAV(实体属性值)建模的.

先感谢您.

mysql database version-control revision entity-attribute-value

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

jQuery通过谷歌CDN最佳实践

我正在使用以下代码通过Google的CDN加载jQuery.

我的主要问题是如果用户访问我的网站并且还没有预先缓存jQuery会发生什么.他会下载谷歌版本和我自己的吗?这里的并发是如何工作的?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
    if(typeof jQuery == 'undefined') {
        //<![CDATA[
        document.write("<script src='/includes/jquery-1.4.2.min.js' type='text/javascript'><\/script>");
        //]]>
    }
</script>
Run Code Online (Sandbox Code Playgroud)

谢谢.

jquery cdn

8
推荐指数
1
解决办法
1421
查看次数

防止PHP提供的zip文件上的mod_deflate

我遇到一些麻烦阻止mod_deflate跳进这个场景:

  1. 用户运行CodeIgniter(或任何其他重定向index.php的框架)
  2. mod_deflate处于活动状态
  3. zip文件由CodeIgniter控制器提供(头文件+读取文件)

问题是Apache总是将内容检测为正在存在php,因此服务器假定ZIP文件是PHP文件,因此下面的行将不会起作用.

<FilesMatch "\.(xml|txt|html|php)$">
   SetOutputFilter DEFLATE
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

关于我如何让Apache区别于同一index.php框架文件生成的HTML文件或ZIP文件的任何想法.

编辑:
apache日志

[Mon Jun 20 02:14:19 2011] [debug] 
mod_deflate.c(602): [client 192.168.0.5] 
Zlib: Compressed 50870209 to 50878224 : URL /index.php, 
referer: http://demo.dev/
Run Code Online (Sandbox Code Playgroud)

编辑:
提供zip的CI控制器

header('Content-Type: application/zip');
header('Content-Transfer-Encoding: binary');
header("Content-Length: " . filesize($file_location)); 
header('Content-Disposition: attachment; filename="' . $file_title . '"'); 
readfile($file_location);
Run Code Online (Sandbox Code Playgroud)

php apache mod-deflate

8
推荐指数
1
解决办法
4411
查看次数

.htaccess if/else取决于{SERVER_NAME}?

我有这个.htaccess文件,但我希望它只在我在现场网站时这样做.

有什么办法可以:

// if server_name looks like example.com to this
// else dont run this bit
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} (auth|register|secure|payment|admin|trading_careers)
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(auth|register|secure|payment|admin|trading_careers)
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)

我尝试过SetEnvIfNoCase并且IfDefine没有成功.真的不知道是否有可能做我想做的事.

先感谢您.

编辑(未来读者的解决方案示例):

// if https is off
RewriteCond %{HTTPS} off
// if server_name like example.com (case insensitive) OR
RewriteCond %{SERVER_NAME} =example.com [NC,OR]
// server_name like www.example.com (case insensitive)...
RewriteCond %{SERVER_NAME} =www.example.com [NC]
RewriteCond …
Run Code Online (Sandbox Code Playgroud)

apache .htaccess

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