- 博客(21)
- 资源 (5)
- 收藏
- 关注
原创 Java HashMap、Hashtable、LinkedHashMap分析
它的存储过程是:把key通过hash()方法计算hash值,然后通过这个hash值对数组长度取余(默认长度为16),这个取余后的值决定对象在数组中的位置,当数组中的这个位置有多个对象时,以链表的结构存储,JDK1.8后,数量大于8时,链表将转换为红黑树结构储存。它的默认加载因子为0.75,默认数组大小是16,当数组的容量超过0.75,当前数组容量是
2022-12-30 10:20:49
181
原创 Java Stream接口
Stream接口不是储存数据结构,数据源可以是一个集合,为了函数式编程创造,惰式执行,数据只能被消费一次。分为中间操作和结束操作,
2022-12-14 17:14:50
195
原创 Java 集合
使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。HashSet 实现基于HashMap,不允许重复,可以有一个NULL元素,添加元素时把元素作为HashMap的key储存,HashMap的value使用一个固定的object对象。Set接口继承了Collection节课,不包含重复元素,是无序的,经常使用的子类是HashSet、TreeSet、LinkedHashSet。Vector是线程安全的,适合在多线程中使用,但是效率较低。
2022-12-14 16:16:37
57
原创 Java NIO
Path接口:表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路径,例如/或者D:\,是否有访问的权限取决于系统。FileChannel fcOut = new FileOutputStream(new File("文件目标地址")).getChannel();FileChannel fcIn = new FileInputStream(new File("文件来源地址")).getChannel();
2022-12-13 16:32:24
86
原创 Java 装饰者设计模式示例
动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。涉及角色:抽象组件:定义一个抽象接口,来规范准备附加功能的类。具体组件:将要被附加功能的类,实现抽象构件角色接口。抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色接口。具体装饰:实现抽象装饰者角色,负责为具体构件添加额外功能。
2022-12-13 14:44:58
120
原创 Java 文件IO的操作示例
/字节缓冲流,默认的缓存是8kb,当缓存满时,会把数据写入文件,并且缓存下标置为0,重头开始覆盖数据。System.out.println("一个"+ totol + "个单词");//管道输入流应该接到管道输出流;//管道输入流包含一个缓冲区,可在缓冲区限定的范围内将读操作和写操作分离开。//如果向链接管道输出流提供数据字节的线程不再存在,则认为该管道已损坏。properties.put("key","内容");//字节数组流,基于内存操作,维护内部的数组。//合并流处理,获取要合并的流文件。
2022-12-13 14:06:27
93
原创 Java 对象比较 Comparabel与Comparator
Comparator 这个是一个接口,是要求自定义类去实现,按照oo原则:对修改关闭,对扩展开放,这个可以不修改原来的类进行比较。Comparable 这个是一个接口,可以强行对实现他的类的对象进行整体排序。
2022-12-09 15:31:42
197
原创 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
239
原创 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
原创 Java适配器模式
System.out.println("狗开始咬人");System.out.println("猫开始挠人");System.out.println("正在发生");System.out.println("结束发生");4、对修改关闭,对扩展开发,不要修改原来的方法.1、面向接口编程(面向抽象编程)3、多用组合,少用继承。
2022-11-29 11:19:16
370
原创 Java简单工厂模式举例
System.out.println("狗吃猪肉");System.out.println("猫吃鱼肉");//获取对应的实体类。
2022-11-29 10:54:51
285
原创 Java代理(Proxy)举例
简单举例代理的使用,其中ActionProxy和UserAction都继承接口Action。System.out.println("做工作");//多加一层做自己的事情。
2022-11-29 10:45:20
88
原创 Java抽象类和接口
在jdk1.8后可以有个默认的方法,需要用default修饰,可以被所有实现类继承。在接口中方法没有声明修饰符,默认为 public abstract。1、抽象类可以没有抽象方法,有抽象方法的类必须是抽象类。3、抽象类可以继承抽象类,可以不实现父类抽象方法。只能定义:全局常量、抽象方法,不能有具体的实现。2、非抽象类集成抽象类必须实现所有抽象方法。抽象类实现接口可以不实现接口的方法。接口不能被实例化,不能有构造方法。4、抽象类可以有方法实现和属性。6、抽象类不能声明为final。7、抽象类可以有构造方法。
2022-11-28 15:46:50
121
原创 java堆栈
对象的保存方式是,在栈中保存一段地址,指向的是堆中的内存地址,比如数组就是指向的是数组在堆中的首地址。栈是先进后出,类似弹夹,用于基本数据,临时变量,局部变量。堆用于存放对象,内存大小不固定;
2022-11-24 14:48:38
262
原创 Java基础数据的转换
这是因为byte占1个字节,short占2个字节,int占4个字节,long占8个字节,float占4个字节,double占8个字节,反过来存的话,没有那么多容量存会被丢弃。下面这些是可以转换的,但是有可能会丢失精度,因为float和double是浮点型类型。下面这些是可以直接转的,转换只能按照箭头顺序转,反之不可用转会丢失数据,
2022-11-23 10:50:52
197
1
原创 swift WKWebView 加载内容的文字两端对齐,和图片全屏处理
swift WKWebView 加载html内容的文字两端对齐和图片全屏处理 H5
2022-03-30 15:13:06
3428
1
原创 关于树莓派3B DHT11温湿度模块 bcm2835 GPIO控制
现在网上有很多使用python脚本或者使用wiringPi库的DHT11数据获取的方法。但是很少有bcm2835 GPIO控制的方式获取DHT11数据。这篇文章也只是丰富这块的空缺。不多说,直接内容。连线方式:树莓派3b的引脚图:DHT11三个接口 VCC(电源)、GND (地线)、DATA (控制和读取时间端口)本文如上图 DATA
2017-09-05 16:47:43
1740
原创 IOS关于毛玻璃效果的使用
苹果公司在ios8后提供了毛玻璃控件就是这个UIVisualEffectView,UIVisualEffectView本身继承UIView,本身提供了几种样式:typedefNS_ENUM(NSInteger, UIBlurEffectStyle) { UIBlurEffectStyleExtraLight, UIBlurEffectStyleLight,
2017-02-24 17:04:42
520
关于树莓派3B DHT11温湿度模块 bcm2835 GPIO控制程序
2017-09-05
最全面的网站制作手册html+css+javascript+jquery+php+xml+vb+flash MX+dom+vml
2009-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人