Énumérez quelques-unes des différences que j'ai apprises
Java est InputStream (java.io.InputStream) et OutputStream (java.io.OutputStream http://docs.oracle.com/javase/jp/6/api/org/omg/CORBA/portable/OutputStream.html)) Il est divisé en deux parties, entrée et sortie.
En revanche, dans le .NET Framework, il s'appelle Stream (System.IO.Stream). Comme vous pouvez le voir, l'entrée et la sortie sont unifiées.
Mais,
// Exemple de code C # DeflateStream compressionStream = ne w DeflateStream(compressedFileStream, CompressionMode.Compress));
Si vous le faites, le système de sortie (écriture) est bon, mais si vous essayez d'entrer (lire), une erreur se produira, donc cela fera mal si vous pensez que vous pouvez toujours entrer et sortir.
java est "-1" .NET Framework vaut "0". (Seule la méthode readByte () vaut "-1")
La méthode CopyTo (distStream) de .NET Framework 4 ou version ultérieure est pratique
En Java, il existe des classes du concept de flux de filtre (java.io.FilterInputStream et java.io. FilterOutputStream), alors faites-le en héritant
Il n'y a rien de tel dans le .NET Framework, il est créé en héritant de Stream
Java est java.io.ByteArrayInputStream et [java.io.ByteArrayOutputStream](http: // docs .oracle.com / javase / jp / 6 / api / java / io / ByteArrayOutputStream.html)
.NET Framework est System.IO.MemoryStream
Les deux Java / .NET Framework sont difficiles à utiliser dans les situations où les données sont générées en temps réel → read () se termine.
Java est java.io.PipedInputStream et [java.io.PipedOutputStream](http: // docs) .oracle.com / javase / jp / 6 / api / java / io / PipedOutputStream.html)
.NET Framework ne connaît pas de telles classes Qu'il suffise de dire, la classe de canal anonyme (System.IO.Pipes.AnonymousPipeClientStream. aspx) et System.IO.Pipes.AnonymousPipeServerStream)
Java c'est bien
Traités de manière unifiée
Classe de base
System.Security.Cryptography.ICryptoTransform Attribué à la classe ci-dessus en tant qu'interface
HMAC est sous HashAlgorithm
Il y a.
Ni Java / .NET Framework n'avait de fonction pour compresser en temps réel, mais à partir de Java 7, [java.util.zip.Deflater # SYNC_FLUSH](http://docs.oracle.com/javase/jp/8/docs/api/ java / util / zip / Deflater.html) a été ajouté pour activer la compression zlib en temps réel.
Pour le .NET Framework, je pense que vous pouvez utiliser zlib.NET.dll. Comment effectuer une compression synchrone (en temps réel) avec C # /. NET Framework
SSL
Java a hérité de java.net.Socket javax.net.ssl.SSLSocket //docs.oracle.com/javase/jp/6/api/javax/net/ssl/SSLSocket.html)
.NET Framework hérite de System.IO.Stream System.Net .Security.SslStream
Le .NET Framework hérite de Stream, tandis que Java se branche dans InputStream / OutputStream!? Socket hérite
Java est polyvalent
--Suites de protocole / chiffrement prises en charge en tant que JavaVM
Contrôle de protocole .NET Framework uniquement!?
Reader/Writer
Les deux Java / .NET Framework sont unifiés avec le code de caractère interne UTF16
Java est essentiellement préparé pour chaque implémentation AudioFileReader, FileReader, FilterReader, InputStreamReader, LineNumberReader, PipedReader, PushbackReader, Reader, XMLStreamReader .... trop nombreux
Le .NET Framework comprend System.IO.StreamReader et System.IO. StreamWriter
System.IO.StreamReader.ReadToEnd () est pratique.
Près de ReadAll () pour les opérations sur les fichiers dans VisualBASIC6.0 (Scripting.FileSystemObject). Très pratique.
Dans les deux .NET Framework / Java, la multidiffusion est implémentée en tant que UDP
Java hérite de java.net.DatagramSocket qui est la substance d'UDP [java.net.MulticastSocket] ](Http://docs.oracle.com/javase/jp/6/api/java/net/MulticastSocket.html)
Le .NET Framework est l'entité d'UDP [System.Net.Sockets.UdpClient](https://msdn.microsoft.com/ja-jp/library/system.net.sockets.udpclient (v = vs.110). aspx) lui-même
En Java, c'est javax.sound.sampled.AudioInputStream qui hérite de Stream, l'enregistrement est donc facile. ça peut.
La sortie (lecture du son sur le haut-parleur) n'est pas Stream, mais vous pouvez facilement créer un wrapper qui hérite de Stream.
Le .NET Framework n'a pas d'autre choix que d'utiliser Managed DirectX (MDX) ou SlimDX du tiers, mais le codage peut être assez difficile.
Web(HttpClient)
Java a hérité de java.net.URLConnection [java.net.HttpURLConnection](http: / /docs.oracle.com/javase/jp/6/api/java/net/HttpURLConnection.html) "http uniquement" et ses enfants javax.net.ssl.HttpsURLConnection /javase/jp/6/api/javax/net/ssl/HttpsURLConnection.html) "Pour https"
.NET Framework hérite de System.Net.WebRequest System.Net .HttpWebRequest "Utilisation combinée http / https"
Android a la classe org.apache.http.client.HttpClient
Java est basique comme int, long (seulement nécessaire et suffisant)
.NET Framework est divers comme Int32, UInt32 ,,,
Java est compris entre -128 et 127 (soyez prudent lors de la conversion vers et depuis JRuby / Jython)
.NET Framework 0-255
Personnellement, je ne comprends pas la signification des nombres négatifs en octet
Java peut mettre des méthodes statiques dans des objets instanciés → peut être appelé avec ceci
.NET Framework ne peut pas être appelé avec ceci
Java appelle la classe elle-même java.lang.Thread class (java.lang.Runnable //docs.oracle.com/javase/jp/6/api/java/lang/Runnable.html) Hériter et implémenter l'interface) → Les threads peuvent être considérés comme des unités de classe
Le .NET Framework enregistre les méthodes dans System.Threading.Thread → On peut dire que le fil est une unité de méthode
Le verrou Java est "synchronisé"
Divers verrous .NET Framework (avec l'évolution de Windows ...)
Base64
Java.util.Base64 à partir de JDK8
.NET Framework Base64 dans de nombreux endroits
Encodage URL Java (java.net.URLEncoder et [java.net.URLDecoder](http: //docs.oracle.com/javase/jp/6/api/java/net/URLDecoder.html)) est une chaîne de caractères → Ne peut pas être utilisé
La comparaison de chaînes Java est la méthode equals ()
Vous ne pouvez pas basculer () avec une chaîne en Java. → Résolu avec Java 8!?
Comment effectuer une compression synchrone (en temps réel) avec C # /. NET Framework
Java est la [méthode javax.xml.parsers.DocumentBuilder # setEntityResolver ()](https://docs.oracle.com/javase/jp/6/api/javax/xml/parsers/DocumentBuilder.html#setEntityResolver (org.xml) .sax.EntityResolver)))
.NET Framework est Propriété System.Xml.XmlDocument # XmlResolver
Non seulement la différence entre la méthode et la propriété ci-dessus, mais également le comportement lorsque NULL est spécifié.
Java adopte l'objet par défaut (c'est-à-dire le même que l'analyse XML sans appeler de méthode).
Le .NET Framework est un objet NULL (c'est-à-dire pas de xréfs / pas de xréfs).
L'objet qui spécifie le résolveur de la xréf ci-dessus est
Pour Java, interface org.xml.sax.EntityResolver
Pour .NET Framework, Classe abstraite System.Xml.XmlResolver
Évidemment, la seule chose qui doit être implémentée dans l'objet qui spécifie le résolveur de xréf ci-dessus est ** "une méthode qui renvoie le contenu de l'URI qui pointe vers la xréf" **.
Pour Java, [méthode org.xml.sax.InputSource.InputSource resolutionEntity (String publicId, String systemId)](https://docs.oracle.com/javase/jp/6/api/org/xml/sax/EntityResolver .html # resolutionEntity (java.lang.String,% 20java.lang.String))
Le deuxième argument est un type String, mais un URI indiquant une référence externe vient et [classe org.xml.sax.InputSource.InputSource](https://docs.oracle.com/javase/jp/6/api/org/xml /sax/InputSource.html) est renvoyé.
Pour .NET Framework, [méthode objet GetEntity (Uri absoluUri, rôle de chaîne, Type ofObjectToReturn)](https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.xmlresolver.getentity?view= netframework-4.7.2 # System_Xml_XmlResolver_GetEntity_System_Uri_System_String_System_Type_) uniquement.
Le premier argument est l'URI indiquant la référence externe dans la classe System.Uri. , Classe System.IO.Stream vient d'être renvoyée.
Il existe un troisième argument qui indique le type / la classe que vous souhaitez renvoyer, mais la réalité est [Classe System.IO.Stream](https://docs.microsoft.com/ja-jp/dotnet/api/system.io.stream? Il semble que seul view = netframework-4.7.2) est donné, donc après tout [classe System.IO.Stream](https://docs.microsoft.com/ja-jp/dotnet/api/system.io.stream?view? Il suffit de retourner = netframework-4.7.2).
Pour le .NET FrameWork ci-dessus, utilisez la classe System.IO.Stream C'est chouette car il revient juste, mais pour Java, la classe org.xml.sax.InputSource.InputSource Qu'est-ce que /InputSource.html)? classe java.io.InputStream et [classe java.io.Reader](https: // docs .oracle.com / javase / jp / 6 / api / java / io / Reader.html) (et le code de caractère) peut être exprimé sous forme de résumé.
Pour Java, il y a généralement quelque chose dans Apache-Commons
.NET Framework ... je ne sais pas
Classless.Hasher était pratique
Rei no Hut C # Random Library était pratique
The Legion of the Bouncy Castle peut être une bibliothèque cryptographique standard pour Java / .NET Framework
Recommended Posts