社区问答第12期:谢宇 Java特种兵

柔软的胖纸 2014-10-20 09:59:24
加精
本期的社区问答(10 月 20 日— 10月27 日)我们请来了《Java特种兵(上册)》一书的作者 谢宇 为大家解答关于JAVA方面的问题。

谢宇



谢宇,淘宝网资深Java工程师,CSDN超人气博主,人称“胖哥”。

作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,经过自己的不断努力与坚持,走到现在,自认为还算是一个不错的“泥水匠”。作者把在这一过程中所经历过的许多问题和技术细节,以及自己的学习经历和心理,记录在博客上,引发众多网友的共鸣。

作者发现和自己有类似经历的人很多,在许多网友的支持下,决定写下这本书分享给大家,希望这本书对徘徊在Java门外的初学者有一定的引导作用,能够提升Java入门者的单兵作战能力,独当一面!

谢宇博客地址:http://blog.csdn.net/xieyuooo

专访谢宇:拒绝做程序员“砖工”

问答结束后,谢宇老师会在所有提问者中抽取三名用户,赠送《Java特种兵(上册)》一书。



为了营造更好的问答氛围,我们不欢迎一切与主题无关的讨论、灌水和无脑喷子。

下面欢迎大家踊跃提问,在本帖回复即可。
...全文
15962 228 打赏 收藏 转发到动态 举报
写回复
用AI写文章
228 条回复
切换为时间正序
请发表友善的回复…
发表回复
qimei8685 2016-07-10
  • 打赏
  • 举报
回复
您好,我阅读了第一章,您写到当a占空间的1/5时,不会发生oom,我理解的是当最后一次扩容结束,有1/5+2/5的空间占用,而toString操作又要申请2/5的空间创建新字符串,这样不就oom了?
joozhuzhu 2015-06-08
  • 打赏
  • 举报
回复
你好,谢老师,为什么书只有上册而下册基本没消息,连卖店也没有卖
asc188 2015-05-05
  • 打赏
  • 举报
回复
杨万 2015-04-28
  • 打赏
  • 举报
回复
你好 胖哥,我是一个刚入们一两java web开发工作者,看了你的书,觉得有些东西很深。要反复看好几遍,才可以理解,是我理解能力差。还是胖哥你写的太详细呀。。
Z12055425 2015-04-24
  • 打赏
  • 举报
回复
老师,请问如何获取pdf文件当前的页码?PS:我用的是pdfobject.js这个插件
  • 打赏
  • 举报
回复
我的win7系统,eclipse打开菜单栏不显示,怎么办啊?
huangyekan 2015-02-13
  • 打赏
  • 举报
回复
买了楼主的上册,看着确实很不错,想问下册什么时候出?
yang_zhi_yuan 2014-12-27
  • 打赏
  • 举报
回复
总感觉JAVA太弱了,现在太多东西只是会用,太纠结了,急需升级!spring、hadoop、spark等等很牛X的东西用用还是可以的,真说个所以然只能“呵呵”,已经买了Java特种兵
qq_24695085 2014-12-21
  • 打赏
  • 举报
回复
抢占沙发啦,顶一个
qq_24445753 2014-12-12
  • 打赏
  • 举报
回复
牛人啊。。。
m18262523431 2014-11-27
  • 打赏
  • 举报
回复
大神有用Java调过EPSON指令集来控制打印吗
作业本_ 2014-11-23
  • 打赏
  • 举报
回复
向大神学习..
imjcoder 2014-11-15
  • 打赏
  • 举报
回复
大神,怎么才能让我装逼让我飞呢。。。。
走在四季 2014-11-15
  • 打赏
  • 举报
回复
引用 21 楼 z191329696 的回复:
谢工,谢老师,“胖哥”: 您好!作为一个java菜鸟,姑且说一只脚踏进了这个门。最近在工作上有了很大的疑惑和困难,且听我一一道来。烦请您不要嫌我太啰嗦。 我12年毕业于一个普通本二专业,但大学的专业并不是计算机相关专业。在大学接触过了C/C++编程语言,懂的也只是皮毛。那时候还没有接触过java。工作一年后,再三考虑,发觉自己还是对电脑,软件感兴趣,于是便辞职,参加了java培训。目前,自己在外包公司(外包到华为)工作快10个月了。问题来了,我现在的工作其实和我培训的javaWeb几乎没有关系,在一款用java封装后的软件上,做业务的配置数据,几乎都是关于业务的逻辑运算。慢慢感觉这并不是自己想要的,这样下去,要不了多久人就废了。于是,自己在空闲时间看关于javaWeb方面的知识(ps:网上找的资料都好陈旧),做些demo这类的,但,毕竟这和真是项目有很大差距。如此便产生了跳槽的想法。但是,自己还有贷款(参加培训和家里其他的)需要还,目前并不多了。且,以目前的水平跳槽出去,肯定比现有的待遇差。在CSDN论坛看了好多贴,有些贴越看心理越没底,一个自己技术不行,而自己不是科班出身。唉,那么问题来了? 我现在是辞职找javaWeb工作好,还是现在目前这边干,等经济压力不大了再出来找。真怕再往以后拖,越来越对开发没有信心,找工作越来越困难。 自己一直想做技术,烦请,“胖哥”能够指点一二,给在迷途中的我指明方向。
我觉得引用那句话“两手都要抓,两手都要硬”,不要急,求稳,先积累。。
xieyu_zy 2014-11-05
  • 打赏
  • 举报
