标签: java-7

Java 7 Objects类

public final class ObjectsJava 7中有一个扩展java.lang.Object基类的东西.

这默认是基类,还是我们需要在"Objects"类上调用方法并调用相应的方法?

java java-7

0
推荐指数
1
解决办法
358
查看次数

在Eclipse 3.7.1中使用Java 7闭包语法

我安装了java SDK 7,我正在使用Eclipse 3.7.1 Indigo.

当我使用新的Java 7语法来定义HashMap时,它工作正常.

HashMap<Integer, Integer> hashMap = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用闭包语法时,eclipse会抛出编译错误.这就是我想要编译的内容.

    public static <T> Collection<T> select(Collection<T> source,
                                       {T=>Boolean} predicate) {

    Collection<T> result = new ArrayList<T>();
    for (T o : source) {
        if (predicate.invoke(o)) {
            result.add(o);
        }
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

语法错了吗?或者我做错了吗?

java eclipse java-7 eclipse-indigo

0
推荐指数
1
解决办法
709
查看次数

学习Java 5 Vs Java 7?

我正在计划学习Java,我有使用其他面向对象语言编程的经验,因此我熟悉OOP概念.目前我正在考虑两本书,以帮助我在Java开发中获得快速启动."首先进入Java第二版"或"Java All-in-One For Dummies第3版".

现在很多人都建议首先将Java作为两本书的优先考虑.然而,首先进入Java的是2005年发布的(除非他们是一个我不知道的更新版本)并且在Java 5中教授.Java All-in-One于去年8月发布并针对Java 7进行了更新.

现在我的问题是我倾向于首先使用Java(使用Java5),我是否会错过Java 6和7的重要方面?我是否能够熟练掌握Java开发人员?

java java-5 java-7

0
推荐指数
1
解决办法
2157
查看次数

相同的测试与jdk6和jdk7得到不同的结果

在尝试比较数据类型'int'和'long'的性能时,我遇到了这个奇怪的问题,基本上我有两个单元测试:

@Test
public void testLongOperationPerformance(){
    StopWatch sw = new StopWatch();
    sw.start();
    long count = 0l;
    for(int i = 0; i < Integer.MAX_VALUE; i ++){
        count++;
    }
    sw.stop();
    System.out.println(count);
    System.out.println(sw.elaspedTimeInMilliSeconds());
}

@Test
public void testIntegerOperationPerformance(){
    StopWatch sw = new StopWatch();
    sw.start();
    int count = 0;
    for(int i = 0; i < Integer.MAX_VALUE; i ++){
        count++;
    }
    sw.stop();
    System.out.println(count);
    System.out.println(sw.elaspedTimeInMilliSeconds());
}
Run Code Online (Sandbox Code Playgroud)

这两个单元测试正在做同样的事情,不同的是一个使用int作为计数器的数据类型,另一个使用long.结果:

jdk6u32 (64 bit):
test with long
2147483635
96
test with int
2147483647
2

jdk7 (64 bit)
test with long
2147483647 …
Run Code Online (Sandbox Code Playgroud)

java performance jdk6 java-7 long-integer

0
推荐指数
1
解决办法
559
查看次数

为什么我们需要Java 7中的菱形运算符?

我很好奇为什么我们需要Java7中的钻石操作符?我们可以使用一个简单的静态泛型方法来模拟这种行为,该方法可以添加到集合API中:

HashMap的方法代码:

public static <R, S> HashMap<R, S> getInstance() {
    return new HashMap<R, S>();
}
Run Code Online (Sandbox Code Playgroud)

我们可以这样使用它:

Map<String, List<String>> m = HashMap.getInstance();
Run Code Online (Sandbox Code Playgroud)

和代码,当你可以尝试这种行为:

import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.Arrays;

public class Diamond {
    public static void main(String... args) {
        Map<String, List<String>> m = getInstance();
        m.put("Hello", Arrays.asList("Peter", "Robert"));
        System.out.println(m.toString());
    }
    public static <R, S> HashMap<R, S> getInstance() {
        return new HashMap<R, S>();
    }
}
Run Code Online (Sandbox Code Playgroud)

java java-7

0
推荐指数
1
解决办法
2086
查看次数

使用Java中的字符串切换案例 - garbagy?

Java在其Java7中引入了带有Strings的switch case.我想知道是否使用这样的开关盒会产生垃圾.

例如,在我的程序中,

String s = getString();
switch(s) 
{
    case ABC: // ABC is a final static constant
    ...
    case CDE: // CDE is also final static constant.
    ...
}
Run Code Online (Sandbox Code Playgroud)

java如何执行此切换案例.假设有10个这样的开关盒.它会创建一个新的字符串每次它匹配string scase ABC等?

如果是这种情况,那就非常粗俗,所以当我给出100个案例的开关盒时,每次都会创建100个字符串.

java string switch-statement java-7

0
推荐指数
1
解决办法
184
查看次数

类的数组的字母顺序

我有一个Class数组Customer.我想按字母顺序重新排序Class数组中Customer基于所调用字段的元素name.

这是我正在使用的代码:

int j;
        boolean flag = true;  // will determine when the sort is finished
        Customer temp;
        while ( flag )
        {
            flag = false;
            for ( j = 0;  j < count_customers;  j++ )
            {

                if ( customers[ j ].getName().toString().compareToIgnoreCase( customers[ j + 1 ].getName().toString() ) > 0 )
                {
                    temp = customers[ j ];
                    customers[ j ] = customers[ j+1 ];     // swapping
                    customers[ j+1 ] = temp; 
                    flag = true; …
Run Code Online (Sandbox Code Playgroud)

java sorting bubble-sort java-7

0
推荐指数
1
解决办法
77
查看次数

为什么使用或不使用java 7来制作JAVA EE应用程序

Java 6是这种编程语言的稳定版本.但是我想升级到当前版本的java 7.这时,建议在生产中使用java 7吗?在哪里可以找到有关我升级到java 7时可能遇到的问题的更新信息?

java java-7

0
推荐指数
1
解决办法
335
查看次数

创建一个通用方法来运行特定方法作为参数

我正在尝试更改图像的亮度,对比度和其他值.我发现我正在使用经典的双循环来进行很多这些操作,只是在双循环中运行一些简单的数学运算,如下所示:

public void changeBrightness(int brightness)
{
        for(int i=0; i<height; i++)
        {
            for(int j=0; j<width; j++)
            {
                pixels[j][i] = MathUtils.ensureRange(pixels[j][i] + brightness,0,254);
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

但是,我现在需要创建一个几乎完全相同形式的changeContrast方法,并且我想使用一些不同的数学运算来设置这些操作,其中像素被设置.所以,我想用double for循环创建一个泛型方法,它将执行一个作为参数传递的方法.我将如何在Java 7中解决这个问题?以下是我在想的一个例子:

public void runPixelOperation(***pixel operation method goes here***)
    {
        for(int i=0; i<height; i++)
        {
            for(int j=0; j<width; j++)
            {
                pixels[j][i] = ***run pixel operation here***
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

java java-7

0
推荐指数
1
解决办法
58
查看次数

Java日历时区更改未按预期工作

我正在使用Java日历在午夜(GMT)创建某个日期,然后将时区更改为我的本地时区,以确保请求的时间为1:00(GMT +1)。下面的代码有效,包括。2个成功断言。

TimeZone TIMEZONE_GMT = TimeZone.getTimeZone("GMT");
TimeZone TIMEZONE_LOCAL = TimeZone.getDefault(); // GMT + 1

private Calendar getMidnightGmtCalendarWithLocalTimezone() {
    Calendar calendar = Calendar.getInstance(Locale.GERMAN);
    calendar.set(2017, Calendar.JANUARY, 1, 0, 0, 0);

    calendar.setTimeZone(TIMEZONE_GMT); // Probably not required
    assertEquals(0, calendar.get(Calendar.HOUR_OF_DAY)); // Assert 1

    // Log.i("TAG", "" + calendar.get(Calendar.HOUR_OF_DAY));

    calendar.setTimeZone(TIMEZONE_LOCAL);
    assertEquals(1, calendar.get(Calendar.HOUR_OF_DAY)); // Assert 2
    return calendar;
}
Run Code Online (Sandbox Code Playgroud)

现在,我删除第一个断言,并且我希望没有任何变化。现实:第二个断言现在失败了!我试图了解.get()的实现,而且显然它也需要一些时间,因此它不仅仅是收集值。仍然我不明白为什么我的第二个断言失败了。

当我取消对Log行的注释时,第二个断言再次成功(只是为了确保问题出自calendar.get()而不是断言!)

所以第一个问题:为什么会这样?第二问:当我将时区GMT设置为午夜时,如何确保我的日历实例具有本地时区?(换句话说,如何正确转换时区?)

编辑: 我在Android上使用此,所以不能使用Java8。Joda时间(如下建议)是一个很好的选择,我将对此进行深入研究。但是,作为我的问题的答案,我想知道它如何与Java7 Calendar一起使用,因为目前我已绑定到该代码。

timezone android calendar java-7

0
推荐指数
1
解决办法
1144
查看次数