30日学习笔记,关于java的IO系统已经Decorarot模式

HPC软件使用之ANSYS Fluent 本文介绍了如何在超级计算机上使用ANSYS Fluent进行科学计算和工程仿真。文章首先对Fluent软件进行了简要介绍,强调了其在计算流体力学领域的广泛应用和强大功能。接着,详细说明了如何编写jou脚本文件和slurm脚本文件,以控制Fluent的计算流程和作业提交。文章还提供了作业提交和查看的具体命令,并通过一个鼓风机仿真的案例演示了从网格模型准备、脚本编写、作业提交到结果查看的完整流程。最后,展示了使用Fluent进行结果可视化的方法。 阅读详情

这是纯技术性质的总结,所以果断不废话。

 

关于 java I/O处理,其实我个人认为如果从一般学习者就是之前没有经验的人开始理解起来确实是比较困难的,这里我要作出一个对比,我想表达的是别人不曾表达的东西,关于概念性的基础中的基础的问题(比如说流是如何被比喻的,还有就是各种语法问题,就不再这里继续占用篇幅了,很多人都写到了,我只写我自己认为值得参考的那些方面),一开始我自己研究java IO的时候是从<java编程思想第四版>中的java IO部分开始看起的,因为之前只有一丁点c++经验,然而java IO是由类驱动起来的,而且用了很深的decorator模式,那个时候的我确实不知道这是什么层次的概念,只知道一点关于工厂的东西(其实就是如何写的一些步骤和方法,至于真正的设计原理现在也不是特别清楚),而且看书中的例子,初步要进行IO操作的话是有很多装饰的,语法看起来就复杂的多,一开始很不理解为什么就要 new里面 再写一个new ,有的不止有2个,这样恐怖的构造感觉压力很大,而且就我 thinking in java中的java io开篇来说,一上来就是说File类的相关介绍,关于File类的困惑其实就可以写很长了,今天在写一个文件复制类的时候,因为一些设计不到位的问题差点把写了半天的程序废了,虽然不多,但是我认为在初步的时候是进步最快的,不管你能写多少,或者有多不懂。问题之一就在于文件在保存的时候 File类的mkdirs()方法的目录创建问题,会导致文件和目录的判断无效直接建立和文件名一样的文件夹导致异常,然后在下次写入的时候会发现无权限操作,原因是已经有了和文件名一样的一个文件夹,到现在我一直认为File类对文件的描述并不全面,问题之一就是目录问题,并不是说它设计的不好,thinking in java 中已经说明了,File其实描述目录更多一点,有很多例如list()的方法,可以内插一个继承自 FilenameFilter类的带有Regex的过滤装置,这样你的记事本就可以只读取一些特定文件后缀的文件了,*nix系统需要判断文件头,不过貌似没这个必要。

 

其实不管写什么,我认为设计是优于算法的,或者说设计是重中之重,所以要建立起比较健全的概念之后你才可以自由发挥的比较好,这也是我一直想做到的,所以一直绞尽脑汁想去写这些东西,当然前提是必须有hackers的探索精神以及 Greenday类似的朋克精神,我认为使用各种IDE不是一件特别cool的事情,确实是这样,从java IO系统中可以看到的是java过于严肃了,而且让很多人都很难以设计,虽然java 是以设计著称的。

 

下面来讨论一下著名的设计模式之中的 装饰模式。

下面上一个 uml

MyInterface
           |
_______|_______
|                    | 
Myclass     Decorator
              ____|_____
              |              | 
    DecoratorA      DecoratorB

其实就  BufferedReader read = new BufferedReader(newFIleReader(new File(“./1.txt”)));

这样的含有超级构造器的构造方法是无法让一个人比较透彻的了解到底他妈的什么是惊喜的,所以我认为上面的uml图是十分棒的东西,确实可以帮到你,如果你愿意去亲自看一看到底java的设计者或者说是工程师们是如何设计他们自己的 IO系统的,可以去简单看一下源程序,不用全部看了,只看其中的某些就可以了,其实最上面的那个接口是很多情况下你没有看到的东西之一,如果要遇到具体的设计的话,菜鸟很容易困惑,上面的uml是什么意思,虽然我也是菜鸟,但是根据自己的经验来写一下。

