¿Hay alguna manera de calcular rápidamente la firma de una cadena para ayudar a detectar cambios en la cadena?

Tenemos una etiqueta no crítica cuyo valor es una cadena. Queremos verificar los cambios del valor de la etiqueta. Pero no queremos hacer una comparación de cadenas ya que esto involucra cliente-servidor y en su lugar queremos calcular algún tipo de valor para la cadena y usar el valor para ayudar a detectar los cambios en la cadena. Como la cadena no es crítica, nos preguntamos si existe una solución muy simple y rápida para calcular dicho valor para ayudar a detectar cambios en la cadena.

Respuesta 1

Use el .hashCode ()

String.hashCode()No es perfecto porque tiene pérdidas. Por lo tanto, es posible que la cadena cambie y tenga el mismo código hash. (pero esto no sucederá con frecuencia) Casi cada vez que la cadena cambia, su código hash también cambiará.

Entonces sabes en lo que te estás metiendo, el código para String.hashCode()esto es:

public int hashCode() {
    int h = hash;  // the cached hash value
    int len = count;  // the number of characters in the string
    if (h == 0 && len > 0) {
        int off = offset;
        char val[] = value;

        for (int i = 0; i < len; i++) {
            h = 31*h + val[off++];
        }
        hash = h;
    }
    return h;
}
Respuesta: 2

Cuando instale un certificado SSL, también debe incluir los certificados intermedios. Manejo muchos certificados SSL y paso mucho tiempo buscando intermediarios a lo largo de la cadena ...

Me gustaría exportar mi jcomponent (método de componente de pintura personalizado que dibuja muchos textos y líneas, imágenes pequeñas (una especie de aplicación de palabras pequeñas)) a PDF. Mi componente es "facturar", el método que uso ...

He creado una prueba simple que crea y elimina un archivo (el nombre no cambia) en un bucle infinito. La prueba se ejecuta durante un par de segundos (¡a veces más de 77,000 iteraciones!) Y luego falla con ...

Leí la muestra sobre proxy aquí: http://docs.oracle.com/javase/1.3/docs/guide/reflection/proxy.html Como puede ver, el parámetro 'proxy' en el método de 'invocar' no es usado. ¿Qué es el proxy ...