¿Cuál es el mejor libro tutorial de Java para principiantes?
Esta es la última versión
Cuando se aprende un nuevo conocimiento, no se puede esperar dominarlo por completo leyendo sólo uno o dos libros. Se requiere un proceso de lectura paso a paso. Recomiendo la serie de libros Java de O'Reilly.
Me gustaría agregar un punto más aquí. Mucha gente aprende Java con el libro "Pensar en Java", pero creo que este libro no es adecuado para principiantes. Creo que el uso correcto de este libro es como lectura complementaria. "Pensar en Java" no es una introducción completa a todo el sistema Java, sino un trampolín que proporciona un análisis y una explicación en profundidad de muchos puntos de conocimiento de Java en forma de indicaciones.
Para los principiantes, es mejor encontrar un libro de introducción a Java que presente la sintaxis de Java, las características orientadas a objetos, las bibliotecas principales, etc. en una secuencia relativamente completa. Mientras lee este libro, puede leerlo simultáneamente. "Pensar en Java" profundiza su comprensión de los principios del uso de Java y, al mismo tiempo, le permite comprender completamente todo el sistema Java.
Para los desarrolladores de Java, el libro "Pensar en Java" puede ayudarlos a comprender mejor los principios del uso de Java y, al mismo tiempo, comprender completamente todo el sistema de Java.
Para libros de introducción a Java, Cai Xueyong recomendó "Exploring Java, 2nd Edition" o "Java in a Nutshell, 2nd Edition (para conocimientos básicos de C++)" de Oreilly. Aprobar. De hecho, creo que "Explicación detallada de la programación de Java 2" o "Java 2 de principiante a maestro" de Electronic Industry Press son muy buenos.
Entre todos los libros de Java, el más útil no es "Java Sequence" de O'reilly. ¡Lo que realmente es la documentación JDK! Casi todo lo que desea saber está en la documentación y la parte más importante es, por supuesto, la biblioteca básica de Java. La documentación de la API está organizada por paquete. Cada clase tiene una explicación detallada, incluida su relación de herencia, si implementa una determinada interfaz, en qué ocasiones se usa habitualmente y también puede encontrar todas sus propiedades y métodos públicos, la explicación de. cada atributo, el significado de cada método, el propósito de los parámetros, la llamada de los parámetros, el significado de los parámetros, el tipo de valor de retorno, el tipo de método y valor de retorno, y las excepciones que puede tener el método tirar, etc De esta manera, todos los libros sobre programación Java en realidad solo presentan el lenguaje de una manera relativamente fácil de entender y brindan una introducción bien organizada al uso de algunas clases contenidas en el paquete de documentación. Si tiene la capacidad de aprender las bibliotecas de Java directamente desde la Documentación, no necesita leer ningún otro libro. Además, la documentación también es un manual de programación esencial. Hay tres accesos directos a la documentación en mi escritorio, a saber, documentación J2SDK1.4.1, documentación Servlet2.3 y documentación J2SDKEE1.3.1. Con estos tres documentos no se necesita nada más.
Para la programación web Java, lo más importante es estar familiarizado y dominar el protocolo HTTP. Esto no tiene nada que ver con Java. Una vez que esté familiarizado con el protocolo HTTP, también debe estar familiarizado. con la biblioteca de clases Java que implementa el protocolo HTTP, que es la API de Servlet, entonces lo más importante es la API de Servlet. Por supuesto, para principiantes. Por supuesto, para los principiantes, es muy difícil aprender programación web directamente a través de la API de Servlet. Recomiendo el libro "Java Server Pages" de O'reilly para aprender programación web.
Entre los libros de EJB, "Enterprise JavaBeans, 2nd Edition" es un libro muy bueno. El umbral de aprendizaje para EJB es relativamente alto y es difícil comenzar, pero este libro reduce por completo la dificultad de aprendizaje. lo cual es especialmente importante. El punto más importante es que el aprendizaje de EJB debe combinarse con la implementación específica de App Server, por lo que mientras aprende EJB, debe aprender App Server. Mientras aprende EJB, también debe aprender algún tipo de servidor de aplicaciones. Los tres libros relacionados con este libro son la implementación de Weblogic6.1, Websphere4.0 y JBoss3.0. Realmente presta igual atención a la teoría y la práctica. Mientras aprende EJB, puede verlo mientras lo hace, y aprender EJB será muy fácil.
Sin embargo, este libro también tiene un problema, es decir, la versión es relativamente antigua y habla principalmente de la especificación EJB1.1 y algunas especificaciones EJB2.0. El libro "Mastering EJB 2.0" escrito por Ed Roman se basa completamente en la especificación EJB2.0. Explica todo en términos simples y cubre todos los aspectos de la programación EJB. También es uno de los. Libros muy recomendados para aprender EJB.
Si está aprendiendo J2EE en combinación con Weblogic, "Aplicaciones J2EE y BEA Weblogic Server" es definitivamente la primera lectura. Aunque se trata de Weblogic6.0, vale la pena comprarlo. Libro de texto recomendado oficialmente por BEA. El autor también es ingeniero en BEA. Las versiones chinas ahora están disponibles en todas partes. Este libro combina Weblogic para presentar todos los aspectos del desarrollo e implementación de la tecnología J2EE en la plataforma Weblogic y es muy práctico e instructivo.
Después de dominar los conocimientos básicos de la plataforma Java y J2EE, y aprender más a utilizar métodos OO para el diseño de software, debe aprender "Patrones de diseño". Sun ha publicado un libro "J2EE Core Patterns". Este es un libro imprescindible para todo arquitecto que desarrolle software empresarial Java. Sun ha publicado un libro "J2EE Core Patterns", que es un libro imprescindible para todo arquitecto que desarrolle software empresarial Java. Este libro presenta de manera integral varios patrones de diseño en la arquitectura J2EE y es una lectura obligada para los diseñadores.
Proceso de la ruta de aprendizaje de Java (3)
El método de aprendizaje de cada persona puede no ser adecuado para otra persona. Solo puedo hablar de mis propios métodos de aprendizaje. Debido a que aprendí Java completamente por mi cuenta y nunca le pregunté a nadie más, el proceso de aprendizaje básicamente lo descubrí por completo yo mismo. No sé si este método es mejor, pero sólo puedo darte una pequeña referencia.
El primer paso para aprender Java es instalar JDK y luego escribir un Hello World? De hecho, aprender JDK no es tan simple. Hay dos problemas sobre JDK que fácilmente preocupan a los programadores de Java: uno es el problema de CLASSPATH, en principio, es descubrir cómo el ClassLoader de JRE carga la clase; Problema de paquete e importación, cómo encontrar la ruta de la clase. Para aclarar estas dos preguntas, hemos eliminado los mayores obstáculos para aprender Java y utilizar el JDK. Se recomienda leer el libro "Java Deep Adventure" de Sam Wang para obtener más información sobre estos dos temas.
El segundo paso es aprender la sintaxis de Java, que es similar a C++. Básicamente, los lenguajes de programación convencionales son similares a C o C ++, y no hay nada nuevo, por lo que aprender la sintaxis solo lleva aproximadamente medio día. Lo único que necesita atención es el uso de varias palabras clave que no son fáciles de entender, como público, protegido, privado, estático, cuándo usarlo, por qué usarlo y cómo usarlo. Esto puede requerir que alguien lo haga. Dar orientación. Al principio, estaba completamente solo. Me tomó mucho tiempo. Sin embargo, más tarde vi el libro anterior "Pensar en Java" que hablaba de estos conceptos.
El tercer paso es aprender las características del lenguaje de programación orientado a objetos Java.
Por ejemplo, herencia, constructores, clases abstractas, interfaces, polimorfismo de métodos, sobrecarga, anulación y mecanismo de manejo de excepciones de Java. Para alguien que no tiene experiencia en lenguajes orientados a objetos, creo que este proceso lleva mucho, mucho tiempo, porque no tenía experiencia en C++ antes de aprender Java, solo tuve experiencia en C++. Me tomó más de un mes aprender Java. Comprenda completamente estos conceptos, reflexione y revise repetidamente los ejemplos del libro e intente leer el contenido de esos capítulos una y otra vez, ¡no menos de 5 veces! Leí esos capítulos una y otra vez, una y otra vez, no menos de 5 veces, y simplemente lo entendí. Pero creo que si tienes experiencia en C++, uno o dos días deberían ser suficientes. Luego, durante este proceso, puede leer más sobre el libro "Pensar en Java". La explicación orientada a objetos es muy completa. Es una pena que no leí este libro cuando estaba estudiando, así que dediqué mucho tiempo a aprenderlo mediante mi propia prueba y error.
El cuarto paso es familiarizarse con la biblioteca de clases de Java. La biblioteca de clases básica de Java es en realidad el paquete jre\lib\rt.jar en el directorio de instalación de JDK. Aprender la biblioteca de clases básica es aprender rt.jar. Hay muchísimas clases en la biblioteca de clases básica. Se dice que son más de 3.000, pero no los he contado. Pero sólo hay cuatro que son realmente fundamentales para nosotros, a saber,
java.lang.*
java.io.*; *;
java.sql.*;
El aprendizaje de estos cuatro paquetes, cada paquete se puede escribir en un libro de texto grueso, y O'reilly lo ha hecho. No creo que sea posible aprender leyendo cuatro libros si tienes poco tiempo. Creo que la mejor manera de aprender es esta:
En primer lugar, lea todo el marco del paquete para comprender las clases, interfaces y excepciones de todo el paquete. Es mejor encontrar artículos que presenten el paquete completo. marco del paquete. Los primeros capítulos de los libros dedicados a los paquetes deberían servir como introducción al marco general.
El marco general del paquete de software no es familiarizarlo con el uso de cada clase y recordar qué propiedades y métodos tiene. Incluso si quieres recordar, es imposible. En cambio, necesita saber de qué están compuestas las clases del paquete, cuáles son los usos de estas clases y qué funciones completan las clases principales. Cuando te entreno, normalmente enseño un paquete por clase, por lo que es imposible presentar el uso de cada clase en detalle, pero he enfatizado repetidamente que no te estoy hablando de estos paquetes para decirte cómo llamar a métodos en el Todos deben recordar las llamadas a métodos en la clase, pero deben comprender qué clases nos proporciona Java, cuándo se usa cada clase y cuándo encontramos problemas. Sé qué clase o combinación de clases resuelve mi problema, ¡eso es todo! Cuando escribimos un programa, basta con saber qué clase utilizar para realizar el trabajo. Al codificar, debe consultar la documentación para ver las llamadas a métodos específicos mientras escribe el código. Todo está en la documentación. No es necesario que lo recuerde. De hecho, hay más de 3000 clases y casi 10 que no puede recordar. Miles de llamadas a métodos. Por lo tanto, resulta extremadamente importante comprender el marco general de cada paquete.
El quinto paso, a través del aprendizaje anterior, si el aprendizaje es relativamente sólido, entonces se han sentado las bases de Java. El trabajo restante es ordenar la documentación además de los cuatro paquetes anteriores. otras clases útiles. Creo que después de avanzar hasta este punto, la capacidad de autoaprendizaje de Java se ha desarrollado y puede alcanzar el nivel de aprendizaje directo de Documentación. Además de la programación GUI, otros paquetes útiles en el JDK incluyen estos:
java.text.*
java.net.*
javax. naming.*;
En realidad, se utilizan muy pocas clases en estos paquetes, solo unas pocas, por lo que no es necesario dedicar mucho tiempo.
Paso 6, Programación Web Java
El núcleo de la programación Web es el protocolo HTTP. El protocolo HTTP no tiene nada que ver con Java. Si no está familiarizado con el protocolo HTTP. También puedes aprender a programar Servlet/JSP, pero no puedes llegar al estado de sacar inferencias de una instancia y dejar todo claro.
Por tanto, aprender el protocolo HTTP es fundamental. Si está familiarizado con el protocolo HTTP, entonces tiene una buena base para la programación Java. Aprender Servlet/JSP es pan comido. Me tomó menos de una semana aprender Servlet/JSP y luego comencé a usar JSP. proyectos.
En el estudio de Servlet/JSP, lo más importante es el documento Servlet. Hay muy pocas clases más utilizadas en la API de Servlet y se dedica relativamente poco tiempo a dominarlas. Lea estas categorías una vez e intente escribir algunos ejemplos más. La esencia de la programación Servlet/JSP es llamar estas clases repetidamente entre el servidor web y el navegador a través del protocolo HTTP. Además de JSP, también debe estar familiarizado con varias etiquetas JSP de uso común. Si no recuerda el método de escritura específico, puede buscarlo temporalmente.
Además, aprender programación web Java debe centrarse en el patrón de diseño de la aplicación web, cómo analizar la lógica empresarial y diseñarla de manera razonable de acuerdo con los requisitos del patrón de diseño MVC, utilizando Servlet y JSP. completar diferentes capas lógicas y dominar cómo realizar el control de procesos y el intercambio de datos entre Servlet y JSP, y cómo se debe configurar e implementar la aplicación web.
El séptimo paso, programación J2EE
Si el proceso de aprendizaje anterior es relativamente sencillo, en este paso, la dificultad aumenta repentinamente. Debido a que el contenido de conocimiento anterior solo involucra un aspecto, y las especificaciones centrales de J2EE como EJB, JMS y JTA son a menudo el resultado de la aplicación integral de varias tecnologías Java, son difíciles de dominar.
En primer lugar, debes aprender bien JNDI. JNDI es el método de búsqueda de App Server para localizar recursos del servidor (componentes EJB, Datasouce, JMS). Si no estás familiarizado con JNDI, es casi imposible. para aprender EJB y JMS tengo que bajar. JNDI es en realidad el paquete javax.naming.*, que es muy sencillo de usar. JNDI es en realidad el paquete javax.naming.*, que es muy sencillo de usar. La dificultad radica en la configuración de los archivos de recursos del servidor. Para la configuración de los archivos de recursos del servidor, debe verificar las especificaciones de documentos especiales, como escritura web.xml, escritura ejb-jar.xml, etc. Para cada servidor de aplicaciones diferente, tiene su propio archivo de configuración de recursos de servicio, con el que también es necesario estar familiarizado.
Luego podrás aprender JTA, principalmente para entender cómo JTA controla las transacciones y en qué ocasiones se utiliza JTA. Aquí hay un ejemplo simple. Sabemos que generalmente podemos realizar el control de transacciones en una conexión de base de datos (conn.setAutoCommit (false),.... conn.commit()) como una operación atómica, pero supongamos que el requisito comercial es. operar dos bases de datos diferentes como una operación atómica, ¿puedes hacerlo? En este momento solo se puede utilizar JTA. Supongamos que el proceso de operación consiste en insertar primero un registro en la base de datos A y luego eliminar otro registro en la base de datos B. El código que escribimos no puede controlar toda la operación como una operación atómica. Con JTA, el control lo realiza el servidor de aplicaciones.
Antes de aprender EJB, primero debe aprender la serialización de objetos y RMI es la base de EJB. Luego aprenda JMS y EJB. Para EJB, lo más importante es comprender cómo EJB implementa llamadas a objetos remotos a través de RMI y en qué circunstancias se utiliza EJB.
Después de aprender EJB y JMS, es posible que se dé cuenta de que necesita aprender con urgencia dos aspectos del conocimiento, uno es UML y el otro es el patrón de diseño (Pattern). El diseño de software empresarial Java concede gran importancia al diseño del marco. Un buen marco de software es una condición necesaria para el desarrollo de software exitoso.
En este punto, debe comenzar a concentrarse en aprender marcos y patrones de diseño y dominar los patrones de diseño de EJB y los patrones centrales de J2EE a través del aprendizaje y la experiencia práctica en programación.
En la especificación J2EE, además de EJB, JMS, JTA, Servlet/JSP y JDBC, hay muchas, muchas tecnologías empresariales, por lo que no las presentaré una por una aquí.
Además, hay un nuevo campo, Servicios Web. Los servicios web no son algo nuevo en absoluto. Es como un pegamento que puede unificar diferentes servicios y proporcionar una interfaz de llamada unificada. Como usuario, solo necesito pedirle al proveedor de servicios que me proporcione WSDL (descripción del servicio). ¡No lo entiendo en absoluto! No necesito saber qué componentes .Net, ni qué componentes CORBA, ni otros métodos de implementación. El mayor uso de los servicios web es proporcionar e invocar servicios de forma unificada para lograr el disfrute de todo el servicio de Internet. Es un campo técnico muy apasionante. No parece haber ningún buen libro sobre servicios web todavía, pero puedes aprender sobre ellos buscando en línea.
Método de la ruta de aprendizaje de Java (4)
Como lenguaje de programación, la mejor manera de aprender Java es escribir código. Al aprender una clase, primero puede escribir un programa de muestra simple y ejecutarlo para ver los resultados, y luego llamar a varios métodos de esta clase para ver los resultados. De esta manera, puede aprender esta clase de manera intuitiva y recordarla profundamente. Entonces no deberías estar satisfecho con la transferencia del código. Deberías pensar en qué pasaría si no lo escribiera de esta manera, probar con otro método y luego intentarlo de nuevo. Recuerdo que un experto dijo que aprender a programar es un proceso de destrucción. Repase los ejemplos del libro y los ejemplos escritos en la documentación que estudió, y luego siga intentando utilizar diferentes métodos para lograrlo y siga intentando destruir el código. estructura. Vea lo que sucede. Al hacer esto, se volverá muy completo y competente en Java.
Por ejemplo, todos escribimos Hola Mundo
public class HolaMundo {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Muchos principiantes no entienden realmente por qué es necesario utilizar este método. El método define el método principal de public static void main (String [] args). Incluyéndome a mí, que acabo de aprender Java, también tengo esta pregunta. ¿Quieres saber la respuesta? De hecho, es muy simple cambiar el nombre de main, ejecutarlo, ver qué errores se informan y luego analizar de acuerdo con la información del error, eliminar el público de main e intentar ver qué errores se informan y ver; si todavía se puede ejecutar, no sé si el método principal debe pasar una matriz String[], cambiar String[] a int[] o cambiar String para intentarlo; de esta manera, cambie String[] a int[], o cambie String Change para probar. No sé si tengo que pasar una matriz String[], cambiar String[] a int[] o cambiar String para probar; No sé si no se puede escribir así, cambie String [] a int [] o Change String para intentarlo. Probémoslo con String; no sé si tengo que escribir el nombre del parámetro args. También puedes cambiar los argumentos a otros nombres y ver cuáles son los resultados.
Cuando aprendí Java por primera vez, hice esto. Modifiqué el programa Hello World siete u ocho veces, seguí ejecutándolo y analicé los resultados. Finalmente, entendí por qué el método principal estaba definido de esta manera.
Además, no sé mucho sobre estática, pública, privada, excepción, trycatch, etc. Lleva más tiempo hacerlo, pero después de destruir un programa de muestra muchas veces. He aprendido todo lo que hay que saber sobre este programa. A veces, incluso escribía algún código incorrecto y lo ejecutaba a propósito para ver si podía obtener el error de ejecución esperado. Este es un profundo dominio de la programación.
Especialmente el JDK tiene una excelente función de depuración -verbose
java -verbose
javac -verbose y muchas otras herramientas JDK tienen esta opción
p>
- detallado puede mostrar la ubicación de ejecución del comando. detallado muestra dónde la JVM cargó clases durante la ejecución del comando, lo cual es información de depuración muy valiosa que puede ayudarnos a analizar qué está haciendo la JVM durante la ejecución.
Además, durante el proceso de aprendizaje, escribí muchas rutinas destructivas. Debo clasificarlas conscientemente y guardarlas. Las rutinas típicas acumuladas en el trabajo también deben clasificarse con el tiempo. Será más capaz. Hay una base de código. Cuando encuentre problemas similares, simplemente copie y pegue, busque y reemplace en la base del código, lo que mejora enormemente la velocidad de desarrollo. La situación más ideal es abstraer algunas de sus rutinas comunes a otro nivel, formar una biblioteca de clases común y encapsularlas. Esto dará como resultado una mayor reutilización.
Así que no creo que las rutinas sean particularmente necesarias, y escribir tus propias rutinas destructivas es el mejor ejemplo. Si realmente no está seguro del código que está escribiendo, le recomiendo que eche un vistazo al código fuente de Java para la biblioteca de clases base JDK. Habrá un src.zip en el directorio de instalación de JDK. Después de la descompresión, podrá ver toda la biblioteca de clases base de JDK, que es el código fuente de Java de rt.jar. Puede consultar cómo Sun escribe programas Java y cuáles son sus especificaciones. son. de. Cuando estaba aprendiendo la biblioteca de clases de Java, cuando no entendía claramente algunas partes o cuando quería comprender los detalles de la operación con mayor claridad, a menudo abría el código fuente de la clase correspondiente mirando el código fuente. Podría entender todos los detalles. Los problemas desaparecerán.
Recursos de la ruta de aprendizaje de Java (5)
1. (inglés)
El sitio web de Java del Profesor Sun es un lugar que todos deberían visitar con frecuencia. Excusado es decir que.
2.
Sitio web de DeveloperWorks de IBM. Si está interesado en inglés, vaya directamente al sitio web principal en inglés. Este no es sólo un excelente sitio para análisis y diseño orientado a objetos, sino también un excelente sitio para servicios web, Java y Linux. ¡Muy recomendado!
3. (inglés)
Discusiones y noticias sobre muchas tecnologías Java nuevas. Si desea saber más sobre todos los aspectos de las aplicaciones Java, no busque más.
4.
El rincón del desarrollador de BEA. Como proveedor de servidores de aplicaciones más importante, BEA tiene muchas tecnologías únicas. Los amigos que desarrollan en Weblogic no deben perderse.
5.
El sitio web de Gray Fox Power es un sitio web de middleware profesional. Aunque no es un sitio web Java profesional, tiene profundos logros en la tecnología de aplicaciones empresariales J2EE.
6. (inglés)
TheServerSide es un conocido sitio web dedicado a aplicaciones del lado del servidor Java.
7.
La Java Research Organization tiene muchos artículos y tutoriales excelentes sobre Java, especialmente aquellos sobre JDO.
8.
El sitio de tecnología JSP tiene muchos artículos y recursos sobre Java.
9.
El foro Jdon es un foro técnico profesional J2EE chino. Entre los muchos foros Java chinos, Jdon es uno con muy alto contenido técnico y muy buena calidad de publicaciones.
10.
SourgeForge es un campo base para software de código abierto, y el software de código abierto Java que contiene también es muy rico.
Referencias:
Referencias:.