Soy un desarrollador de .Net que inicia el desarrollo de Java para Android y me gustaría saber si es correcto pensar en paquetes de Java como ensamblados .Net.¿Es un paquete de Java el equivalente de un ensamblado de .Net?
Respuesta
Nº
La mejor comparación sería con un archivo Java Archive (JAR). Java usa paquetes para controlar el espacio de nombres, y es muy similar a los espacios de nombres de C#.
Así es como me gustaría comparar los entornos
Java .Net
==== ====
Class Class
Package Namespace
Jar Assembly
No, creo que un paquete Java sería más similar a un espacio de nombres
y un montaje sería más como un frasco (no estoy tan seguro de esto, ya que estoy mucho más familiarizado con Java de .Net ... me corrija si me equivoco)
No es nada de nada, todo me impide la adición de clases para el espacio de nombres java.lang mediante la creación de un nuevo paquete . Una de las formas de romper excepciones comprobadas requería hacer exactamente eso (anulando Exception & RuntimeException en tiempo de compilación). – Joshua
+1 Su respuesta refleja el wiki http://en.wikipedia.org/wiki/Java_package –
@Joshua, agregando clases al paquete java.lang solo es posible si coloca la clase en su propio jar. También solo funcionaría para la clase agregada. Si estaba tratando de reemplazar la clase Exception, no estoy seguro de que sea posible porque el JRE carga eso por sí mismo, incluso si no se definió CLASSPATH. –
paquete de Java es como un espacio de nombres en .NET.
El equivalente a un ensamblaje en Java es el archivo jar.
Un paquete en Java generalmente significa solo espacios de nombres para clases e interfaces, lo que en realidad significa una estructura de directorio específica. A veces un archivo .jar también se conoce como un paquete. Esto es probablemente lo más cercano a un ensamblaje. Un archivo .jar también puede contener otros datos, como imágenes, o básicamente un tipo de archivo, ya que es solo un archivo comprimido de nuevo con alguna estructura de contenido específica.
En cualquier caso: generalmente cuando lee "paquete" en relación con "Java", se entiende algún tipo de espacios de nombres (a través de la estructura de carpetas, por ejemplo, com.mycompany.myproject). No ayuda el hecho de que algunas herramientas de compilación se refieran al proceso de compilación del archivo .jar como "empaquetado" ;-)
Tenga en cuenta que estoy lejos de ser un experto en Java, pero de todos modos, ahí va mi opinión en esto:
Como se señala en otras respuestas, un paquete no es el equivalente a un Ensamblaje. Sin embargo, no estoy totalmente de acuerdo con la idea de que un .jar sea equivalente a una Asamblea. Para mí, una clase Java (contenida en un archivo .class) está más cerca de un ensamblaje que un .jar. Digo esto porque mientras la unidad de carga para el CLR es el ensamblado (lo que significa que todas las clases contenidas en ese ensamblaje se cargan), la unidad de carga para el JVM es una clase (cuando el JVM necesita una clase, el ClassLoader no cargar todas las clases en el contenedor jar, simplemente carga esa clase específica necesaria).
Puede leer más acerca de la carga de clases de Java aquí: When does the JVM load classes?
- 1. ¿Tiene Clojure un paquete de importación de Java equivalente? *?
- 2. ¿Qué es .NET equivalente de InterruptedException (Java)?
- 3. ¿Cuál es el equivalente de Java de AggregateException de .net?
- 4. ¿Cuál es el equivalente .NET de NumberFormatException de Java?
- 5. Obteniendo la fecha de un ensamblado .NET
- 6. Comprobando si un archivo es un ensamblado .NET
- 7. ¿Comparar 2 versiones de un ensamblado .NET?
- 8. ¿Cuál es el equivalente .NET de StringBuffer en Java?
- 9. ¿cuál es el equivalente .NET de @Deprecated en java?
- 10. ¿Cuál es el equivalente de un applet de Java en .NET?
- 11. ¿Qué son los paquetes Java, .NET Assemblies y .NET Namespaces y es un paquete Java igual que un .NET Namespace?
- 12. ¿.NET tiene un equivalente a los archivos .properties de Java?
- 13. ¿Cuál es el equivalente Java de un objeto Scala?
- 14. ¿Hay un equivalente .NET de Java Web Start?
- 15. ¿Puedo poner un paquete de Java en otro paquete?
- 16. ¿Cómo incrustar un archivo de texto en un ensamblado .NET?
- 17. ¿Cuál es el equivalente a .NET SortedDictionary, en Java?
- 18. ¿Cuál es un buen paquete estadístico de matemáticas para .Net?
- 19. ¿Es posible desactivar la reflexión desde un ensamblado .NET?
- 20. ¿AppDomain es equivalente a un proceso para el código .NET?
- 21. ¿Es posible ejecutar un ensamblado .NET (dll) desde vbscript?
- 22. ¿Cómo saber si un ensamblado .NET es dinámico?
- 23. .Net equivalente al AssertionError de Java
- 24. ¿Cuál es el punto de la demora en la firma de un ensamblado .NET?
- 25. ¿Hay un equivalente de "gettimeofday" en .NET
- 26. Llamar al ensamblado de .NET desde Java: bloqueos de JVM
- 27. ¿Cómo registrar un ensamblado .NET como COM?
- 28. Java Equivalente a String.Format de .NET
- 29. Java equivalente a .NET System.InvalidOperationException
- 30. ¿Hay un equivalente de JMS en .NET?
Añadiré que una Asamblea en .Net tiene modificadores de acceso más sutiles que una jar en Java (al menos, así es como lo entiendo). Esta respuesta explica uno de esos detalles: http://stackoverflow.com/a/9808237/1168342 – Fuhrmanator