- 博客(79)
- 收藏
- 关注
原创 上传图片流
如果不设置请求头参数,直接设置headerParams=null,就可以进行普通参数的POST请求了。* 使用httpclint 发送文件,如果不传输文件,直接设置fileParams=null,//文件传输http请求头(multipart/form-data)//字节传输http请求头(application/json)* @param otherParams 其他字符串参数。* @param headerParams 请求头参数。* @param fileParams 文件参数。
2024-03-06 15:05:48
405
1
原创 数组简单练习
1.把数组中的 0 移到末尾 /** * 把数组中的 0 移到末尾 如 0 1 2 0 3 -> 1 2 3 0 0 * 思路:遍历数组找出不为0的元素放在数组中,其余位置补0即可。 * * @param arr 指定数组 * @author Huikf * @since 19:58 2022/5/28 */ private static void removeZero(int[] arr) { int i
2022-05-28 20:00:00
198
原创 算法练习(四)
1.最长连续子数组 /** * 最长连续子数组的长度 * 定义一个计数器和最大长度 * 遍历的时候,当当前元素比下一个元素小,则count++,不然count重置为1,同时更新最大长度 * * @param nums arr * @return int * @author huikf * @since 2022/4/8 9:53 */ private static int longestArr(int[]
2022-04-08 10:02:17
189
原创 剑指offer(算法题)
03:1.数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。输入:[2, 3, 1, 0, 2, 5, 3]输出: 2 或 3/** * 查找重复的数字 * * @param arr 指定数组 * @return int 未找到返回-1 * @author Huikf * @since
2022-03-20 17:28:36
536
原创 Spring Bean的生命周期和循环依赖
Spring循环依赖@Serviceclass A{ @Autowired B b;}@Serviceclass B{ @Autowired A a;}public static void main(String[] args) { Object bean = new ClassPathXmlApplicationContext().getBean("a");}首先从main函数进入获取bean,进入到AbstractBeanFactory #
2022-02-23 16:43:12
656
原创 算法练习(三)
1.二分查找 /** * 二分查找 * * @param arr 数组 * @param target 目标值 * @return int 返回index * @author huikf * @since 2021/12/2 11:01 */ private static int binSearch(int[] arr, int target) { Arrays.sort(arr);
2021-12-02 11:02:02
119
原创 Netty入门
服务端:public class NettyServer { public static void main(String[] args) throws InterruptedException { //1.创建一个线程组,接收客户端连接 EventLoopGroup bossGroup = new NioEventLoopGroup(); //2.创建一个线程组,处理网络IO操作 EventLoopGroup workerGrou
2021-11-08 16:43:10
113
原创 NIO基础知识
IO概念BIO (Blocking I/O):同步阻塞 I/O 模式,数据的读取写入必须阻塞在一个线程内等待其完成。在客户端连接数量不高的情况下,是没问题的。但是,当面对十万甚至百万级连接的时候,传统的 BIO 模型是无能为力的。因此,我们需要一种更高效的 I/O 处理模型来应对更高的并发量。NIO (Non-blocking/New I/O):NIO 是一种同步非阻塞的 I/O 模型,于 Java 1.4 中引入,对应 java.nio包,提供了 Channel , Selector,Buffer
2021-11-05 16:20:36
156
原创 计算机组成原理
CPUCPU : Central Processing Unit,通过在计算机芯片上放置数十亿的晶体管来构建cpu,这些晶体管使它能够执行在内存中的程序所需要的计算,等同于cpu决定了计算机的计算能力。cpu的核心是从程序取得指令执行计算,分三个阶段:提取,解码和执行。cpu从系统的RAM(主存)中提取指令,然后解码指令的实际内容,由cpu相关部分执行该指令。cpu的组成:控制单元和算数逻辑单元 (ALU),接受数据输入,执行指令并处理信息,与IO设备通信,这些设备向cpu发送数据并从cpu接收数据
2021-10-31 16:14:12
214
原创 java代理
静态代理:简单代理模式,是动态代理的理论基础。常见使用在代理模式class SysOut { public void sout() { System.out.println(111); }}class SysOutProxy { private final SysOut sysOut; SysOutProxy(SysOut sysOut) { this.sysOut = sysOut; } public void
2021-10-29 17:57:30
156
原创 Linux
linux文件系统文件在linux操作系统中,所有被操作系统管理的资源,如网卡,IO设备,普通文件等等均为文件。inode硬盘的最小存储单位是扇区,块由多个扇区组成,文件存储在块中。一个块约为8个连续的扇区组成,大小为4kb,每个扇区存储512个字节。一个文件可能会占用多个块,但是每个块只能存储一个文件。文件存储在块中需要一个空间记录文件的元信息,如某个文件被分成几块,每一块的地址,创建人,权限,大小等信息,存储元信息的区域叫做inode。总而言之,inode就是维护一个文件被分成几块,记录每块的
2021-09-16 11:42:29
177
原创 Zookeeper学习
ZooKeeperZooKeeper简介是一个基于观察者模式设计的分布式服务管理框架,它负责管理和存储大家都关心的数据,然后接收观察者的注册,一旦数据发生变化,就会通知在ZooKeeper注册的观察。 作出相应的反应。ZooKeeper特点一个Learder,多个follower组成的集群,主写从读。集群中只要有半数以上的机器存活就可以工作,所以一般适合搭建奇数台服务器。(若此处搭建六台,挂断2或者3台,整个集群都不能工作。所以多搭建一台并没有保证高可用)每个server的数据都保持一致,C
2021-09-10 11:24:53
342
原创 算法练习(二)
1)两节点的最近公共祖先/** * 两节点的最近公共祖先 * 递归寻找左右节点,如果头节点等于两节点任意一个值,则说明头节点为最近公共祖先 * 如果在左右递归中分别两节点找到则头结点,则头节点为最近公共最先 * 否则说明两个节点存在左子树或者右子树中,然后遇到第一个节点等于p或q的即为最近公共祖先 * * @param root 根节点 * @param p 节点一 * @param q 节点二 * @r
2021-08-20 18:06:55
195
原创 Activiti 7流程跳转
/** * 流程跳转 * * @param taskId taskId * @param targetTaskKey 目标节点id * @throws DCCException 跳转任务异常 * @author huikf * @since 2021/3/13 12:46 */ public void jump(String taskId, String targetTaskKey) { .
2021-08-09 15:01:39
1277
2
原创 Java反射
Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;这种动态获取信息以 及动态调整对象方法的功能称为 java 语言的反射机制。package top.hkf.hblog; import java.lang.reflect.Field;import java.lang.reflect.Method; public class ReflectDemo { public static void main(String[] args) thro...
2021-07-02 11:19:11
123
原创 Validator服务端数据校验
Hibernat是Hibernate提供的一个开源框架,使用注解方式非常方便的实现服务端的数据校验。Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint(约束) 的实现,除此之外还有一些附加的 constraint。在日常开发中,Hibernate Validator经常用来验证bean的字段,基于注解,方便快捷高效。常用注解如下: **Constraint** ...
2021-07-01 21:51:44
125
原创 SSM整合Quartz及简单使用
1.依赖引入: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>${quartz.version}</version> //2.2.2 </dependency>2.创建spring-task xml文件<?
2021-07-01 21:43:03
209
原创 Mysql事务
事务事务是逻辑上的一组操作,要么都执行,要么都不执行。事务的特性(ACID): 原子性:事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性:执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性:并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的; 持久性:一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 并发事...
2021-07-01 21:40:00
128
原创 Java基本数据类型
数据类型 类型 存储大小 范围 默认值 包装类 整数型 int 4 字节(32 位) -2^31~2^31-1 0 Integer 整数型 short 2 字节(16 位) -2^15~2^15-1 0 Short 整数型 long 8 字节(64 位) -2^63~2^63-1 0 Long 整数型 byte 1 字节(8 位) -128~127
2021-07-01 21:18:02
95
转载 Http状态码
HTTP 状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的 3 位数字代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。 常见的 HTTP 状态码: 200 - 请求成功 301 - 资源(网页等)被永久转移到其它 URL 404 - 请求的资源(网页等)不存在 500 - 内
2021-07-01 21:17:16
102
原创 nginx简介
1、Nginx是什么?Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。2、三大功能1)反向代理 正向代理:特定情况下,代理用户访问服务器,需要用户手动的设置代理服务器的ip和端口号。 反向代理:是用来代理服务器,代理用户要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(服务集群模式),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。 ...
2021-07-01 21:16:12
169
原创 创建线程的方式
publicclassThreadTestextendsThread{ publicstaticvoidmain(String[]args){ //第一种 ThreadTestthreadTest=newThreadTest(); threadTest.start(); //第二种 newThread(newRunnableTest(...
2021-07-01 21:13:24
92
原创 多线程练习
线程循环打印ABC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
2021-07-01 21:11:23
157
原创 多线程工具
CountDownLatchCountDownLatch是java.util.concurrent包下一个同步工具类,用来协调多个线程之间的同步。这个工具通常用来 控制线程等待,它可以让某一个线程等待直到倒计时结束,再开始执行。利用它可以实现类似计数器的功能。比如 有 一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种 功能了。CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程...
2021-07-01 21:10:05
429
原创 类加载机制
1.类加载阶段JVM类加载机制分为加载->连接(验证\准备\解析)->初始化->使用->卸载五个部分。1.1加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法 区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理), 也可以由其它文件生成(比如将JSP文件转换成对 应的...
2021-07-01 21:09:08
143
原创 java对象的克隆
class Test extends Object { public static void main(String[] args) throws CloneNotSupportedException { Person perSon = new Person(); perSon.setAge(1); perSon.setName("张三"); Person personClone = (Person) perSon.clone(.
2021-06-07 14:43:55
139
原创 java泛型
import java.util.ArrayList;import java.util.List;/** * @author huikf * @since 2021/6/7 10:24 */public class MyTest<T> extends Sss { private T t; public T getT() { return t; } public void setT(T t) { this.t ..
2021-06-07 11:07:27
97
转载 list转map
public static <K, V> Map<K, V> listToMap(List keys, List values) {return keys.stream().collect(Collectors.toMap(key -> key, key -> values.get(keys.indexOf(key))));}
2021-01-28 15:45:35
87
原创 TCP协议
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。其中比较重要的字段有:(1)序号(sequence number):Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2)确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。(3)标志位(Flags):共6个,即URG、
2020-06-22 17:44:53
527
1
原创 JVM虚拟机
1.如何确定垃圾?1.1引用计数法在Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单 的办法 是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的 引用计数都不为0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。优点:执行效率高,程序执行受影响小缺点:无法检测出循环引用的情况,导致内存泄漏1.2可达性分析为了解决引用计数法的循环引用问题,Java使用了可达性分析的方法。通过...
2020-06-18 11:35:56
167
转载 SpringMVC
SpringMVC 使用需要在 web.xml 中配置 DispatcherServlet 。并且需要配置 Spring 监听器ContextLoaderListener<listener> <listener-class>org.springframework.web.context.ContextLoaderListener </listener-c...
2020-02-07 14:16:00
181
原创 判断点是否在面内
public class Point { /** * 是否有 横断<br/> 参数为四个点的坐标 * * @param px1 * @param py1 * @param px2 * @param py2 * @param px3...
2019-12-06 19:16:08
1788
原创 SSM对于事务的管理,基于注解
spring配置文件:<!--不扫描controller-->context:component-scan base-package="com.xx"> <context:exclude-filtertype="annotation" expression="org.springframework.stereotype.Controller"/&g...
2019-11-08 10:37:08
337
原创 ES安装使用问题
①linux 启动es, 1)切换用户 su命令(root用户不能启动) 2)bin目录启动(其他用户可能没有权限,sudo chown -R kf elasticsearch sudo chgrp -R kf elasticsearch)②ES解决跨域问题 在config下的yml配置文件中添加:http.cors.enabled:truehttp.cors.allow-orig...
2019-11-06 09:52:11
215
原创 Ckeditor文本内容的获取
CKEditor获取纯文本内容:inline模式(div包含)constcontent=CKEDITOR.instances.editor.container.getText();stand模式constcontent=CKEDITOR.instances.editor.document.getBody().getText();//取得纯文本获取带html标...
2019-11-06 09:44:16
3693
原创 ajax发送表单数据(图片上传附带其他参数)
ajax发送表单数据(图片上传附带其他参数):<scripttype="text/javascript"th:inline="javascript">functionupload(){consturl="/album/upload";constmesDesc=$("#mesDesc").val();...
2019-11-06 09:42:07
1177
原创 MybatisGenerator对于text等字段生成两个实体类
对于text类型的mysql字段,使用MybatisGenerator会生成两个实体类,用着很不方便在xml里面配置:1.conditional,默认是这种方式,当一张表只有一个主键时,不会为主键生成单独的实体类,超过一个则会生成单独的主键实体类,BLOB字段仍单独生成实体类。2.hierarchical,只要表里有主键,就会生成单独的主键实体类,其余同上3.flat,只为一张表生成一...
2019-11-06 09:39:50
1523
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人