草庐IT

LONG_PTR

全部标签

java - 包装类 - 为什么整型文字对 Long 失败但对任何更小的东西都有效

我只是想了解自动装箱,除了一件事:Shorts=250;Longl=250;Longl的赋值失败。我预计,这是因为你不能加宽thenbox(即它试图将int值250加宽到long然后将其装箱这是它做不到的)。但是,对Shorts的赋值是有效的。是什么让这一切变得美好?我的假设是它仍在进行装箱和某种转换。但是,如果它知道250适合short,为什么它不知道250适合long? 最佳答案 通常,您不能在赋值(JLS§5.2AssignmentConversion)中应用多个(隐式)转换:Assignmentconversionoccur

Java:关于弧度、Math.cos、Math.sin、double和long的问题

我需要在我的java代码中实现harvesine距离。我在Javascript中找到了这个片段,我需要将它转换为java。如何在Java中将纬度和经度转换为弧度?Math.sin想要Java中的double。我是否应该以弧度为单位传递之前转换的值?Math.sin和Math.cos返回long。我应该将a声明为long并将其传递给Math.sqrt还是将其转换为double?谢谢dLat=(lat2-lat1).toRad();dLon=(lng2-lng1).toRad();a=Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(lat1.toRad

java - DataOutputStream: "encoded string too long"限制的目的

java.io.DataOutputStream.writeUTF(Stringstr)方法中有一个奇怪的限制,它将UTF-8编码字符串的大小限制为65535字节:if(utflen>65535)thrownewUTFDataFormatException("encodedstringtoolong:"+utflen+"bytes");这很奇怪,因为:在该方法的JavaDoc中没有关于此限制的任何信息这个限制可以通过复制和修改这个类的内部staticintwriteUTF(Stringstr,DataOutputout)方法来轻松解决在相反的方法java.io.DataInputStr

java - 代码对象 o = true ?新整数(0): new Long(1) returns Long with value 0. 为什么?

这个问题在这里已经有了答案:Javaconditionaloperator?:resulttype(5个答案)Whydoestheternaryoperatorunexpectedlycastintegers?(3个答案)关闭6年前。请考虑我们有以下代码:Objectobj=true?newInteger(0):newLong(1);System.out.println(obj.getClass()+"\nvalue="+obj);结果是:classjava.lang.Longvalue=0代替:classjava.lang.Integervalue=0有人能解释一下为什么我们在Jav

web-applications - Web 应用程序 : The death of long URL's?

如果您使用完整的、SEO友好的URL,例如http://example.com/talks/about/star-wars,那么您的URL可能会被提交的用户吃掉它给bit.ly和其他人。所以我的问题是,创建您自己的内部链接缩短器并忽略URL关键字的任何SEO好处以换取来自直接URL的SEO链接汁会更好吗?例如,这样的东西实际上接近匹配的缩短版本?http://example.com/dEhttp://bit.ly/clPeI1停止链接失效是否比URL关键字更有值(value)?如果是这样,我们是否应该考虑到这一点来开始设计我们的应用程序URL结构? 最佳答案

c++ - C/C++ 指针,ptr+1 = ptr +1 byte 还是 ptr+1*sizeof(pointer_type)?

有any_type*ptr=(any_type*)malloc(sizeof(any_type)*size);my_ptr=ptr+1;memcpy(dst,my_ptr,sizeof(any_type));my_ptr会指向ptr之后的1个字节,还是指向ptr之后的sizeof(any_type)字节?对齐选项如何影响答案?有符号/无符号类型是否不同? 最佳答案 指针运算是在指针的静态类型[*]的大小上进行的,所以它会有效地添加sizeof*ptr。成员的对齐方式将作为类型的对齐方式(对象末尾的填充)考虑到对象的大小。struct

c++ - auto_ptr 内容的三元运算符不起作用

我将auto_ptr初始化为NULL,稍后在游戏中我需要知道它是否为NULL以返回它或一个新拷贝。我试过了auto_ptrret=(mReqContext.get()!=0)?mReqContext:newRequestContext();还有其他几个类似的东西转换等等,但是g++试图调用auto_ptrs不存在的运算符?(三元运算符)而不是使用RequestContext*进行三元比较。即使我施放它也不起作用。有什么提示吗?编辑不相等的相等 最佳答案 我想情况类似于以下情况:#include#includeintmain(){st

c++ - 为什么int** ptr在访问ptr[i][j]时不指向与int arr[3][3]相同的地址?

我正在回答这个question但是当我测试下面的代码时我很困惑。#includeusingnamespacestd;intmain(){int**ptr;intarr[3][3];ptr=(int**)arr;for(inti=0;i但是我得到了这个输出:0x7fff5700279c=?00x7fff570027a0=?0x40x7fff570027a4=?0x80x7fff570027a8=?00x7fff570027ac=?0x40x7fff570027b0=?0x80x7fff570027b4=?00x7fff570027b8=?0x40x7fff570027bc=?0x8为什么

c++ - shared_ptr 与指针共存

我有一个函数如下voida(shared_ptrval){...}有时候,我想传入一个堆分配的对象shared_ptrv(newX());a(v);其他时候,我想传入一个堆栈分配的对象classC{//doesn'tworkproperlyb/cwhentheshared_ptrdiesitwilltrytodeletex...C(){a(shared_ptr(&x));}Xx;};让函数接受智能指针,同时让智能指针引用堆栈分配对象的最佳方法是什么?或者我应该走Java路线并从堆中分配所有内容? 最佳答案 我只想让函数采用这样的模板

c++ - 在 boost::ptr_unordered_map 中存储指向 const 对象的指针

我似乎做不到boost::ptr_unordered_map工作-底层实现看起来像是将东西转换为void*.我是否只需要硬着头皮让我的方法包装对此的访问做一个const_cast插入项目时,或者我在这里遗漏了什么?有什么方法可以存储指向const对象的指针(constFoo*)? 最佳答案 看起来这是不可能的。解决方法是包装对ptr_unordered_map的访问.插入方法应该采用constauto_ptr然后执行const_cast插入它。如果您在删除元素时将auto_type交还给客户端代码,则需要从中解压指针并将其传输到co