(10-18-2011, 06:59 PM)Yumichan escribió: Es que eso último, new String ("17") es redundante.
Los literales de cadena son objetos en Java, tal cual.
String hola= "hOla".toUpperCase(); // "HOLA"
Ese literal no es { 'h', 'O', 'l', 'a', '\0'}, es un objeto con todas sus cosas.
He ahí una inconsistencia de Java. String es un objeto, debería declararse como tal usando el constructor adecuadamente y no como un tipo simple.
Y LoKo, me daba pereza hacer un bucle para reemplazar la cadena por "17+2". Pero tienes razón. xD
Porque el objeto String es inmutable, ya que la clase nativa es char y String es un array de chars, mientras que Stringbuffer es un vector.
Cuando haces.
Código:
String hola= "hOla".toUpperCase(); // "HOLA"
El compilador crea el String "hOla", lo convierte a buffer, lo modifica a HOLA y lo vuelve a convertir a String.
Si tomas la costumbre de usar siempre Stringbuffer te ahorras dos objetos y dos casts.
Y no, no es ninguna inconsistencia. Es llevar la orientación a objetos a sus máximas consecuencias. Es más, diría que fueron consistentes en exceso a la hora de no hacer nativa la clase String.
"Es como el que se mataba a pajas con U-jin y hoy en día o es Boku no Piko o ni se le levanta." - AniList
10-19-2011, 09:28 AM (Este mensaje fue modificado por última vez en: 10-19-2011, 09:40 AM por Yumichan.)
(10-19-2011, 08:56 AM)Reboot escribió: El problema es que usáis la clase equivocada. Si queréis trabajar con cadenas no tenéis que usar String, sino Stringbuffer.
Cuando añadís o substraéis caracteres a un String, el compilador hace lo siguiente:
Porque el objeto String es inmutable, ya que la clase nativa es char y String es un array de chars, mientras que Stringbuffer es un vector.
Es lo que trato de explicar desde hace 1 página, pero no leeis... , aparte de comentar que si no hay multiples hilos StringBuilder es ligeramente mejor ( x 2 )
(10-19-2011, 08:56 AM)Reboot escribió: Cuando haces.
Código:
String hola= "hOla".toUpperCase(); // "HOLA"
El compilador crea el String "hOla", lo convierte a buffer, lo modifica a HOLA y lo vuelve a convertir a String.
Si tomas la costumbre de usar siempre Stringbuffer te ahorras dos objetos y dos casts.
Era una forma de demostrale a EmuAGR, que un literal de cadena es un objeto de la clase String y como tal puedes usar sus métodos sobre él. Puedes poner cualquier otro ejemplo.
EmuAGR escribió:He ahí una inconsistencia de Java. String es un objeto, debería declararse como tal usando el constructor adecuadamente y no como un tipo simple.
Por poder se puede continuar viendo cosas raras ad infinitum (a Java y a todos los lenguajes), pero IMHO obligar a hacer new con literales de cadena:
a ) Sería una chapuza obligar a hacerlo siempre, new String (String) "copia" contenido. Lo tienes en un sitio y es inmutable, pa' qué mas (salvo los casos concretos para aligerar el GC).
b ) Es lo mismo de antes, es por estar pensando que un literal es un tipo simple como los char* de C. ¡El propio literal es un objeto!, ¡el compilador lo ve como un objeto!, sólo hay que pensar en él como tal.
c ) Java permite que todas las clases que mapean tipos simples (Char, Integer, Double, etc) admiten instanciación desde sus tipos de datos simples. De pensar que b ) es una inconsistencia del lenguaje, c ) viene a uniformizarlo.
No trabajo con .NET, sólo he leido cosas de pasada, a ver si alguien sabe concretar este punto, pero creo que salvo el punto c ) estos lenguajes se comportan como Java porque supone una ventaja evidente.
Pero podemos hablar de ponis y que Frikitty haga flame (lo de los ponis va en serio, le pega a Java XD)
Chapuzas, chapuzas everywhere. Un puto juego de cubos pixelizados que a veces laguea en mi i7 920 con una ATI HD5850 y que no pueden hacer nada porque se piratee... xD
10-19-2011, 01:54 PM (Este mensaje fue modificado por última vez en: 10-19-2011, 01:55 PM por Nobi.)
Visto así, puede parecer una caca. Pero ten en cuenta que para lograr un escenario totalmente maleable ha de renunciar a la mayoría de las técnicas de optimización que usan los motores gráficos y renderizar "a pelo" escenarios de un tamaño bastante considerable. Y eso sin tener en cuenta que el programa debe también conocer las características del material de cada bloque.
(10-19-2011, 09:28 AM)Yumichan escribió: Pero podemos hablar de ponis y que Frikitty haga flame (lo de los ponis va en serio, le pega a Java XD)
Me encanta porque he estado ignorando estos últimos post ya que no me enteraba de una puta mierda, y he ido a fijarme en mi nick dentro de ese pedazo de tochopost tuyo.
Los ponis lo petan.
Y ANLIUM pero como no tengo nada que hacer hasta las ocho, me pondré a subtitular ponis.
Esta firma era tan vieja que me veo obligada a poner esta frase tan sosa.