回复
引用 211 楼 qq_15800585 的回复:
做什么不喜欢没头没尾,在csdn看到你的帖子很懒不想去找什么采访中提到下册的消息,就一个问题,想上册下册一起买,什么时候可以有下册?
呵呵,页面检索下下册关键字,就能搜索出来。你真需要的话,我复制一份采访中的内容给你吧,^_^: 提到本书的下册,其实这本书是没有分上下册的,而是写完手稿后,发现字数已经远远超出与出版社当初的合同字数(大概是2-3倍),我有点舍不得砍掉那么多内容,最后与出版社商定分上下册出版,上册更加适合于大众,下册的内容并不是深挖上册的内容,但可以算是一些内容的延续,结合案例来说一些上册所提到的技术基础,另外会提到设计思想、项目中的沟通,在技术层面我们还会补充一些“坑”,然后介绍一些分布式技术的基础思想,最后会谈一谈程序员的心态,总之,某些知识点会在书中不同的地方出现,但是会以不同的侧面和理解程度而出现,在我看来或许是在比较合适的位置讲解某个话题,也就是书籍前言中所提到的:并不是以知识点为基础讲解,而是以一些事情来反推这些知识点。也正因为如此,如果期望在通过本书达到知识点积累目的的小伙伴可能会比较失望,对于走马观望式的阅读也通常得不到想要的点,因为我们不时会将某个问题再度深入或从另一个角度来探讨。 在上下册拆分后,小胖发现单看下册怎么看都不太满意,于是乎想再打磨打磨再发行,这种事情过分着急往往不好,加上今年再工作上十分繁忙,所以暂时还没有出,初步约定的时间会在春节前交稿给出版社。 ============================================================================== 目前还没确定具体时间,我平时工作也比较多,得抽空搞,上册里面经常写的时候会因为工作忙,经常会断一周、半个月的样子,再来写的时候思路会断下来,所以会发现一些冗余的东西。 PS:可以先抽空看下前言或样章啥的,我说得比较直接一点哈,我的书其实不是很适合性格很急的人看,尤其是文字会比较多,要在这本书直接取找到某些技术问题的答案基本找不到。就你这边提出问题的方式来讲,给我感觉性格上未必合适,呵呵,所以我建议你先看下。
qq_15800585 2014-11-04
  • 打赏
  • 举报
回复
做什么不喜欢没头没尾,在csdn看到你的帖子很懒不想去找什么采访中提到下册的消息,就一个问题,想上册下册一起买,什么时候可以有下册?
labreeze 2014-10-30
  • 打赏
  • 举报
回复
谢老师,请教个技术问题。
我在main方法中加了两行代码
int index=1;
String str="my.string"+index;

然后我用javap命令


然后我的理解感觉总是不大对。
0是将常量1压入栈顶
1出栈且赋值给第一个1变量
2new StringBuilder对象 同时入栈
5dup 拷贝一份入栈
6invokespecial 不大理解 要进行出栈动作吗,同时初始化
9ldc 将mystring 放入栈中 此时栈应该只有一个stringbuildder对象 和一个mystring吧
11 我也不大理解,猜测应该要进行出栈动作吧,将stringbuilder对象和mystring 进行append, 方法的返回值要入栈吗?
14 假设返回值入栈了此时栈中有个stringbuiler对象吧 将第一个变量1入栈,此时有两个变量在栈中
15 又是这个指令,话说还是理解append方法的返回值入栈吧
18此时栈中只有个stringbuider对象 调用tostring()方法 放入栈中
21将string出栈放入变量2中

以上很多猜测,想看高手的看法, 主要invokespecial方法 如何进行对象的出栈动作的,它的返回值是不是要放置在栈顶。


xieyu_zy 2014-10-30
  • 打赏
  • 举报
