La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Qué libro tutorial de Java es el más adecuado para principiantes?

¿Qué libro tutorial de Java es el más adecuado para principiantes?

Competente en EJB3.0

Esta es la última versión

Para aprender un nuevo conocimiento, es imposible esperar leer solo uno o dos libros. ser completamente dominado. Se requiere un proceso de lectura paso a paso. Recomiendo la serie de libros Java publicada por Oreilly.

Solo quiero agregar algunas opiniones aquí. Mucha gente comienza a aprender Java con el libro "Pensar en Java", pero creo que este libro no es adecuado para principiantes. Creo que la forma correcta de utilizar este libro es como lectura complementaria. "Pensar en Java" no es una introducción completa a todo el sistema Java, sino un método de escritura de salto, un método similar a un consejo para realizar un análisis y explicación en profundidad de muchos puntos de conocimiento de Java.

Para principiantes, es mejor encontrar un libro de introducción a Java, que proporcione una introducción más completa y paso a paso a la sintaxis de Java, las características orientadas a objetos, las bibliotecas de clases principales, etc., mientras leyendo este libro Mientras lee el libro, puede leer "Pensar en Java" simultáneamente para profundizar su comprensión de Java y la aplicación de principios y, al mismo tiempo, puede tener una comprensión completa de todo el sistema Java.

Para libros de introducción a Java, Cai Xueyong recomienda "Exploring Java, 2nd Edition" o "Java in a Nutshell, 2nd Edition (para conocimientos de C)" de Oreilly. No he leído estos dos libros. . 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 el Java Serials de O'reilly, sino la documentación del JDK! Casi todo el conocimiento que desea obtener está disponible en Documentación. La parte más importante es, por supuesto, la documentación API de la biblioteca de clases básica de Java, que está organizada según cada clase y su relación de herencia. Se implementa una interfaz y en qué situaciones se utiliza habitualmente. También puede consultar todos sus atributos y métodos públicos, la explicación y significado de cada atributo, el propósito de cada método, los parámetros de la llamada y el significado del. parámetros. El tipo de valor de retorno, las excepciones que puede generar el método, etc. Se puede decir que todos los libros sobre programación Java en realidad solo utilizan un lenguaje relativamente fácil de entender y una buena organización para introducir el uso de algunas clases contenidas en un paquete en la Documentación. Por lo tanto, todo sigue igual. Si tiene la capacidad suficiente para aprender las bibliotecas de clases de Java directamente a través de la Documentación, básicamente no es necesario leer otros libros. Además, la Documentación también es un manual necesario para la programación. Hay tres accesos directos a la Documentación en mi escritorio, a saber, Documentación de J2SDK1.4.1, Documentación de Servlet2.3 y Documentación de J2SDKEE1.3.1. Con estos tres Documentos no se necesitan otros libros.

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, debe estar familiarizado con él. La biblioteca de clases de Java que implementa el protocolo HTTP. Esa es la API de Servlet, por lo que lo más importante es la API de Servlet.

Por supuesto, para los principiantes, es muy difícil aprender programación web directamente a través de Servlet API. 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 muy buen libro. El umbral de aprendizaje de EJB es relativamente alto y es difícil comenzar, pero este libro reduce por completo la dificultad de aprender. Un punto particularmente importante es que el aprendizaje de EJB debe combinarse con la implementación específica de un servidor de aplicaciones. Por lo tanto, mientras aprende EJB, también debe aprender un determinado servidor de aplicaciones al mismo tiempo. Weblogic6 .1, la implementación de los ejemplos del libro implementada en Websphere4.0 y JBoss3.0. Realmente tiene teoría y práctica. Mientras aprende EJB, puede verlo y hacerlo al mismo tiempo, y aprender EJB será muy fácil.

Pero este libro también tiene un problema, es decir, la versión es relativamente antigua y habla principalmente de las especificaciones 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 mejores. Libros 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 Weblogic 6.0, vale la pena comprarlo oficialmente. Libro de texto recomendado por BEA, el autor también es ingeniero en BEA. La versión china ya está disponible en todas partes. Este libro combina Weblogic para presentar el desarrollo y la implementación de varios aspectos de la tecnología J2EE en la plataforma Weblogic. Tiene una gran importancia como guía práctica.

Después de dominar los conocimientos básicos de la plataforma Java y J2EE, el siguiente paso es aprender a utilizar métodos OO para diseñar software, luego debe aprender "patrones de diseño". Sun ha publicado un libro llamado "J2EE Core Patterns", que es un libro imprescindible para todo arquitecto que desarrolle software de plataforma empresarial Java. Este libro presenta de manera integral varios patrones de diseño de 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. 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, solo puedo brindarles alguna referencia.

