我a文件内容是abcdef 像我这个第19 20行这么写,先判断读取的文件到没到最后,再赋值给a输出为什么结果是bdf呢
IO流不是使用的是装饰设计模式吗?
在此贴出装饰设计模式和静态代理模式的区别:
装饰器模式关注于在一个对象上动态地添加方法,而代理模式关注于控制对对象的访问。换句话说,用代理模式,代理类可以对它的客户隐藏一个对象的具体信息。因此当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例;当使用装饰器模式的时候,我们通常的做法是将原始对象作为一个参数传给装饰器的构造器。
装饰器模式和代理模式的使用场景不一样,比如IO流使用的是装饰者模式,可以层层增加功能。而代理模式则一般是用于增加特殊的功能,有些动态代理不支持多层嵌套。
代理和装饰其实从另一个角度更容易去理解两个模式的区别:代理更多的是强调对对象的访问控制,比如说,访问A对象的查询功能时,访问B对象的更新功能时,访问C对象的删除功能时,都需要判断对象是否登陆,那么我需要将判断用户是否登陆的功能抽提出来,并对A对象、B对象和C对象进行代理,使访问它们时都需要去判断用户是否登陆,简单地说就是将某个控制访问权限应用到多个对象上;而装饰器更多的强调给对象加强功能,比如说要给只会唱歌的A对象添加跳舞功能,添加说唱功能等,简单地说就是将多个功能附加在一个对象上。
所以,代理模式注重的是对对象的某一功能的流程把控和辅助,它可以控制对象做某些事,重心是为了借用对象的功能完成某一流程,而非对象功能如何。而装饰模式注重的是对对象功能的扩展,不关心外界如何调用,只注重对对象功能加强,装饰后还是对象本身。
链接:https://www.cnblogs.com/yanggb/p/10952843.html
划横线的是已经删除 hello 和 123 元素,程序按照从上往下执行,这两个已经被删除了,但是为什么list.add(“world”)的时候,hello 和123 元素还在 ?
老师我是按步骤配置的,但是打开就闪退,老师看看这个环境变量是否有问题
public class Main { public static void main(String[] args) { List list1 = new ArrayList(); list1.add("123"); list1.add("456"); list1.add("789"); List list2 = new ArrayList(); list2.add("123"); list2.add("456"); System.out.println("list1元素:"+list1); System.out.println("list2元素:"+list2); System.out.println(list1.containsAll(list2)); list1.addAll(list2); System.out.println("list1元素:"+list1); } }
运行结果:
老师,在list1.containsAll(list2)中返回的结果是true,说明list1中包含了list2中的所有对象,但是在下一行list1添加list2中的所有对象时,list1的元素个数由之前的3个变成了5个,既然包含了,为什么不是同一个对象呢?
老师,在调用第11次add的时候,空间是10+5还是10+15?
一、关于格式问题
<html> <head> <title>我的第一个html</title> </head> <body> <h1>helloworld</h1> <form action "http://www.localhost:8888/index.html method="get"> <p>用户名:<input type="test" id="uname" name="username"/></p> <p>密 码:<input type="password" id="pwd" name="password"/></p> <p><input type="submit" value="登录"/></p> </form> </body> </html>
这是用记事本写的html文件,但是在浏览器中打开时乱码
老师,我这个没法像视频;里那样使用try catch,这样可以吗?
package com.io; import java.io.*; public class TestFileCopy { public static void main(String[] args) { //数据源是文件,输入流 FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream("/Users/pain_/Desktop/text.txt"); //目的地 fos = new FileOutputStream("/Users/pain_/Desktop/target.txt"); } catch (FileNotFoundException e) { e.printStackTrace(); } int b =0;//中转站,存储读到的字节 while(true){ try { if (!((b=fis.read())!=-1)) break; } catch (IOException e) { e.printStackTrace(); } //写入文件 try { fos.write(b); } catch (IOException e) { e.printStackTrace(); } } //关闭,先进后出 try { if(fos!=null){ fos.close(); fis.close();} } catch (IOException e) { e.printStackTrace(); } } }
第20行 键值关系类型Map.Entry<String,Integer> 为什么我这个要加上Map 老师那个没有写啊
为什么不把11到13行注释掉 sql添加不进去呢
问题:老师,没有跟老师用一样的抛出异常的方法,可以吗,或者说这样写有什么利弊或者影响。下面是代码,运行是正常的!
package com.io; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class TestOutputStream { public static void main(String[] args) { //(1)搭建 FileOutputStream fos = null; try { fos = new FileOutputStream("/Users/pain_/Desktop/a.txt",true);//加一个true则如果磁盘上有文件,则在原来内容基础上进行追加 } catch (FileNotFoundException e) { e.printStackTrace(); } //(2)写数据,一次一个字节 try { // fos.write(97);//io一次 byte [] buf ="HelloWorld".getBytes();//getBytes 可以得到一个字节数组 fos.write(buf); } catch (IOException e) { e.printStackTrace(); } //(3)//关闭 try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } }
public class Main { public static void main(String[] args) { Animal a = new Dog(); System.out.println(a instanceof Cat); } }
老师,这个运行结果是false,是因为a从Animal类型转为Dog类型了,所以a是Dog类型,与Cat类型不匹配,所以是false?
为啥我这个泛型下限 show方法,输出ArrayList自定义对象 是按照数组输出呢 还每个输出三遍呢
老师这是哪不对呢
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637