Tag: c#

Java是否区分值类型和引用类型

C#区分了这两者。 java是做同样的还是不同的?

Java中的UTF-16编码与C#

我试图读取UTF-16编码方案中的字符串并对其执行MD5哈希。 但奇怪的是,当我尝试这样做时,Java和C#会返回不同的结果。 以下是Java中的一段代码: public static void main(String[] args) { String str = “preparar mantecado con coca cola”; try { MessageDigest digest = MessageDigest.getInstance(“MD5”); digest.update(str.getBytes(“UTF-16”)); byte[] hash = digest.digest(); String output = “”; for(byte b: hash){ output += Integer.toString( ( b & 0xff ) + 0x100, 16).substring( 1 ); } System.out.println(output); } catch (Exception e) { […]

类与接口

我有一个非常基本的问题: 我们什么时候应该决定为特定类使用Interface还是Class? 例如:说我们有2个class,客户和博士。 在inheritance(类)中:我们可以将这两个类设置为从父类Personinheritance。 我们不能对Interface做同样的事情吗? 说我们有InterfacePerson并且Customer和Doctor都实现了接口吗? 因此,这导致:我们何时决定使用一个而不是另一个,反之亦然?

解析和翻译Java 8 lambda表达式

在C#中,您可以将lambda表达式包含在表达式树对象中,然后可能会对其进行解析 。 我想知道这是否也可以用Java? 我正在寻找的是做这样的事情: BooksRepository.getAll() .where(b -> b.getIban() == “SomeIban”) .and(b -> b.getAuthor() == “SomeAuthor”); //etc. 然后BooksRepository应该以某种方式将该查询转换为基于指定为lambdas的谓词的以下RESTful API请求: GET http://mylibrary.com/books?Iban=SomeIban&Author=SomeAuthor 然后将结果返回给客户端。 如果在Java中甚至可以实现这一点?

如何使用ZXing C#端口

注意: 我最初的问题是关于ZXing C#端口是否可靠,但在这里,我试图弄清楚如何使用它。 因此,它们不是重复的。 我正在尝试使用ZXing C#模块,但我遇到了麻烦。 之前使用过ZXing的人是否知道如何正确使用? 不幸的是,C#文档非常小。 我目前的代码是: using com.google.zxing; using com.google.zxing.client.j2se; using com.google.zxing.common; //… Reader reader = new MultiFormatReader(); MonochromeBitmapSource image = new BufferedImageMonochromeBitmapSource(new Bitmap(Image.FromFile(“barcode.jpg”)),false); Result result = reader.decode(image); string text = result.getText(); sbyte[] rawbytes = result.getRawBytes(); BarcodeFormat format = result.getBarcodeFormat(); ResultPoint[] points = result.getResultPoints(); Console.WriteLine(“barcode text: {0}”, text); Console.WriteLine(“raw bytes: {0}”, rawbytes); […]

像C#/ Java这样的高级语言掩盖位移计数操作数的原因是什么?

这更多的是语言设计而不是编程问题。 以下是JLS 15.19移位运算符的摘录: 如果左侧操作数的提升类型是int ,则只使用右侧操作数的五个最低位作为移位距离。 如果左侧操作数的提升类型很long ,则只使用右侧操作数的六个最低位作为移位距离。 这种行为也在C#中指定 ,虽然我不确定它是否在Javascript的官方规范中(如果有的话),但至少基于我自己的测试也是如此。 结果是以下情况属实: (1 << 32) == 1 据我所知,这个规范很可能受到以下事实的启发:当移位32位值时(6位为64位),底层硬件仅占用计数操作数的5位,我可以理解在例如,JVM级别,但为什么高级语言(如C#和Java)会保留这种相当低级别的行为? 它们不应该提供超出硬件实现的更抽象的视图,并且行为更直观吗? (如果他们可以采取负数来表示向其他方向转移,那就更好了!)

Java相当于C#的Rfc2898DerivedBytes

我想知道是否有人试图做相同的 Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(secret, saltValueBytes); byte[] secretKey = key.GetBytes(16); 在Java中。 其中secret是字符串(密码),而saltValueBytes是字节数组中的salt。 我尝试了一些东西,但似乎无法绕过它。

跨语言(java和c#)对象序列化的策略

我正在开发一个项目,我需要在java 6应用程序中序列化一些数据并将其反序列化为ac#2.0 app。 有没有一种策略或已经存在的东西,我可以看一下这会让我用这两种语言做到这一点? 我猜它们都支持XML序列化,但我真的需要它进行二进制序列化。

将C#RSACryptoServiceProvider转换为JAVA代码

我得到了由Web服务团队编写的这个C#代码,它公开了我计划使用的一些Web服务。 我的密码需要使用此代码加密,以便Web服务知道如何在其末端解密它。 using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { rsa.FromXmlString(publicKey); byte[] plainBytes = Encoding.Unicode.GetBytes(clearText); byte[] encryptedBytes = rsa.Encrypt(plainBytes, false); return Convert.ToBase64String(encryptedBytes); } 我正在使用Java来使用这个Web服务,而且现在,我在将#C代码转换为Java代码时遇到了问题,因为该Web服务无法正确解密我的密码。 这是我目前失败的尝试: – // my clear text password String clearTextPassword = “XXXXX”; // these values are provided by the web service team String modulusString = “…”; String publicExponentString = “…”; BigInteger modulus = new […]

在Java中加密和在C#中解密为AES 256位

1.我有java函数加密xml文件并返回加密的String。 /// Java Class import java.security.Key; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; public class Crypt { public static String key = “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”; public static byte[] key_Array = Base64.decodeBase64(key); public static String encrypt(String strToEncrypt) { try { //Cipher _Cipher = Cipher.getInstance(“AES”); //Cipher _Cipher = Cipher.getInstance(“AES/ECB/PKCS5PADDING”); //Cipher _Cipher = Cipher.getInstance(“AES/CBC/PKCS5PADDING”); Key SecretKey = new SecretKeySpec(key_Array, “AES”); Cipher […]