MyInterFace是装饰类和原类共同有的一个接口,里面可以写上自己需要随时做出改变的方法,MyClass是实实在在的自己想要操作的类,里面有自己想要装饰的方法。

总的来说是先要有一个被修饰的对象,然后实现同样的接口,之后在通过扩充接口来实现功能,这是适配器模式的一个变种,不一样的地方是适配器模式需要实现另外的接口,而装饰模式只需要实现当前的接口就可以了。

 

装饰器一般要有被装饰类的句柄,这样才可以对其要装饰的方法进行扩充。看我下面的例子吧;

 

Public interface MyInterFace{

 

       Public void sayHi();

 

}

这是装饰类和被装饰类都要实现的接口

 

Public class MyClass implements MyInterFace{

      

       Public void sayHi(){

 

              System.out.println(“helloworld”);

}

}

这是我们的被装饰类,这个时候如果想操纵sayHi()方法的行为可以直接继承覆盖该方法,但是今天要说的是装饰。

 

Class Decorator1 implements MyInterFace{

 

       Private MyInterFacesource;

       Public Decorator1(MyInterFaces){

 

              Source = s;

 

}

Public void sayHi(){

 

       Source.sayHi();

Syatem.out.println(“to me”);

 

}

 

}

 

这是一个装饰类,可以实现输出hello world to me;

Class Decortor2 implements MyInterFace{

 

       Private MyInterFacesource;

       Public Decortor2(MyInterFaces){

             

                     Source =s;

}

Public void sayHi(){

 

       Source.sayHI();

System.out.println(“to you”);

}

 

}

 

然后我们这样写

MyInterface s = new Decortor1(new Decortor2(new MyClass()));

就可以实现多种效果了

 

具体的我也只理解了这么多吧,12点半了,睡觉吧还是。

想考SCJP,上帝保佑~

激光打标轴坐标计算分析 ‌:基于坐标差的平方和开方运算,勾股定理将几何关系转化为代数计算,从而实现了从坐标到距离的精确转换‌12。直角三角形的应用从上图可以看到A,B,P三个点连起来就是一个直角三角形了。用勾股定理计算距离 C#有相关的方法直接传参数就可以了。很方便。 阅读详情

相关推荐

【实战学习(五)】开源项目学习之uWSGI的部署以及配合nginx

文章目录1)uWSGI是什么?1.1 WSGI1.1.1 Application端1.1.2 Server端1.1.3 WSGI中间件1.2 uwgi1.3 uWSGI、WSGI、uwsgi之间的关系*为什么有了uWSGI为什么还需要nginx?2)连接uwsgi和Django*避坑之Windows10安装uWSGI非常极其艰难,最好勿浪费时间,直接转战Linux吧:2.1 uWGI部署2.1.1 在虚拟环境下安装uwsgi:2.1.2 测试uWSGI的运行2.1.3 使用uWSGI运行Django项目2.

黑黑白白君的博客 1507

你的Java知识有多深?

来自:http://www.cnblogs.com/avenwu/archive/2012/02/24/2367304.html 前言 关于java的基础知识,只是在大二初学时看得多些,今天看了看张孝祥老师的视频,突然发现自己根本不了解Java很多东西,有些是忘了,而有些以前根本不知道,拿来分享一下,这些你曾注意吗?(牛人就不要往下看了)   1.“&”和“&&”的区别分析

hack2me---Just for fun 1462

Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈

Titans 是谷歌推出的新型神经网络架构,通过神经长期记忆模块突破 Transformer 在处理长序列数据时的瓶颈,支持并行计算,显著提升训练效率。

士多啤梨先生の博客 991

SmartRCP是什么

这是个好东西,果断备忘 本系列简要介绍怎样使用smartrcp构建强大可伸缩的桌面程序。项目地址:http://code.google.com/p/smartrcp/ SmartRCP是什么 SmartRCP是一个使用Java与Flex 编写

