V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  amiwrong123  ›  全部回复第 36 页 / 共 37 页
回复总数  726
1 ... 28  29  30  31  32  33  34  35  36  37  
2019-08-14 14:10:33 +08:00
回复了 amiwrong123 创建的主题 程序员 protobuf 在通过 hidl 接口传输时,是不是应该用 string 啊
@Monad
谢谢,现在感觉应该是 String buf = new String(information.info.toByteArray(data));有问题,因为这句对字符串编码时用的是 UTF-8,这是一个字符对应两个字节的,而我应该用"ISO-8859-1"编码方法,这是一个字符对应一个字节的。
2019-08-13 19:55:34 +08:00
回复了 amiwrong123 创建的主题 程序员 protobuf 在通过 hidl 接口传输时,是不是应该用 string 啊
mk 文件里面,这个 LOCAL_PROTOC_OPTIMIZE_TYPE := nano 是没有注释掉的,忘改了。
2019-08-13 19:35:23 +08:00
回复了 amiwrong123 创建的主题 程序员 protobuf 在通过 hidl 接口传输时,是不是应该用 string 啊
自己顶一下,话说我这帖子是不是应该发在安卓区…
2019-07-28 13:26:32 +08:00
回复了 amiwrong123 创建的主题 程序员 进公司几个月了,但对未来技术方向很担忧
@jadec0der
嗯,也只有这样了。不过想趁现在还早,想想自己的未来方向,或者说是,根据未来想去的岗位,学习相对应的技术,但不能 c++,java 都学,技术是学不完的,需要在有限的时间到达岗位的需求。
2019-07-28 13:20:11 +08:00
回复了 amiwrong123 创建的主题 程序员 进公司几个月了,但对未来技术方向很担忧
@congeec
现在是,基本要用到什么技术都给你规定好了。当然用到的技术我自然会去好好专研,但其他的就得自学了。
2019-07-28 13:14:46 +08:00
回复了 amiwrong123 创建的主题 程序员 进公司几个月了,但对未来技术方向很担忧
@CEBBCAT
嗯,你说的确实是我所想的。也怪自己当初校招,现在进了类似外包的公司。
2019-07-28 12:52:45 +08:00
回复了 amiwrong123 创建的主题 程序员 进公司几个月了,但对未来技术方向很担忧
@mcfog
工作任务来了,你是必须得完成,我也基本能完成。但这些任务很可能都是大同小异的,以后整个人就固化了。

看书是因为周末不方便研究项目里代码的问题,最近看的程序员的自我修养,主要公司是在 linux 在开发的,了解点编译过程的原理应该有用。

其实有没有大佬倒是无所谓,我也能从周围同事学到东西,只是怕以后的自己满足于现状而再也没有跳槽的能力。工作内容也确实不怎么符合当前市场上的招聘内容。

而且怎么说呢,以后感觉简历都不好写。。。
2019-07-28 12:01:47 +08:00
回复了 amiwrong123 创建的主题 程序员 进公司几个月了,但对未来技术方向很担忧
@q8164305
关键以后想跳槽,但很迷茫自己的方向啊…也不会用到什么框架
@palmers
谢谢回答,现在都解决了。

@helloSpringBoot
虽然只能用 Object 引用来指向这个实例,但是有了这个实例我发现就可以做一些“坏事”了,比如获得私有成员。
@bringyou
好吧,现在成功了。谢谢回答啦。
Constructor<?> con = clazz.getDeclaredConstructor(outer.class);
con.setAccessible(true);
Object obj = con.newInstance(ooo);
但这种情况下,我是不是只能用 Object 引用来指向这个实例,因为没法 import 私有内部类,所以也无法用私有内部类类型来声明变量了?
@shily
好吧,原来是我 getDeclaredConstructor 用的不对,谢谢回答啦。
但是,现在就报错:
com.prac.outer$normalInner
Exception in thread "main" java.lang.IllegalAccessException: class test2 cannot access a member of class com.prac.outer$normalInner with modifiers "private"
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:376)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:639)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:490)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at test2.main(test2.java:39)
所以不管是静态内部类还是非静态内部类,只要访问权限是私有,就不可以创建实例了吗
@14m3
哇,你这个链接是个神器,回头好好研究下。确实,这个代码怎么优化的跟环境有关系啊。你这个代码而且写得很清楚,加了构造和析构的打印后,思路瞬间清晰了。
@karia
这本书买了,还没看。的确很多问题别人已经研究过了,所以一般有问题我都是先看网上博客啥的