回复
引用 209 楼 labreeze 的回复:
谢老师,请教个技术问题。 我在main方法中加了两行代码 int index=1; String str="my.string"+index; 然后我用javap命令 然后我的理解感觉总是不大对。 0是将常量1压入栈顶 1出栈且赋值给第一个1变量 2new StringBuilder对象 同时入栈 5dup 拷贝一份入栈 6invokespecial 不大理解 要进行出栈动作吗,同时初始化 9ldc 将mystring 放入栈中 此时栈应该只有一个stringbuildder对象 和一个mystring吧 11 我也不大理解,猜测应该要进行出栈动作吧,将stringbuilder对象和mystring 进行append, 方法的返回值要入栈吗? 14 假设返回值入栈了此时栈中有个stringbuiler对象吧 将第一个变量1入栈,此时有两个变量在栈中 15 又是这个指令,话说还是理解append方法的返回值入栈吧 18此时栈中只有个stringbuider对象 调用tostring()方法 放入栈中 21将string出栈放入变量2中 以上很多猜测,想看高手的看法, 主要invokespecial方法 如何进行对象的出栈动作的,它的返回值是不是要放置在栈顶。
在我所知道的范围内,你说的基本没啥问题,因为要操作的时候肯定会出栈的,你联系下大学所学就不是那么难以理解,操作数都是操作前放入栈顶,操作时就会自动出栈,你看其他的指令,如果要把栈的整个运算过程堆叠起来,就都是这样操作的,我不知道你看我的书没有,在第84~85页里面讲解的一段中,就和你的这个例子基本是一样的。
马林515 2014-10-28
  • 打赏
  • 举报
回复
引用 201 楼 xieyuooo 的回复:
[quote=引用 197 楼 malin1994512 的回复:] 刚毕业半年了, 现在上海 xK 了,技术属于学的很快基础不牢。 现在看书 看Java编程思想 , 照着例子写在工作中也用不上去。。。。 现在对技术有点绝望。 是否该坚持下去
呵呵,这个就是我建议很多人不要那么着急看很牛的书的原因。还有与前面哥们一样的话题,不要在公共地方透露你的待遇,这样子不好哈! 就Java编程思想,不是说去敲敲代码就完事,既然是思想,它就需要你去理解和领悟,但是对于很多人来讲,理解和领悟感觉不到,因为自己还没碰到太多跌跌撞撞的事情,即使领悟在很多时候觉得就是“应该这样做的”,我也提到这是很多人学了很多思想但万年都用不上的原因之一吧。 当然要谈到领悟,其实这I类书就是在不同的开发经历下会有着不同的体会,每当你翻看这本书的时候,都会有一种新的感觉,而不是一锤子买卖,看完、敲完就全是自己的了,有营养价值的东西绝对不是一次性吸收的,这和一个人从一个小孩成长为一个成年人的思想经历有点类似。当然我不是说这些东西初学者看了不好,这个道理就像小孩子被大人教育一些社会哲学一样,有的小孩子可能会被固化思想。 因此,我想说的是,你现在用不到并不代表未来用不到,而现在不可强套自己的工作场景,但是工作场景又可以思考下为什么会这样做?如果不这样做会有什么不一样的地方,逐步才能探讨到Java思想的一些好处上来。另外,编程思想本身对于技术细节并不是特别深 ,它更倡导的Java编程的一些思想,里面会附带一些技术原理。但希望看待问题的角度,可以从更多设计者的思路来思考,考虑作者当时是怎么思考的,或许到一定阶段你会有不同的体会。 是否对技术绝望,如果真的绝望你似乎也不会来问这个问题,如果你问这个问题说明你还报有期望,呵呵!或者说如果你真的绝望我也没有必要回复你了,有点绕哈!我只是想说,如果你真的想走技术路线,而且想探究下Java的技术之路,可以去挖掘一些Java专门深入讲解技术的书籍,当然我不是说Java编程思想写得不深,它更侧重于另一个角度来阐述Java本身。有专门讲解Java的深度技术的书籍(例如JVM内核、编译器内核、JUC、Java调优、分布式中间件、NoSQL等),至于你要看多深,想走多远,得看你自己的选择,或许越深路越难走,但走过去你就是佼佼者甚至于是牛人,但一定要选择,即使绝望也得有其它的选择,世界上应该说没有什么路是既好走又可以出类拔萃的。 [/quote] 有点道理。。 现阶段的自己是应该先注重下使用的东西
xieyu_zy 2014-10-28
  • 打赏
  • 举报
回复
引用 206 楼 oihjcusdbjbc 的回复:
有没有下册。
关于下册,在这篇CSDN采访中有一个专门的问题,搜下关键字就看到了哦!^_^ http://www.csdn.net/article/2014-10-20/2822169
加载更多回复(203)

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