hack2me---Just for fun 822

Python CalmAn(Calcium Imaging Analysis)神经生物学工具包安装及环境配置过程

CalmAn是一个用于大规模钙成像数据分析和行为分析的Python工具箱。CaImAn实施了大规模钙成像数据分析管道中所需的一套基本方法。针对多天的运动校正、源提取、尖峰反褶积和分量配准,实现了快速且可扩展的算法。它适用于双光子和单光子荧光显微镜数据,可以在批处理和在线模式下运行;CaImAn还包含一些分析摄像机行为的例程。

Fine的优快云博客 3558

用FPGA在HDMI上显示自定义字符:从COE文件到OSD叠加的保姆级教程

本文详细介绍了如何在FPGA上实现HDMI视频流的OSD字符叠加技术,从COE文件生成到动态区域控制的完整流程。通过Verilog代码示例和实战技巧,帮助开发者掌握字符ROM设计、像素坐标追踪和动态混合等核心技术,适用于视频监控、系统状态显示等应用场景。

weixin_28720767的博客 231

今天的作业 java IO练习,一个山寨记事本,没什么技术含量

/* * 2011 08 29 java IO操作小练习 * Notepad 山寨记事本 * ×很多人都写过的东西,没记错的话已经是第二次写了吧,没什么技巧,也没什么算法,纯属熟悉程序的练手,一直想写一个完整的,还是先把作业交了再说吧 ×一直想把程序尽量规范起来,希望能进步快点

hack2me---Just for fun 794

Python模拟发送SOME/IP消息(Scapy模块)

SOMEIP提供服务、订阅、响应、通知等Python代码示例

liluo0815481的博客 3068

新手学习java的心得体会

<br /><br />/**2011年3月12日<br />* Hacked by Younger.shen<br />*http://www.hack2me.com<br />*younger.x.shen@gmail.com<br />*/<br /> <br />研究java也有几个月的时间了,现在想写一点心得体会,虽然我现在基本上还是停留在读书写程序片段死扣语法的阶段,但是我认为还是很有必要来写一写的。<br />首先对于java的认识让我一开始对java没有太多的好感,直到现在读了很多书之后才认

hack2me---Just for fun 755

DenseNet训练实践

在Cifar10上训练DenseNet,复现DenseNet论文的结果是后面两篇分析工作的基础,因此本系列的第一篇,将首先讨论深度学习的训练过程中的几个方面: 1. 数据集 1.1 Cifar10数据集 Cifar10数据集有6万张32X32的图片,是一个小型的数据集,但数据的复杂度足够,下图来自DenseNet论文,可以看出,不用数据增强的话,ResNet的正确率也很难超过90%,因而足以用来验...

一蓑烟雨任平生 1万+

【连接器专题】 EIA-364 系列标准的完整列表

EIA-364 系列标准在电子工业中具有重要的地位,为电子连接器和互连系统的测试和验证提供了统一的、可操作的流程和方法,有助于提高电子产品的质量和可靠性,促进了电子工业的发展

一点硬件 2660

20110829 日作业,复制文件,简单IO操作,我自己扩展过的,比题干要求的功能多点

