Больше, чем символ, но меньший, чем блоб

Существуют небольшие различия в зависимости от того, говорите ли вы о «примитивах» или «типах объектов»; то же самое можно сказать, если вы говорите о «статических» или «нестатических» членах; вы можете также смешать все вышеперечисленное ...

Вот пример (вы можете запустить его):

public final class MyEqualityTest
{
    public static void main( String args[] )
    {
        String s1 = new String( "Test" );
        String s2 = new String( "Test" );

        System.out.println( "\n1 - PRIMITIVES ");
        System.out.println( s1 == s2 ); // false
        System.out.println( s1.equals( s2 )); // true

        A a1 = new A();
        A a2 = new A();

        System.out.println( "\n2 - OBJECT TYPES / STATIC VARIABLE" );
        System.out.println( a1 == a2 ); // false
        System.out.println( a1.s == a2.s ); // true
        System.out.println( a1.s.equals( a2.s ) ); // true

        B b1 = new B();
        B b2 = new B();

        System.out.println( "\n3 - OBJECT TYPES / NON-STATIC VARIABLE" );
        System.out.println( b1 == b2 ); // false
        System.out.println( b1.getS() == b2.getS() ); // false
        System.out.println( b1.getS().equals( b2.getS() ) ); // true
    }
}

final class A
{
    // static
    public static String s;
    A()
    {
        this.s = new String( "aTest" );
    }
}

final class B
{
    private String s;
    B()
    {
        this.s = new String( "aTest" );
    }

    public String getS()
    {
        return s;
    }

}

Вы можете сравнить объяснения для «==» (Equality Оператор) и ".equals (...)" (метод в классе java.lang.Object) через эти ссылки:

6
задан Teifion 7 August 2008 в 18:14
поделиться

3 ответа

Я предложил бы использовать varchar (500). Даже при том, что varchar не является фиксированной длиной, база данных должна зарезервировать корректную сумму пространства. Вы не должны замечать различие в производительности с помощью varchar (500) по 2xchar (255).

Вы также, вероятно, собираетесь вызвать дополнительные издержки путем присоединения к двум символьным полям вместе.

7
ответ дан 10 December 2019 в 02:56
поделиться

Я предложил бы использовать varchar (500)

... если у Вас есть MySQL 5.0.3 или выше. В предыдущих версиях VARCHAR был ограничен 255 символами.

Кроме того, CHAR и VARCHAR не работают тот же относительно конечных пробелов. Обязательно читайте 10.4.1. CHAR и Типы VARCHAR (это для MySQL 5.0).

2
ответ дан 10 December 2019 в 02:56
поделиться

Вы волнуетесь слишком много о внутренних деталях реализации. Не предварительно оптимизировать.

Пойдите с VARCHAR(500)

0
ответ дан 10 December 2019 в 02:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: