全部课程

全部课程分类

培训乐帮返利流程

java hook教程

2011-12-24 00:07    发布者:nee1760    评论:0    浏览:374
摘要:java hook教程

       Java I/O系统是一个典型的Decorator模式的实现,它以InputStream/OutputStream为基本核心,通过继承关系,不断为该核心添加新的功能,如文件流、缓冲、加解密等。对I/O系统设计模式感兴趣的话,可以参考developerWorks上的一篇文章:从Java类库看设计模式。Java I/O默认是不缓冲流的,所谓缓冲就是先把从流中得到的一块字节序列暂存在一个被称为buffer的内部字节数组里,然后你可以一下子取到这一整块的字节数据,没有缓冲的流只能一个字节一个字节读,效率孰高孰低一目了然。有两个特殊的输入流实现了缓冲功能,一个是我们常用的BufferedInputStream,像读文件我们常用

BufferedInputStream in = new BufferedInputStream(new FileInputStream("datafile"));
while ((b = in.read()) != -1)
{
  ...
}
in.close(); 

         这是我们几乎不用查什么JDK文档就能信手拈来的代码段,写的时候也应该思考一下套一个BufferedInputStream的意义何在。另一个就是我们不怎么看到的PushbackInputStream(其对应的字符流模式为PushbackReader)。
        
在通常状态下,意味着一次性,就是说你进行了一次操作后它的状态就变了,譬如读,无论是文件还是socket,你读的过程中一个潜在的读指针一样的东东就在移动,你无法在读以后再重新定位(当然RandomAccessFile是另一种情况),如果你以前奇怪为什么数据库操作中ResultSetget某个字段以后就不能再第二次get它了,这里或许是个解释。但好在PushbackInputStream给了我们第二次读的机会。我们先来区别一下监听截获的概念,监听就是把得到的消息copy一份,原始消息并不作任何改变地传递到目的地;

    而截获则是先把消息扣押下来,不让其自动转给目标,而是先进行一些处理以后在转发给目标(如果是网络安全专业的背景知识,大概知道监听是对机密性的攻击,而截获不仅是对机密性还是对完整性的攻击)。有的朋友大概对hook这个名词有些了解,它是一种Windows的一种消息处理机制,似乎就是一种消息截获手段,但我对Windows编程几乎一窍不通;此外,如果你熟悉Servlet的话,也能找到像Filter这样的处理机制,在对每个HTTP请求/应答进行转发之前,先在里头耍一点花招,确定哪些予以转发,哪些屏蔽掉,这也算是截获吧。通过上面的介绍,我们不妨把PushbackInputStream看成是对输入流的一种截获手段,其中最重要的方法是unread

public void unread(int b) throws IOException
public void unread(byte[] b) throws IOException
public void unread(byte[] b, int off, int len) throws IOException

我们可以想象一下,PushbackInputStream内置一个缓冲区(事实上,你可以从它的源代码里找到这个protected的字节数组),当低层流进来时先流进这个buffer,在你把流物归原主之前还有机会对它耍花招,然后再用unread方法反悔一下,把缓冲区里已经读过的内容(一般是没有被改动的,当然你也可以改动它,那就失去归赵的意义了,因为已经不是完璧了)再插入到流的头部,下次读的时候是流剩余的部分再加上从缓冲区归还的部分。上面三个unread方法分别代表从缓冲区归还一个字节、一个字节数组以及一个字节数组中指定的部分。
        PushbackInputStream
是对二进制流的处理,字符流下相对应的就是PushbackReader

0 顶一下
更多>>
软件开发机构推荐
更多>>
软件开发课程推荐

  ¥80 ¥80

北大青鸟Accp

最近开班: 北大青鸟Accp
课程介绍:ACCP7.0是北大青鸟APTECH推出的最新软件工程师职业教育课程,由中印两国软件技术专家联合研发完成。作为一款面向大众的求职系列教育产品,ACCP7.0更加强调动手实践能力,注重代码编写的工程化和

学费:电询   人气:167

  ¥80 ¥80

Android工程师

最近开班: Android开发
课程介绍:1.大学专科(含专科)以上学历,或者具有同等以上学历; 2.酷爱编程,尤其喜欢3G手机开发,思维活跃; 3.有志从事Java开发、Android UI开发、Android系统架构、应用开发

学费:电询   人气:407

四川五月花专修学院软件开发专业招生

课程介绍:四川成都五月花学校开设专业: 幼儿教育、服装设计、航空服务、旅游管理、中西烹饪、室内装饰艺术设计师、商业网站前台设计师、广告传媒艺术设计师、NIIT软件开发工程师、NIIT硬件网络技术工程师、财务会计、护理等专业。 专业情况,请预报名后,带学生到学校进行专业的详细介绍和校园参观。

学费:8800   人气:144

高级网络工程师专业

课程介绍:入学即赠送品牌笔记本电脑,人手一部,无线网络免费覆盖,随时随地遨游商海;入学即开店,真实的创业项目贯穿教学全程,现学现用。

学费:电询   人气:422

软件开发相关文章
金山办公吴庆云:AI大模型已让办公领域涌现出众
新AI模型可识别运动员情绪
竟用人工智能生成“上海中山公园地铁站捅人”视频
哪里有奶茶技术、奶茶培训方法
哪里有安徽卤菜技术培训
长沙正宗川味烤鱼培训、烤鱼哪里好吃
哪里有口味虾的做法、口味虾加盟店培训
我想学如何用锡纸烧烤烤鱼
哪里有培训火锅的做法、麻辣火锅培训
哪里有开心花甲培训、五香味开心花甲技术培训
哪里有早餐培训、湖南津市牛肉粉技术培训
哪里可以学牛肉粉
长沙最新特色小吃锡纸烧烤培训
江西哪里可以学鸭霸王
哪里可以学做酸辣粉
长沙哪里可以学早餐米粉
长沙哪有学蒸菜的地方
哪里可以学习做酱板鸭
湖南哪里有肉夹馍学吗
哪里可以学做卤菜配方卤菜做法


如果您要进行评论信息,请先 登录 或者 快速注册 。
评论总数:0

网友评论

为什么选择优训网
  • 贵就赔 报名价同班最低
    差价双倍返还
  • 顾问服务 培训最怕时间和钱花了,东西没学到
    专业顾问,给你内行建议
  • 点评返利 学完后分享点评,
    不仅能帮助别人,
    还能获得返利

服务热线:400-68-12568

扫一扫 就有礼!
关注优训网新浪微博
有价值的教育培训资讯 扫一扫 收听优训网微信