/* * 20110829 日作业 * coded by Younger.shen申延刚 younger.x.shen@gmail.com * blog : blog.youkuaiyun.com/hack2me * blog : youngershen.com/blog/ (you sh

hack2me---Just for fun 712

010、Zephyr RTOS开发环境搭建(Docker)

摘要 本文分享了使用Docker搭建Zephyr RTOS开发环境的实践经验。作者通过团队新人配置环境的真实案例,指出传统安装方式存在版本冲突、缓存污染等问题,而Docker方案能确保环境一致性。文章详细介绍了自定义Docker镜像的设计思路,重点解决工具链版本匹配、Python虚拟环境隔离等问题,将镜像体积从2GB优化到800MB。提供了从拉取镜像到点亮LED的完整工作流程,并总结了USB设备直通、文件权限、缓存问题等常见陷阱。还探讨了多阶段构建、CI集成等进阶用法,同时客观分析了Docker方案的局限性

m0_50546716的博客 79

自编java细节(3)----之你不可能得到正确的结果

我很高兴这一刻我又有了新的进展,又找到了新的好玩的东西, 先来看看下面的一段程序 public static boolean isOdd(int i){ return i % 2 == 1; }你可否会考虑一下上面的方法是否总是正确,它是否会得到意想不

hack2me---Just for fun 670

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

最近在练手的一个管理系统

当然做java ee的不可能没做过这样的小型ERP的吧,感觉相当无聊,不过练手也是必须的,在设计上,站在新手的角度上,要把业务逻辑和UI实现分开,然后用OOP的设计模式分布把系统完善出来,是相当不容易的,因为没有任何经验,都是一边摸索一边在做的。 还有这个系统目前只是整个系统中的一个子集,希望能够把代码重用的精髓突出出来,java就像钢琴一样,要弹的好的话需要2点,首先是有天赋,然后是从小

hack2me---Just for fun 658

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

20110830 java IO处理学习----一个自写文件复制类

要说java 的IO处理因为有了很多类看起来是很方便的,虽然都封装好了很多算法细节,但是如果只看JDK 文档的说明还是十分困惑的,比如说BufferedReader类里面的readLine()方法,刚开始的时候光看名字我一直以为是读取行可以间接读取的,其实是不可以间接读取的,在自

hack2me---Just for fun 566

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最近项目的 core逻辑核心程序

这次的设计也算是失败了百分之40的,不过拿来练手也确实是学到了很多东西,学会了解决问题的很多不通的方法,整个系统是一个子集而已,还需要很多完善,而且想做一个高仿的,看来还是需要继续改进,最近又要忙了,自己给自己打气,晓儿,你加油哦! package com.youngershen.mrp;import java.util.*;import java.sql.*;//°ÑžÃ

hack2me---Just for fun 561

2011 下学期计划

I have seen thefuture , It is in my browser      这个题目是我突然找到到的现在我手中有一张田爱娜的名片,名片的反面写着这样的一句话,当然这是html5小组的口号。 开放互联网给了很多人很多梦想与希望,html5又一次给了每个人

hack2me---Just for fun 527

2011 09 15 学习笔记

一直在进行增删改查的联系,mysql可真够没意思的,就插入一个图片,折腾了一晚上,也不知道是什么情况,从来没人告诉我数据库的编码是 gbk的话就插不进去图片,无意中发现一个帖子才解决了问题, 如果你在mysql中插入图片的时候出现奇怪的报错信息,通常都是 sql语句的语法错,而

hack2me---Just for fun 514

2011 0907学习总结

2011 09 07 学习总结 今天上课的时候主要学习的是java的线程调度,说到底最关键的还是2个方法 wait和notify这两个方法是非常关键的,在进行线程调度的时候由于书本上和老师总结的都不十分完全,所以我现在必须要把问题说清楚,明明白白的说清楚,就我今天晚上帮同学解决

hack2me---Just for fun 504

20110831日的总结--关于原始流与字符流之间的转换中的设计问题

关于原始流与字符流之间的转换中的设计问题   装饰模式在这里显然派上了很大的用用场,现在先分析一下InputStramReader到底是如何将原始流包装成字节流的。 明显他们中间的主接口是 InputStream,这个接口主导了其中的设计,使各个类之间能够方便被相互修饰,说

hack2me---Just for fun 497

自编java细节(1)

也是暑期時候寫的, 之前發布於 http://youngershen.com/blog 自编java细节(1) on August 13th, 2011 by youngershen | No Comments » java 是很强

hack2me---Just for fun 482

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 289

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 346

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 198

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 130
上一篇: 20110830 java IO处理学习----一个自写文件复制类
下一篇: 一个JS的RPG引擎,备忘,准备写个html5的动作游戏
程序员迈克
博客等级 码龄16年 36粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值