小编IOI*_*upt的帖子

首先设计模式与首先面向对象的分析和设计

目前我正在通过Head First Java学习Java,并开始展望更多有关OOP /设计模式的内容.

我的问题是在Head First Java之后应该追求哪本书.我在Head First Design Patterns和Head First Object Oriented Analysis and Design之间徘徊不前.毫无疑问,我可能应该阅读这两个,但我不确定两者之间的区别是什么,哪个更适合作为Head First Java的后续版本.

任何阅读这些建议或细节的人都将不胜感激.

java design-patterns object-oriented-analysis

16
推荐指数
1
解决办法
8813
查看次数

比预期的Java正则表达式性能慢

我的任务是读取大型CSV文件(300k +记录)并将regexp模式应用于每条记录.我一直是一名PHP开发人员,从未真正尝试过任何其他语言,但决定我应该尝试使用Java,我认为这会更快.

事实上,只是逐行读取CSV文件在Java中快了3倍.然而,当我应用了正则表达式的要求,Java实现被证明会比PHP脚本长10-20%.

我很有可能在Java中做错了什么,因为我就像今天一样学到了这一点.以下是两个脚本,任何建议将不胜感激.我真的不想放弃这个特定项目的Java.

PHP代码

<?php
$bgtime=time();
$patterns =array(
    "/SOME REGEXP/",
    "/SOME REGEXP/",                    
    "/SOME REGEXP/",    
    "/SOME REGEXP/" 
);   

$fh = fopen('largeCSV.txt','r');
while($currentLineString = fgetcsv($fh, 10000, ","))
{
    foreach($patterns AS $pattern)
    {
        preg_match_all($pattern, $currentLineString[6], $matches);
    }
}
fclose($fh);
print "Execution Time: ".(time()-$bgtime);

?>
Run Code Online (Sandbox Code Playgroud)

JAVA CODE

import au.com.bytecode.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.ArrayList;

public class testParser
{
    public static void main(String[] args)
    {
        long start = System.currentTimeMillis();


        String[] rawPatterns = {
                    "SOME REGEXP",
                    "SOME REGEXP",                    
                    "SOME REGEXP", …
Run Code Online (Sandbox Code Playgroud)

php java regex

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