细节

简介: 虽然不是一个做学问的人,但是在看书什么的时候,也需要了解一些细节,有些细节了解了之后,让人心中一亮,在工作中能事半功倍。 在Java中遇到ByteBuffer,看到flip方法,这个方法让人扑朔迷离,还好这些东西都是可以模拟的,更甚者可以去查看源码,原理就在源码当中,以下是模拟的代码:   ...

虽然不是一个做学问的人,但是在看书什么的时候,也需要了解一些细节,有些细节了解了之后,让人心中一亮,在工作中能事半功倍。

在Java中遇到ByteBuffer,看到flip方法,这个方法让人扑朔迷离,还好这些东西都是可以模拟的,更甚者可以去查看源码,原理就在源码当中,以下是模拟的代码:

 

 String str = "helloWorld";
         ByteBuffer buff = ByteBuffer.allocate(13);
         
         buff.put((byte)1);
         buff.put((byte)1);
         buff.put((byte)1);
         System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());
         //读取两个字节
          buff.get();
         buff.get();
         System.out.println(buff.capacity());
         byte bs= buff.get(buff.position());
        char x= (char)bs;
         System.out.println("position1:"+ (char)buff.get(buff.position()+2)+"\t limit:"+buff.limit());
         buff.mark();
         System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());
         buff.flip();//读取数据前,了解字节
        System.out.println(buff.capacity());
        System.out.println("position3:"+buff.position()+"\t limit:"+buff.limit());
        //buff.compact();
        buff.get();
        buff.get();
        //buff.get();
        
         System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());

 以下是源码:

public final Buffer flip() {   
     limit = position;    
     position = 0;   
     mark = -1;   
     return this;   
} 

 flip,一般是在读取之前使用,这里我要说的肯定不是这个的用法,而是细节的作用,在这里了解了这个细节,就知道了字符是如何读取的,或者是字节如何读取的。希望这个引起自己的注意。

最好的老师是帮助,这句话没错,我想很多程序员对这句话都深有感触,在接触一个新东西的时候,在使用的时候一般都是打开help,从help中获取东西,对于coder来所,helper里还有很多sample,而这些helper稍微修改就可能被拿来即用,但是很少去注意到这句话。

我是一个C#下的开发者,但是我从没注意到,VS安装后就提供了很多东西:E:\Program Files (x86)\Microsoft Visual Studio 10.0\Samples\2052\CSharpSamples 里面已经提供了很多示例代码,没有一个好的学习方法,又如何能快速学习?

网络的普及使得学东西更快,但是东西也越来越多,不可能知晓所有的东西,而且东西也可能在变化,一定要学会学会方法,以前个自己说过5W+H,但是也说过多注意细节,有的时候在想写日志其实也就是一个细节,如果写得多了,加以归类,似乎还能得到什么总结,往往看到的技术文章,很多都是作者的真知灼见,对细节的一点阐述,有只言片语,有长篇大作,那些写出来的人,其实就是针对一个问题的细节描述。

目前的学习,一般都是从定义开始,知道这个是干什么的,然后知道应用领域,然后追求是实现过程,或者操作过程更甚者是如果运用,以便解决问题,这里面的每一个环节都有细节的东西,如何才能抓住呢?小时候看的电视,《包青天》可能为大多数人追捧,包公的铁面无私,公孙先生的博学广识,展昭的武艺高强,忠肝义胆,王朝马汉更是视死如归,就因为这样的一个组合,才能屡破奇案,喜欢过展昭,也欣赏过五鼠的情深意重,更向往过江湖的快意恩仇,这应该是跟我那个是偶同龄人的想法,也许年少无知,也许无暇思考,之所以有这样的想法,是因为电视里的细节描写很动人,有的时候一个动作,一个举止言行就可让人印象深刻以至于不忘记。开封的那些人他们之所以能屡破奇案,除了因为这样一个组合,更多的是他们善于发现细节,发现别人不善于发现的事情,并能从这些里面剖跟问题,找到答案,其实这些就是细节的作用。很多看似无关的东西,水,面粉,炉子加载一起却能做出馒头,做出面条,善于联想,善于推理,很多的元素组合在一起就可以有很多的功效。在包拯的破案中,如果忽略了任何一个细节,那么就没法继续下去,可见细节决定成败。

      又说了不少废话,希望自己以后多注意!多发现

相关文章
|
6月前
|
存储 缓存 监控
《优化接口设计的思路》系列:第二篇—接口用户上下文的设计与实现
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 作为一名从业已达六年的老码农,我的工作主要是开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。这其中的原因有三点:一是业务系统本身并不复杂;二是我一直遵循某大厂代码规约,在开发过程中尽可能按规约编写代码;三是经过多年的开发经验积累,我成为了一名熟练工,掌握了一些实用的技巧。
52 0
|
5月前
|
自然语言处理 Java 机器人
从细节出发:提高你的代码可读性
在编程的世界中,我们总是不断追求更高的性能,更优雅的设计,以及更复杂的特性。然而,我们不应忽视一个基本且重要的原则——代码的可读性。那么究竟何谓代码的可读性?顾名思义,代码可读性是指代码可理解的程度,是代码作者通过代码这个媒介,将需要表达的信息输出到读者脑中的能力。所以有的人说好的代码必然有清晰完整的注释,也有人说代码即注释,是代码简洁之道的最高境界,后者的观点飞哥持保留意见,毕竟真正能够做到代码即注释的有几人呢?
|
5月前
|
C++
C++中需要注意的细节
C++中需要注意的细节
33 0
|
8月前
|
Java 编译器 应用服务中间件
代码开发优化细节
带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。此举能够使性能平均提高50% 。
188 2
代码开发优化细节
|
10月前
|
算法
《重构2》第七章-封装
《重构2》第七章-封装
74 0
|
11月前
一道细节优化的题
一道细节优化的题
59 0
|
设计模式 移动开发 前端开发
😲Review 实战经典:2 种封装风格,你偏爱哪种?
所以大家在后台管理系统项目中遇到的很多问题也都是相似的,代码很值得 review,本篇带来一例(真实)
|
开发者 Python
盒图细节|学习笔记
快速学习盒图细节
70 0
盒图细节|学习笔记
|
JavaScript
使用组件的细节点
《Vue实战笔记》
65 1
|
测试技术 程序员
编程中你注意过这些细节吗?
阅读本文大概需要3分钟。
194 0
编程中你注意过这些细节吗?