El primer paso para aprender Java es instalar JDK y escribir un Hola mundo. De hecho, aprender JDK no es tan simple. Hay dos problemas sobre JDK que fácilmente preocupan a los programadores de Java: uno es un problema de CLASSPATH. De hecho, en principio, se trata de descubrir cómo el ClassLoader de JRE carga la clase. Otro problema es el problema del paquete y la importación, cómo encontrar la ruta de la clase. Una vez que se aclaren estas dos cuestiones, se eliminará el mayor obstáculo para aprender Java y utilizar JDK. Se recomienda leer "Java Deep Adventure" de Wang Sen, que analiza en profundidad estos dos temas.

El segundo paso es aprender la sintaxis de Java. La sintaxis de Java es similar a C. Básicamente, los lenguajes de programación convencionales son similares a C o similares a C. No hay nada nuevo, por lo que medio día es suficiente para aprender la sintaxis.

Lo único que necesita atención es que hay varias palabras clave que no son fáciles de entender, como público, protegido, privado, estático, cuándo usarlas, por qué usarlas y cómo usarlas. Esto puede requerir que alguien lo haga. Darte un consejo. En ese momento estaba completamente solo. Me llevó mucho tiempo entenderlo. Pero luego vi el libro "Pensar en Java" que habla sobre estos conceptos.

El tercer paso es donde aprenderá las características del lenguaje de programación orientado a objetos de 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 me tomó aproximadamente un mes completarlo. Todos estos conceptos, reflexioné, revisé y probé repetidamente los ejemplos del libro. Leí el contenido de esos capítulos una y otra vez. Los leí no menos de 5 veces antes de comprenderlos completamente. Pero creo que si tienes experiencia C, uno o dos días deberían ser suficientes. Entonces, durante este proceso, puedes leer más sobre el libro "Pensar en Java", que explica muy detalladamente la orientación a objetos. Es una pena que no leí este libro cuando estaba estudiando, así que dediqué mucho tiempo a aprenderlo a través de mis propias pruebas y especulaciones.

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 estudio de estos cuatro paquetes, cada paquete se puede escribir en un libro de texto grueso, y O'reilly Y eso es exactamente lo que hizo. Siento que si hay poco tiempo, es imposible aprender leyendo cuatro libros. Creo que un mejor método de aprendizaje es el siguiente:

En primer lugar, lea todo el marco del paquete y comprenda la composición de las clases, interfaces y excepciones de todo el paquete. Es mejor encontrar artículos que lo presenten. todo el marco del paquete. Los primeros capítulos de estos libros dedicados a los paquetes deberían ser una introducción a los contenidos generales de este marco.

Comprender el marco general del paquete no significa estar familiarizado con el uso de cada clase y recordar qué atributos y métodos tiene. No puedo recordarlo aunque quisiera. Más bien, necesita saber de qué clases se compone el paquete, cuáles son los usos de estas clases y qué funciones completan las clases principales. Cuando entreno a personas, generalmente enseño un paquete a la vez, por lo que es imposible presentar el uso de cada clase en detalle, pero he enfatizado repetidamente que el propósito de contarles estos paquetes no es decirle cómo llamar al métodos de la clase. No requiere que recuerde las llamadas a los métodos de las clases, pero requiere que comprenda qué clases nos proporciona Java y cuándo se usa cada clase. Cuando encuentro un problema, sé qué clase. o donde una combinación de varias clases puede solucionar mi problema, ¡Eso es todo! , cuando escribimos un programa específicamente, es suficiente con que sepas qué clase usar para completar tu trabajo. Al codificar, la llamada al método específico es verificar la documentación mientras se escribe el código. No es necesario que lo recuerdes. De hecho, no puedes recordar el número total de más de 3000 clases. Son casi 10 Miles de llamadas a métodos. Por lo tanto, es extremadamente importante comprender el marco general de cada paquete.

El quinto paso es aprobar el estudio anterior. Si ha aprendido de manera más sólida, habrá sentado las bases de Java. El trabajo restante es borrar la documentación, excepto los 4 paquetes anteriores. otras clases útiles. Creo que en este punto de progreso, la capacidad de autoaprendizaje de Java se ha desarrollado y ha alcanzado el nivel de aprendizaje directo de Documentación. Además de la programación GUI, otros paquetes útiles en el JDK son:

java.text.*

java.net.*; .*;

En realidad, hay muy pocas clases que se utilizan en estos paquetes, solo unas pocas, por lo que no es necesario dedicar mucho tiempo.

