unsafe相关内容
在Java中,有没有办法获取参考地址,比如说 String s =“hello” 我可以获取s本身的地址吗?同样,我可以获取引用引用的对象的地址吗? / p> 解决方案 您可以使用Unsafe获取对象索引。根据JVM如何使用内存(32位地址,32位索引,带偏移量的32位索引,64位地址)可能会影响对象索引的有效性。 这是一个假定您在64位JVM中具有32位
..
我知道Java没有指针,但我听说Java程序可以用指针创建,这可以由少数java专家完成。它是真的吗? 解决方案 Java中的所有对象都是引用,您可以像指针一样使用它们。 抽象类动物 {... } 类Lion扩展Animal { ... } 类Tiger扩展Animal { public Tiger(){...} public void growl()
..
前几天我遇到了sun.misc.Unsafe包,并对它能做什么感到惊讶。 当然,该课程没有证件,但我我想知道是否有充分的理由使用它。您可能需要使用哪些场景?如何在现实场景中使用它? 此外,如果你做需要它,那是不是表明某些东西可能是你的设计有问题吗? 为什么Java甚至包括这个类? 解决方案 示例 VM“内在化”。即无锁散列表中使用的CAS(比较和交换) 例如:su
..
我有一个方法需要尽可能快,它使用不安全的内存指针,这是我第一次尝试这种类型的编码,所以我知道它可能更快。 /// ///将bitmapdata从一个位图复制到输出位图数据上指定点的另一个位图 /// /// sourcebitmap必须小于destbitmap
..
我正在开发针对Android和iOS平台的跨平台应用程序。我使用的是jQuery 1.9.1,Jquery Mobile 1.3.1和Phonegap 2.8.0。 我想发送一个ajax请求并设置请求标题“Connection”和“Keep-Alive”。在操作系统大于4.1的Android手机上(默认浏览器是Chrome),我收到一条错误,上面写着“拒绝设置不安全的标题”连接“”。
..
将 [] byte 转换为 string 的首选方式是: var b [] byte // fill b s:= string(b) 在这段代码中,字节片被复制,这在性能很重要的情况下可能是一个问题。 当性能很关键时,可以考虑执行不安全的转换: var b [] byte // fill b s:= *(* string)(unsafe.P
..
根据C#参考 a> for fixed 语句: $ b fixed语句防止垃圾收集器重新定位一个 的可移动变量。 ... 在语句中的代码被执行后,任何固定的变量都是 unpinned并且可以进行垃圾回收。因此,请不要将 指向固定语句之外的那些变量。 我的问题是,我没有找到在这个页面上,如果我们为同一个变量嵌套 fixed 语句,会是什么? var data
..
有一个用于C#的FastBitmap类,它允许您访问和修改位图的像素信息。我已经在一些C#项目中使用它,但现在我需要在VB.NET中。 问题是该类使用不安全的代码,这在VB.NET中不受支持。 问题是。我可以在dll中编译FastBitmap类并在VB.NET中使用它吗?还有一些库可以用来修改VB.NET中的像素数据吗? $ b class =“h2_lin”>解决方案 是的,你可
..
查看以下代码: static void Main(string [] args) { string s = null; string [] myArray = new string [1]; {} // do something evil here if(s.GetType()== typeof(int)) { Console.WriteLine (“这不应该发
..
在Java 8中,三个内存屏障说明添加到不安全类( source ): / ** *确保在栅栏之前没有重新装入货物 *与篱笆后的负载或存储。 * / void loadFence(); / ** *确保在篱笆之前没有重新安排商店重新安排 *装载或存储后的围栏。 * / void storeFence(); / ** *确保在篱笆之前没有对货物
..
你应该在C#代码中使用指针吗?有什么好处? 解决方案 从“The Man”自己: 在C#中很少需要使用指针,但在某些情况下需要使用它们。例如,使用不安全的上下文来允许指针是由以下情况所保证的: 处理磁盘上的现有结构 高级COM或平台调用涉及具有指针的结构的场景 性能关键代码 不鼓励在其他情况下使用不安全的上下文。 具体来说,不应使用不安全的上下文尝试在C#中编写
..
我刚刚在C#中做了一个Swap例程,如下: static void Swap(ref int x,ref int y) { int temp = x; x = y; y = temp; } 它与C ++代码所做的事情相同: void swap(int * d1,int * d2) { int temp = * d1; * d1 = * d
..
我有一个关于静态源代码分析的大项目,一切都编译成功,除了一件事。我在标题中提供了错误消息。让我困惑的一点是,它给出一个错误消息说不安全。我认为应该只是警告,而不是错误。顺便说一下,我使用Visual Studio 2012.这里是代码的部分,我得到的错误,在Ctime。如果有人可以帮助我克服这个错误,我会很高兴。 void CppCheckExecutor :: reportProgres
..
有一个FastBitmap类为C#,让你访问和修改的位图的像素信息。我已经在一些C#项目中使用它,但我现在需要它在VB.NET。 问题是,该类使用不安全的代码,这是VB.NET不支持。 问题是。我可以编译一个dll中的FastBitmap类,并在VB.NET中使用它吗? [EDIT] 或者是否有一些库可以用来修改VB.NET中的像素数据? 如果类不暴露任何不安全的 / em>
..
请问.NET Micro Framework的支持不安全的代码?换句话说,我可以使用指针在我的.NET Micro Framework的代码? 解决方案 在维基百科页面(重点煤矿): 例如,平台不 支持对称多处理, 多维数组, 依赖于机器的类型,或不安全 说明 的 的技术白皮书其列在省略的功能了。
..
我想知道如果C#项目设置“允许不安全的代码”只适用于不安全的C#代码项目本身,还是有必要设置一个本地C ++ DLL链接时,这个选项?怎么样在自身链接到本机DLL托管DLL链接?这是什么选项真的这么做了,引擎盖下? 解决方案 它与C#中的“不安全”的关键字做。 “不安全”关闭所有,通常会发生,使您可以直接访问内存中的检查。它并不是指调用本地C ++ DLL的或接口。
..
我的代码如下: MyClass类 { 静态INT iField = 42; 静态无效测试(REF INT ARG) { 不安全 { 固定(无效* pField =安培; iField) 固定(void *的PARG =安培; ARG) { Console.WriteLine(“{0},{1}”(INT)PARG,(INT)pField); //输出:165451772,16
..
我需要连续超过20000项申报在C#中的WinForms方阵。 我读到的32位2GB .NET对象大小限制以及在64位操作系统同样如此。 以便我明白了一个简单的答案 - 是使用不安全的代码或单独的库建withing C ++编译器 对于我的问题是值得,因为USHORT [20000, 20000]越小则2GB,但实际上,我不能连分配的内存700MB。我的极限是650MB的,我不明白为什么
..
我碰到下面的代码来到MSDN: 不安全静态无效SquarePtrParam为(int * P) { * p * = * p; } 不安全的静态无效的主要() { 点PT =新点(); pt.x = 5; pt.y = 6; //销PT到位:固定的 为(int * p =&安培; pt.x) { SquarePtrParam(P); } // PT现在取消
..
我试图编译在新DNX4.6核心程序,但它不会编译由于: 错误CS0227:不安全的代码只能出现如果与/不安全 编译 这是我的代码: [编译器生成] 公众安全的类GrayscaleQuantizer:PaletteQuantizer { 我已经在网上看了,我不能用同样的问题得到任何来源,因为我有。我不能勾选“允许不安全代码”在项目属性的Build选项卡,因为没有选
..