
Java
danwufeiyang
这个作者很懒,什么都没留下…
展开
-
Java 单利
要支持多线程,兼顾性能,以及数据及时性,序列化。原创 2023-01-31 17:00:02 · 129 阅读 · 0 评论 -
Java 下载文件
java 下载文件原创 2023-01-05 14:58:18 · 517 阅读 · 0 评论 -
Java HashMap、Hashtable、LinkedHashMap分析
它的存储过程是:把key通过hash()方法计算hash值,然后通过这个hash值对数组长度取余(默认长度为16),这个取余后的值决定对象在数组中的位置,当数组中的这个位置有多个对象时,以链表的结构存储,JDK1.8后,数量大于8时,链表将转换为红黑树结构储存。它的默认加载因子为0.75,默认数组大小是16,当数组的容量超过0.75,当前数组容量是原创 2022-12-30 10:20:49 · 185 阅读 · 0 评论 -
Java Stream接口
Stream接口不是储存数据结构,数据源可以是一个集合,为了函数式编程创造,惰式执行,数据只能被消费一次。分为中间操作和结束操作,原创 2022-12-14 17:14:50 · 198 阅读 · 0 评论 -
Java 集合
使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。HashSet 实现基于HashMap,不允许重复,可以有一个NULL元素,添加元素时把元素作为HashMap的key储存,HashMap的value使用一个固定的object对象。Set接口继承了Collection节课,不包含重复元素,是无序的,经常使用的子类是HashSet、TreeSet、LinkedHashSet。Vector是线程安全的,适合在多线程中使用,但是效率较低。原创 2022-12-14 16:16:37 · 58 阅读 · 0 评论 -
Java NIO
Path接口:表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路径,例如/或者D:\,是否有访问的权限取决于系统。FileChannel fcOut = new FileOutputStream(new File("文件目标地址")).getChannel();FileChannel fcIn = new FileInputStream(new File("文件来源地址")).getChannel();原创 2022-12-13 16:32:24 · 88 阅读 · 0 评论 -
Java 装饰者设计模式示例
动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。涉及角色:抽象组件:定义一个抽象接口,来规范准备附加功能的类。具体组件:将要被附加功能的类,实现抽象构件角色接口。抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色接口。具体装饰:实现抽象装饰者角色,负责为具体构件添加额外功能。原创 2022-12-13 14:44:58 · 123 阅读 · 0 评论 -
Java 文件IO的操作示例
/字节缓冲流,默认的缓存是8kb,当缓存满时,会把数据写入文件,并且缓存下标置为0,重头开始覆盖数据。System.out.println("一个"+ totol + "个单词");//管道输入流应该接到管道输出流;//管道输入流包含一个缓冲区,可在缓冲区限定的范围内将读操作和写操作分离开。//如果向链接管道输出流提供数据字节的线程不再存在,则认为该管道已损坏。properties.put("key","内容");//字节数组流,基于内存操作,维护内部的数组。//合并流处理,获取要合并的流文件。原创 2022-12-13 14:06:27 · 95 阅读 · 0 评论 -
Java 对象比较 Comparabel与Comparator
Comparator 这个是一个接口,是要求自定义类去实现,按照oo原则:对修改关闭,对扩展开放,这个可以不修改原来的类进行比较。Comparable 这个是一个接口,可以强行对实现他的类的对象进行整体排序。原创 2022-12-09 15:31:42 · 200 阅读 · 0 评论 -
Java 对于String内存分析
String类在内存分析(编译期,运行期)定义在堆的常量池中,栈中地址指向常量池中地址String a = "小白猫";如果常量池中有值,则在堆中new个地址,栈中地址指向堆中new的地址,如果没有,则在堆的常量池中定义这个值,并且堆中new个地址,栈中地址指向堆中new的地址String b = new String("小白猫");这个时候a和b不是指向同一个内存地址定义在堆的常量池中,栈中地址指向常量池中地址String c = "小白猫";这个时候a和c是指向同一个内存地址String a = &q原创 2022-12-07 16:12:41 · 241 阅读 · 0 评论 -
Java内部类
System.out.println("方法内部类,可以访问到外部类的属性" + name + "但是不可以修改x");System.out.println("静态内部类,无法访问到外部类的属性name,但是可以访问静态属性");System.out.println("成员内部类,可以访问到外部类的属性" + name);int x = 10;//实际是被final修饰。内部类三种,1:普通成员内部类;原创 2022-11-29 14:05:03 · 104 阅读 · 0 评论 -
Java适配器模式
System.out.println("狗开始咬人");System.out.println("猫开始挠人");System.out.println("正在发生");System.out.println("结束发生");4、对修改关闭,对扩展开发,不要修改原来的方法.1、面向接口编程(面向抽象编程)3、多用组合,少用继承。原创 2022-11-29 11:19:16 · 372 阅读 · 0 评论 -
Java简单工厂模式举例
System.out.println("狗吃猪肉");System.out.println("猫吃鱼肉");//获取对应的实体类。原创 2022-11-29 10:54:51 · 287 阅读 · 0 评论 -
Java代理(Proxy)举例
简单举例代理的使用,其中ActionProxy和UserAction都继承接口Action。System.out.println("做工作");//多加一层做自己的事情。原创 2022-11-29 10:45:20 · 91 阅读 · 0 评论 -
Java抽象类和接口
在jdk1.8后可以有个默认的方法,需要用default修饰,可以被所有实现类继承。在接口中方法没有声明修饰符,默认为 public abstract。1、抽象类可以没有抽象方法,有抽象方法的类必须是抽象类。3、抽象类可以继承抽象类,可以不实现父类抽象方法。只能定义:全局常量、抽象方法,不能有具体的实现。2、非抽象类集成抽象类必须实现所有抽象方法。抽象类实现接口可以不实现接口的方法。接口不能被实例化,不能有构造方法。4、抽象类可以有方法实现和属性。6、抽象类不能声明为final。7、抽象类可以有构造方法。原创 2022-11-28 15:46:50 · 122 阅读 · 0 评论 -
java堆栈
对象的保存方式是,在栈中保存一段地址,指向的是堆中的内存地址,比如数组就是指向的是数组在堆中的首地址。栈是先进后出,类似弹夹,用于基本数据,临时变量,局部变量。堆用于存放对象,内存大小不固定;原创 2022-11-24 14:48:38 · 268 阅读 · 0 评论 -
Java方法中的可变参数
这里的x在方法内是数组。原创 2022-11-24 14:37:34 · 142 阅读 · 0 评论 -
Java基础数据的转换
这是因为byte占1个字节,short占2个字节,int占4个字节,long占8个字节,float占4个字节,double占8个字节,反过来存的话,没有那么多容量存会被丢弃。下面这些是可以转换的,但是有可能会丢失精度,因为float和double是浮点型类型。下面这些是可以直接转的,转换只能按照箭头顺序转,反之不可用转会丢失数据,原创 2022-11-23 10:50:52 · 201 阅读 · 1 评论