- 1. Java World Capulo 6 2http: // Gustavoal Benvido a unha nova edición de Javaworld De novo para os nosos amigos de valor creativo Leo, benvido á vida real de novo!. Er nesta entrega estaremos falando un pouco sobre as expectativas na industria da computación. Moi ata a todos aqueles que están ausentes ou dentro do Mbito de Emprendedores. Volvendo á certificación, comezaremos a entrar na API de Java especializada para a entrada e saída de datos. Si, a agora podes ler isto .txt con todos os telfones que tomaches o SBADO e pasalo á túa axenda desenvolvida en Java. .B Aprenderemos a persistir nosos obxectos co modelo de serialización que nos propón de forma nativa Java, un beneficio l en principio non depender dunha base de datos, pero que terá un valor engadido cando traballamos enviando mensaxes a través de Internet con este mesmo método 😉 G Xa estamos na conta atrás nas edicións de Javaworld, só hai 4 capítulos. Aproveite a extraer dúbidas, enviando comentarios ou por correo electrónico (pódese obter datos en blogs). PO Aproveitamos a oportunidade de agradecer ao apoio que recibiu a comunidade e a boa onda para avanzar con este proxecto … grazas a All.O The Journal Staff JavaWorldm
2. 3Java World CAPTURE 6 H A CLASE T A medida que mencionamos nas capturas anteriores, a clase de cadea non pode ser modificada. Entón, como podemos asociar diferentes cordas á mesma variable de tipo de cadea? A corda P é un obxecto inmutable: / inmutable esa palabra. E que significa? Simple, exactamente que un obxecto de cadea non pode cambiar o seu valor, pero en ningún momento é mencionado que unha variable de cadea non pode apuntar a outro obxecto. v Nós imos ver algúns exemplos para entendelo mellor: unha clase Pública Testsstring_001 {Void público estático (String Args) {ou STRING S1 = nova cadea (“Hola”); r string s2 = “javaworld”; c sistema.out.println (S1); R system.out.println (S2); E s1 = S1 + “-“; a s2 = s2.tuppercase (); // pasa a Maysculas The T Chain System.out.println (S1); I System.out.println (S2); v sistema.out.println (s1.concat (S2)); // Concatena dúas cadeas. É equivalente a S1 + S2 ou. String s3 = s2; B}} L O Ghola Sjavaworld Phola-Javaworld OHOLA-JAVAWORLD T. Agora podes estar se pregunta pero non dixen que unha cadea era inmutable? Si, é, pero reiterar, ninguén di que unha variable de cadea C non pode facer referencia a outro obxecto. Ou gráficamente ver o mapeamento de memoria: M 3. Java World Capture 6 4h 0000 000b 001F0020 002C 002D – 00410042 – 0051 T Ola Javaworldhola-Javaworld Ola Javaworld TP: S1 S2System.Out.println (S1.Concat (S2); / Hello javaworld / g u1 = nova cadea (“hola”); s1s2s3s s2 = “javaworld”; Hello-javaworld javaworld t s1 = s1 + “-“; A S2 = S2.Touppercase (); V ou cada Carta dentro dunha cadea está en formato UFT-16. As posicións de memoria mostradas anteriormente son OLOLA para exemplificar. O comportamento do almacenamento está dirixido polo JVM en conxunto co sistema operativo. Cando se inicializan as variables, os valores son asignados Hello e Javaworld, aquí está cando creamos os nosos dous primeiros obxectos de tipo de cadea. E entón, a S1 que concatenamos e garda o resultado na mesma variable, o que fai que se xere un novo obxecto e a actualización da referencia a punto a este. Ou S2 transformouse en Maysculas. De novo xérase outro obxecto e almacenamos a referencia en S2. L e finalmente, xeramos unha saída na pantalla S1 + S2. Neste caso, tamén se xerou un novo obxecto, coa excepción de que a referencia non captura a ninguén. Unha vez que está na pantalla, esta variable é un candidato a ser liberado polo lixo ao coleccionista. Como poidan ter notado, en ningún momento non se modifica ningún obxecto, pero se cambiaron as referencias B de S1 e S2. L Para Ltimo, cando creamos un novo obxecto (S3) e asignamos o valor de S2, non se crea un novo obxecto, a mesma posición de memoria está asignada. Tempo que xeran unha nova cadea, xérase un novo obxecto de cadea, sempre. A excepción de ningún tipo de alimentos é SCUANDO asignando o valor dunha variable de cadea a outra. Neste caso, ambos apuntan á mesma posición pde memory.o t. Cadea e memoria C xa que unha cadea é algo tan común e para poder optimizar a memoria, o JVM resérvase unha área especial de memoria ou a chamada piscina constante de cadea (cadea de constantes). Cando o compilador atopa un literal de cadea, verificam no banco se hai outra cadea idéntica. Se un é un, remitido directamente a isto, pero creouse un novo obxecto de cadea. A clase de cadea contén o modificador de non acceso. Isto significa que non é posible escribir a clase.Creación de cadeas Hai unha diferenza sutil entre a creación dunha cadea por un obxecto literal e un obxecto: 4. 5Java World CAPTULO 6String S1 = “JavaWorld” H crea unha variable de referencia (S1) e un obxecto de cadea que se almacena na constante de cadea Banco e asociado a S1. t string s2 = nova cadea (“javaworld”) T unha variable de referencia é creada (S2). A medida que usamos a nova palabra clave, o obxecto de cadea créase fóra do banco de constantes P string e s2 referíndoo. Entón, o literal Javaworld insírese no banco. : MTS da corda / clase String O MS MS Ocasión de clase String é nomeado: / tipo de valor MTDODESCRIPCIN V Retorno L Charchart (Índice INT) devolve o carácter situado no índice especificado. O StringConcat (String Str) engade unha cadea ao final doutro (equivalente ao uso +). R Boolean Equalsignorecase (cadea outra tring) indica se dúas cadeas son iguais, sen ter en conta maysculas. C int lonxitude () devolve o número de caracteres que a cadea contén. R StringReplace (Char Carácter, Charreemplaza cada característica co recurso. E FeatureNew) para StringSubstring (INT HomeIndice, INT Ampleindice) Devolve unha nova cadea cos caracteres composta de T casa para finisted. I StringtolowerCase () Converte os personaxes en Minscula. v StringTostring () Devolve o valor dunha cadea (dado que é unha cadea, é devolto a S ou mesmo). .. String Touppercase () Converte os personaxes en Mayscula. String Trim () Elimina espazos en branco ao comezo e ao final da cadea. B para a información da MS pode consultar a API JAVA LTTP: //java.sun.com/j2se/1.4.2/docs/api/java/lang/string.html og Shay que destacan que o tipo de corda ten un método LTGTH (), E as matrices teñen un parámetro lonxitude .pot StringBuffer e StringBuilder. Cando imos usar moitas cadeas, podemos usar as clases java.lang.stringbuffer ou java.lang.stringbuilder. A diferenza da cadea C, coa que xeramos varias cadeas, almacenaranse na cadea Constant Bank, estas novas clases non se almacenan nesta última, senón que aproveitan o mesmo espazo de memoria. M stringbuffer vs. StringBuilder A clase StringBuffer foi incorporada de Java versión 5. Ten exactamente a mesma API que StringBuilder, a menos que non sexa seguro de fío (multi-teléfono con seguridade). Noutras palabras, os métodos non están sincronizados. Java recomenda sempre que sexa posible, use StringBuilder, xa que é moito máis rápido que a súa irmá Stringbuffer. Solo StringBuilder non é un fío-Safe.stringBuffer Se é seguro-Safe.ambes Comparte a mesma API. Cando necesitamos que sexa seguro de fíos, usaremos StringBuffer. 5. Java World Capulo 6 6Tilizing Stringbuffer e StringBuilder HT STRING S1 = “JAVAWORLD”; // Unha cadea engádese á cadea S1 + = “Banco. Imos por MS”; // Unha nova cadea é xerada e a referencia O anterior está perdido TP // A Stringbuffer créase (non vai á cadea Constant Bank) Stringbuffer S1 = Novo Stringbuffer (“Javaworld”) ;: S1.Append (“. Imos por MS”); // Modifícase polo mesmo obxecto (non se crea unha nova cadea) / Métodos importantes en Stringbuffer e StringBuilder Classes / G VALOR VALOR MODOSORK (“Queres ser”); S S.Append (“A SCJP!”); (Non é necesario atrapar a // que quero ser unha referencia de SCJP! Para que se realice o cambio). v stringbuffer / delete (int casa, noelimine o subcadeno dentro de stringbuffer s = new stringbuffer (“Quero ser un stringbuilderint ent) da cadea de obxectos SCJP!”); S.Delete (10, 13); // Quero unha parte da posición para comezar o SCJP! L FIN DE POSICIÓN. StringBuffer / Inserir (Intindex, se insira unha nova cadea (s) Stringbuffer S = newb Stringbuffer (“Quero SCJP”); Stringbuilderstring S) de Posicin S.insert (7, “Sexa A”); e indicado por índice dentro // Quero ser un SCJPR da cadea de obxectos ou StringBuffer / reverter () Ninoviet a cadea. StringBuffer S = New StringBuffer (“PJCS”); l stringbuilder s.revert (); // SCJP to string Tostering () Nodevuelve A string with the stringbuffer s = new stringbuffer (“scjp”); .. Valor do obxecto String s1 = s.testring; // SCJP BL É posible que estean no exame con métodos defectuosos, estes son simplemente resoltos á esquerda á esquerda, eo resultado dun método é o obxecto que o segundo.gs usa un exemplo de equivalencias: p stringbuffer s = New StringBuffer (“A SCJP”); ou s.reverse (). Eliminar (4, 7) .Apppend (“… a quen?”). Inserir (0, “Quero ser”); t sistema.out.println (s); // Quero ser un PJCS … un que?. StringBuffer S2 = Nova Stringbuffer (“A SCJP”); C S2.REVERSE (); ou s2.delete (4, 7); S2.append (“… a quen?”); M s2.insert (0, “Quero ser”); Sistema.out.println (S2); // Quero ser un pjcs … un que?StringBuffer e StringBuilder, como a cadea, non require ningunha importación. 6. 7 Java World CAPT