El sexto paso, 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 bien la programación de Servlet/JSP, pero no puedes llegar al estado de hacer inferencias de una instancia y comprenderlo todo. Por lo tanto, es necesario aprender el protocolo HTTP. Si está familiarizado con el protocolo HTTP y tiene una buena base en programación Java, aprender Servlet/JSP es fácil. Me tomó menos de una semana aprender Servlet/JSP y luego comencé a usar JSP para hacer proyectos.

En el estudio de Servlet/JSP, lo más importante sigue siendo la documentación de Servlet. Hay muy pocas clases más utilizadas en la API de Servlet y puedes dominarlas en relativamente poco tiempo. Lea estas categorías e intente escribir algunos ejemplos más. La esencia de la programación Servlet/JSP es llamar repetidamente a estas clases para comunicarse entre el servidor web y el navegador a través del protocolo HTTP. Además, para JSP, 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, el aprendizaje de programación web Java debe centrarse en los patrones de diseño de aplicaciones web, cómo analizar la lógica empresarial y realizar un diseño razonable, y utilizar Servlet y JSP para completarlo de acuerdo con los requisitos. del patrón de diseño MVC diferentes capas lógicas, domine cómo controlar el proceso y compartir 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, la dificultad aumentará repentinamente en este paso. 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 relativamente difíciles de dominar.

En primer lugar, debes aprender bien JNDI. JNDI es el método para que App Server localice los recursos del servidor (componentes EJB, Datasouce, JMS). Si no estás familiarizado con JNDI, es casi imposible. Aprenda EJB y JMS. 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 consultar las especificaciones de documentos especiales, como cómo escribir web.xml, cómo escribir ejb-jar.xml, etc. Para cada servidor de aplicaciones diferente, también existe su propio archivo de configuración de recursos de servicio, con el que también debe estar familiarizado.

Luego podrás aprender JTA, principalmente para comprender cómo JTA controla las transacciones y cuándo usar JTA.

Aquí hay un ejemplo simple. Sabemos que, en general, una conexión de base de datos puede controlarse mediante transacciones (conn.setAutoCommit(false), ...., conn.commit()) como una operación atómica, pero supongamos que mi requisito comercial. es realizar operaciones en 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 de la base de datos B. No podemos controlar toda la operación como una operación atómica escribiendo nuestro propio código. Con JTA, el control lo completa el servidor de aplicaciones.

Antes de aprender EJB, debes aprender la serialización de objetos y RMI es la base de EJB. A continuación, 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 te des cuenta de que no puedes esperar para aprender conocimientos en dos áreas, una es UML y la otra es Design Pattern. El diseño del 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 momento, 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, que no se presentarán una por una aquí.

También hay un campo más reciente, Servicios Web. Los servicios web no tienen nada nuevo. Es como un pegamento que puede unificar diferentes servicios para proporcionar una interfaz de llamada unificada. Como usuario, solo necesito obtener el WSDL que me proporcionó el proveedor del servicio (para la descripción del servicio). ) es suficiente. No tengo idea de si el servicio proporcionado por el proveedor del servidor es un componente EJB, un componente .Net, un componente CORBA o alguna otra implementación, y no necesito saberlo. Lo mejor de los servicios web es que permite compartir todo el servicio de Internet a través de un método de prestación de servicios y un método de llamada unificados. Es un campo técnico muy interesante. Parece que todavía no existen buenos libros sobre servicios web, pero puedes aprender sobre ellos buscando información en Internet.

Métodos de la ruta de aprendizaje de Java (4)

Como lenguaje de programación, la mejor manera de aprender Java es escribir código. Después de aprender una clase, puede escribir un programa de ejemplo simple para ejecutarla y ver cuáles son los resultados, y luego llamar a algunos métodos de clase más para ver los resultados de la ejecución. De esta manera, puede aprender la clase de manera muy intuitiva. La memoria es muy profunda. Entonces no deberías conformarte con ajustar el código. Deberías pensar si funcionaría si no lo escribiera de esta manera, intentarlo de otra manera y volver a intentarlo. Recuerdo que un experto dijo que aprender a programar es un proceso de destrucción. Después de leer los ejemplos del libro y aprender a escribir documentación, trato constantemente de usar diferentes métodos para lograrlo y trato constantemente de destruir la estructura del código. Echa un vistazo. ¿Cuál será el resultado? De esta manera, dominarás Java a fondo y con fluidez.

Por ejemplo, todos tenemos programado Hello World

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello World");

}

}

Muchos principiantes no entienden muy bien por qué el método principal debe ser así esto Para definir public static void main(String[] args), ¿no podemos escribirlo así? Incluso cuando aprendí Java por primera vez, también tuve esas preguntas. ¿Quieres saber la respuesta? Es muy simple. Puede cambiar el nombre de main y ejecutarlo para ver qué errores se informan, y luego analizarlo según el mensaje de error; eliminar el público de main e intentarlo nuevamente para ver qué errores se informan; ¿Estático? No sé si main ¿El método tiene que pasar una matriz String[]? Cambie String[] a int[], o pruebe String. No sé si es necesario escribir el nombre del parámetro args. También puede cambiar los argumentos por otro nombre y ver cuáles son los resultados.