@lrxiao
你说,写个 destructor 然后看调用次数,这个挺好使啊。我在 32 楼给的链接里看到了调用析构的次数了。
你意思这两段代码都是已经被优化了的呗
@lcdtyph
好吧,懂啦,看来这个编译器选项也挺重要啊。

@ispinfx
我就正在 primer 呢,但看得断断续续,我是因为看到书中某页的一句话“返回的是 sum 的副本”,但没细说,然后就开始想这个问题。
@nethard
也不是喜欢这么写,只是在测试想把各种情况测试一遍,带不带 const,带不带&,这样


@ispinfx
开始这个用法对不对还真拿不准,然后就很疑惑。不过看了 17 楼的文档里写了这种用法。
@lcdtyph
看到啦,在 Temporary object lifetime 的 There are two exceptions from that:,我这个属于 const lvalue reference。

你说的-fno-elide-constructors,这又是我的知识盲区了。。。看了看博客,意思就是会省略一些中间变量的创建,因为两次拷贝和一次拷贝效果是一样的。但为啥你说,我第一种代码里一定会分配两次内存,不是默认是会优化的吗? vs2017 里面好像没有这个选项。。

guaranteed copy elision,又是一个知识点,我拿小本本记上。
@zjsxwc
你们都说,内存会被释放掉。那么我打印 global 的值的时候,肯定就是非法值呗。
class sale {
public:
int i = 1;
};

sale add(const sale& lift, const sale& right) {
sale sum = lift;
sum.i += right.i;
return sum;
}

int main()
{
sale one;
sale two;
const sale& global = add(one, two);
cout << global.i;
}
执行这个代码,我发现还是能打印出来 2 啊,也不是什么非法值。
@ipwx
是啊,你说的差不多。主要把,我是想看看 return 到底是怎么 return 的,有几次内存拷贝,这样。
还有最后你说的这个深度优化,意思懂啦,相当于直接 A target;
@aliwalker
既然你用 clang 编译没有出现两次写内存,那可能我的编译器的问题吧。
然后你的第二段,我看了,它把返回值 int 存在了-12,-11,-10,-9 这四个字节里,然后把地址存在了-8,-7,...,-1,没有什么重合啊感觉。所以没理解,“为什么不是 const 引用不行”。
@thedrwu
好吧,首先是不是,引用绑定到返回的中间变量,这种写法就是错的吗

然后,我又改了一下,改成 sale global = add(one, two);汇编就变成了:
00B019D2 8D 45 E8 lea eax,[two]
00B019D5 50 push eax
00B019D6 8D 4D F4 lea ecx,[one]
00B019D9 51 push ecx
00B019DA E8 F0 F9 FF FF call add (0B013CFh)
00B019DF 83 C4 08 add esp,8
00B019E2 89 85 10 FF FF FF mov dword ptr [ebp-0F0h],eax
00B019E8 8B 95 10 FF FF FF mov edx,dword ptr [ebp-0F0h]
00B019EE 89 55 DC mov dword ptr [global],edx
好像跟是不是对象没关系,只用一个地址就好了。
哎,我是不是有点钻牛角尖了,但是又有点好奇。

@akira
你看上面的汇编,好像跟是不是对象没关系啊。

@hoyixi
哈哈哈,一时手滑啦
1 ... 28  29  30  31  32  33  34  35  36  37  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1274 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 18:16 · PVG 02:16 · LAX 11:16 · JFK 14:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.