Esto es lo que hice cuando aprendí Java por primera vez. Cambié el programa Hello World siete u ocho veces, seguí ejecutándolo y analicé los resultados de la ejecución. Finalmente, entendí completamente por qué se definió el método principal. Por aquí.

Además, al principio no sabía mucho sobre estática, pública, privada, excepción, trycatch, etc. Simplemente ejecuté los ejemplos en el libro de referencia con éxito y luego comencé a destruirlos. , reescriba constantemente el programa según sus propias preguntas para ver si se puede ejecutar, cómo se ve cuando se ejecuta y si puede obtener los resultados esperados. Aunque esto requiere más tiempo, un programa de muestra se destruye repetidamente de esta manera varias veces. He aprendido a fondo este conocimiento relacionado. A veces incluso escribimos deliberadamente algún código incorrecto y lo ejecutamos para ver si podemos obtener el error de ejecución esperado. Este dominio de la programación es extremadamente profundo.

Vale la pena mencionar especialmente que JDK tiene una muy buena función de depuración, -verbose

java –verbose

javac –verbose y muchas otras herramientas JDK Todas tener esta opción

-verbose puede mostrar qué clase carga la JVM en secuencia durante la ejecución del comando. A través de esta valiosa información de depuración, puede ayudarnos a analizar qué hizo la JVM durante la ejecución.

Además, durante el proceso de aprendizaje, escribí muchas rutinas destructivas, que deberían guardarse conscientemente en categorías. Las rutinas típicas acumuladas en el trabajo también deberían clasificarse con el tiempo. poder Ahora tenemos una base de código. Si encuentra problemas similares, simplemente vaya a la base del código y copie y pegue, busque y reemplace, lo que mejora enormemente la velocidad de desarrollo. La situación más ideal es abstraer algunas rutinas comunes para formar una biblioteca de clases común y encapsularlas. Entonces la reutilización será más fuerte.

Así que no creo que las rutinas sean particularmente necesarias. Las rutinas de destrucción escritas por usted mismo son el mejor ejemplo. Si realmente está preocupado por el código que escribió, le recomiendo que eche un vistazo a JDK. Conceptos básicos del código fuente de Java para la biblioteca de clases. Habrá un src.zip en el directorio de instalación de JDK. Después de descomprimirlo, podrá ver completamente toda la biblioteca de clases básicas de JDK, que es el código fuente de Java de rt.jar. Puede consultar cómo Sun escribe programas y especificaciones de Java. ¿Cómo se ve?

Cuando estoy aprendiendo la biblioteca de clases de Java, cuando no entiendo algo con mucha claridad o cuando quiero comprender los detalles de la operación con mayor claridad, a menudo abro el código fuente de la clase correspondiente mirando el código fuente. , todos los problemas serán eliminados.

Ruta de aprendizaje de Java (5) Recursos

1. (inglés)

El sitio web de Java de Sun es un lugar que debe visitarse con frecuencia. Excusado es decir que.

2.

Sitio web de DeveloperWorks de IBM. Si domina el inglés, vaya directamente al sitio principal en inglés. Este no es solo un excelente sitio web de diseño y análisis orientado a objetos, sino también un excelente sitio web para servicios web, Java y Linux. ¡Muy recomendado! ! !

3. (inglés)

Discusiones y noticias sobre muchas tecnologías nuevas en Java. Si desea saber más sobre todos los aspectos de las aplicaciones Java, este es un lugar mejor.

4.

Foro de desarrolladores de BEA Como el fabricante de servidores de aplicaciones más importante, BEA tiene muchas tecnologías únicas. Los amigos que desarrollan en Weblogic no deberían perderse.

5.

El sitio web de Gray Fox Power es un sitio web de middleware profesional. Aunque no es un sitio web de Java profesional, tiene profundos logros en la tecnología de aplicaciones empresariales J2EE.

6. (inglés)

TheServerSide es un sitio web muy conocido específicamente para aplicaciones del lado del servidor Java.

7.

La Java Research Organization tiene muchos artículos y tutoriales excelentes sobre Java, especialmente sobre JDO.

8.

El sitio web de tecnología JSP tiene bastantes 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 contenido técnico muy alto y calidad de publicaciones muy alta. foro.

10.

SourgeForge es un campo base para software de código abierto, que también tiene una colección muy rica de software de código abierto Java famoso.

Materiales de referencia:

Materiales de referencia: