自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring的IOC(Inversion of Control)设计模式

控制反转怎么反转,谁跟谁的反转控制反转(Inversion of Control)指的是将对象之间的关系控制权从应用程序代码中翻转到框架或容器中。在传统的程序设计中,应用程序通常负责创建和管理对象之间的关系,而在控制反转中,这种关系的创建和管理被翻转到了框架或容器中。

2024-05-15 23:51:17 204

原创 英语学习工具推荐

英语复读机,英语学习工具,您可以随时输入您想要复读的英语单词、句子或者文章。我们的复读机会循环播放您输入的内容,帮助您加深记忆、提高听力和口语表达能力。不论您是在工作中需要不断重复一些英语专业词汇,还是想要熟练掌握某个英文句子,在我们的复读机上您都能够找到所需的支持和便利。我们还提供了清晰的播放历史记录,方便您追溯和管理您的学习成果。在学习过程中,您还可以打开有道词典,查找更多词汇和释义的信息。重复播放,让英语变得更简单、更易记!无论您是初学者还是想要巩固英语能力的学习者,我们都为您提供了一个高效而便捷的。

2023-10-14 12:45:34 198

原创  堆排序解析

堆排序一、简介备注:简介,代码来源,均来自于菜鸟教程:https://www.runoob.com/w3cnote/heap-sort.html,本文主要是对算法进行讲解,方便自己记忆以及大家理解。1、堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是...

2020-11-16 18:32:10 480

原创   TCP通信握手&挥手

TCP通信握手&挥手参考博文:https://www.cnblogs.com/bj-mr-li/p/11106390.html一、TCP报文结构报文解析1、序列号(4个字节)也就是大家经常看到的seq2、确认号(4个字节)也就是大家经常看到的小写的ack3、TCP首部固定20个字节 + TCP数据部分4、标记位: (A)UR...

2020-11-12 22:19:54 1074

原创 归并排序

归并排序一、时间复杂度 稳定排序算法 O(n log n)二、归并排序基本思路 归并排序主要的操作是通过递归将数据集拆分成最小集合,也就是单个数,然后从最小集合开始往上递归合并。如其名,递归分解数据及,然后将拆分后的数据及归结。如下图(图片资源,算法资源来源于:https://zhuanlan.zhihu.com/p/36075856) 动态图具体算法解析public static void mergeSortSum(int[] unso...

2020-11-12 17:24:37 145 1

原创 插入排序

一、时间复杂度:稳定算法 O(n^2)二、排序原理简述外循环N个元素需要执行N轮,内循环每一轮将一个元素插入到正确的位置。逐一比较,逐一交换值,因为已经前面的值已经是排好序的,外循环i前面的值都是已经排好序的数。 public static void insertSort(int[] unsortedList){ int len = unsortedList.length; for (int i=0; i<len;i++){ for

2020-11-12 15:13:54 73

原创 快速排序算法简述

快速排序算法简述:一、时间复杂度:1、最优时间复杂度O(n*logn)2、最差时间复杂度O(n2),倒序时,每个元素都需要交换二、排序原理简述 首先任意取一个标准值,随机取或者取第一个元素如(1,2,4,8,3)取第一个元素作为标准值 1,以1作为标准,将大于等于1的放在待排序列右边,将小于1的放在待排数列左边,然后待排数列就分割成了两个部分,然后对分割出来的两部分待排数组分别做相同的递归操作。三、算法流程(以取第一个元素作为基准)1、取第一个元素作为基准值,确...

2020-11-12 14:14:41 766 2

原创 Java 方法参数传对象时引用的不可变性

   当一个对象当做参数传递当一个方法后,这个方法可以改变这个对象的属性,这个到底是值传递还是引用传递?这个是值传递,Java只支持参数的值传递,当一个对象实例作为参数传递到方法中的时候后,参数的值就是该对象的引用。只能改变属性,并不能改变引用。对引用的修改是无效的。当传入String作为参数修改他的值的时候,为什么会不生效?因为String是不能改变的,只会生成一个新的字符串,然后将引用修改成新...

2019-01-15 16:24:54 1054

原创 Java垃圾回收机制,以及分代垃圾回收称过程(文档翻译)

     自动垃圾回收是查找堆内存的过程。识别那些对象正在使用,哪些对象没有被使用,并且删除未使用的对象。一个正在使用的对象,或者正在被引用的对象,意味着你的程序仍然保留着一个指向这个对象的指针。一个未被使用的对象,或者未被引用的对象,是不再被你的程序使用的对象。因此被无效对象占用的内存应该被回收。     在C语言当中,分配和取消内存使用是手动的过程。在Java当中,取消内存分配是被垃圾回收...

2019-01-08 11:37:12 331

原创 ThreadLocal正确打开方式

之前看了比较多的关于ThreadLocal的博客,很多说ThreadLocal会生成一个共享对象的副本。实际上这并不会生成一个对象的副本,而是同一个对象。。    private static final ThreadLocal&lt;SimpleDateFormat&gt; tl = new ThreadLocal&lt;SimpleDateFormat&gt;(){        @Ov...

2019-01-07 16:00:18 352

原创 设计模式-工厂方法MethodFactory

相对于简单工厂模式,工厂方法稍微比较繁琐。在GOF设计模式书中的定义如下:"Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses"简单...

2018-05-15 18:06:41 224

原创 设计模式系列-简单工厂模式

工厂模式,首先看下Wikipedia的描述Factory Pattern is "A factory is an object for creating other objects". Simple Factory Pattern is a Factory class in its simplest form (In comparison to Factory Method Pattern or ...

2018-05-14 17:53:42 173

原创 设计模式-装饰者模式Java实现

装饰者模式(Decorator Pattern) ,当一个对象在使用的过程中可能更换或者增加包装,就像汉堡一样,可能搞一些不同的活动而更换包装袋,但是不需要修改汉堡。这时候只需要印刷新的包装盒并更换包装盒就能完美适配新的需求,而不需要修改其他的东西。在程序的角度来说,这些需要改动的部分可能写在配置文件上,在设计的角度上,对修改封闭,但是对拓展开放,从而使得程序不会由于修改原来的代码而导致新的问题出...

2018-05-13 22:52:49 175

原创 简要的了解TCP/IP协议栈

一、什么是TCP/IP1、是供在Internet内的计算机进行通信的协议TCP协议全称(Transmission Control Protocol)IP协议全称(Internet Protocol)二、常见协议使用通信对象1、TCP(传输控制协议) 应用程序之间进行通信2、UDP(用户数据报协议) 跟TCP类似是应用程序之间的简单通信3、IP协议 计算机之间的通信三、TCP/IP协议协同工作TCP...

2018-05-10 10:09:49 1688

原创 正则表达式符号含义解析带实例

* 匹配前面的字符出现的次数为(&gt;=0),例如,go* 能匹配 "g" 以及 "goo"。* 等价于{0,}。? 匹配前面的字符出现的次数为(0次或者1次) ,go?能匹配 "g"或者"go",("goo"不满足条件,因为超过了一次)| 多个之间进行选择 [a|b|c] 在a,b,c中选择一个字符,并且只出现一次[a|b|c]*能够出现多次a|b|c如 abccc+匹配前面的字符出现次数(&am

2018-05-09 17:47:15 1730

原创 Tomcat 应用部署常用Linux命令

1. 查看线程 :                                                              ps -ef|grep  tomcat名字    (查看当前自己的项目是否在运行)2. 杀掉线程 :                                                              kill  进程id      杀...

2018-05-09 11:47:48 207

转载 Java —— 运行时栈帧结构

概述栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构。它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机里面从入栈到出栈的过程。在编译程序代码的时候,栈帧中需要多大的局部变量表,多深的操作数栈都已经完全确定了。因此一个栈帧需要分配多少内存,不会受...

2018-05-09 01:20:26 2216

转载 Jvm内存模型

一、内存模型Java内存模型,往往是指Java程序在运行时内存的模型,而Java代码是运行在Java虚拟机之上的,由Java虚拟机通过解释执行(解释器)或编译执行(即时编译器)来完成,故Java内存模型,也就是指Java虚拟机的运行时内存模型。作为Java开发人员来说,并不需要像C/C++开发人员,需要时刻注意内存的释放,而是全权交给虚拟机去管理,那么有就必要了解虚拟机的运行时内存是如何构成的。运...

2018-05-09 01:18:22 131

原创 RequestParam 注解实现参数注入

    /**      * 获取指定方法的参数名      *      * @param method 要获取参数名的方法      * @return 按参数顺序排列的参数名列表      */      public static List&lt;RequestParam&gt; getMethodParameterNamesByAnnotation(Method method) {   ...

2018-05-04 09:46:39 1933

原创 Map接口

Map接口,没有继承与Collection,作为一个常见的容器,Map 根据key映射一个value,一个map中key是唯一的,每个key只能映射一个value。常用的接口方法:1、    V put(K key, V value);Associates the specified value with the specified key in this map2、    V

2018-02-07 11:20:29 326

原创 Java Collection 集合常用容器组件用法以及区别

一、接口Collection是Java集合类的根接口,作为一个存储容器,用于存储一组对象。主要有两个继承分支,List 以及 Set。常用的接口方法有:1、int size();2、    boolean isEmpty();3、    boolean contains(Object o);4、    Iterator iterator();//Collection 接口继承自

2018-02-07 10:57:45 512

原创 Java selenium无界面爬取需要登录的页面+验证码截取+验证码识别python tensorflow

1、使用PhantomJSDriver 作为无界面浏览器插件,首先需要进入该页面,使用下面的方法进行截图//selenium截图File screenshotAs = ((TakesScreenshot) phantomJSDriver).getScreenshotAs(OutputType.FILE); 2、找到图片所在位置用于进一步截图List findElemen

2017-12-11 11:47:54 2189

原创 mybatis相关

Mybatis 1、新增Mapper       insert into userbase (id, userName, password,nickName, email,role)    values (     #{id,jdbcType=BIGINT},     #{userName,jdbcType=VARCHAR},      #{password,jdb

2017-12-07 16:05:18 293

转载 常用的8种设计模式使用场景,浅显易懂

8 design patterns that every developer should know12 SEPTEMBER 2015As a developer, you are constantly resolving problems. Many of these problems probably were already solved by other developer

2017-11-26 23:46:15 4545

原创 Java Collection框架分析一

Java 集合框架骨架,这是网上找的一个继承关系,以及类的类型都比较容易看出来的一幅图。很全面。Java集合主要包括两块,基于Collection的与基于Map的集合。从图中的继承关系可以看到接口Collection 主要包括3个List,Set,Queue 继承接口。我打算从Collection接口类开始分析,从Collection ->AbstractCollection->List->Abs

2017-11-10 15:10:00 256

原创 springMvc 返回的Html 中文变成问号??

这个是因为你集成了Velocity,需要在spring配置以下文件class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">text/html;charset=UTF-8

2017-11-08 11:03:55 3668

原创 Java 类加载 以及反射

public class Reflect { public static Car initCar() throws Throwable{ String className = "mycollection.Car"; //load Class(byte code) into JVM Memory ClassLoader cl = Thread.currentThread().g

2017-10-10 09:16:55 185

原创 IOC(Inverse of Control) & DI(Dependency Inject)

IOC 的理解,IOC控制反转,意思是对象的控制权的转变,从 (对象的使用者) (控制) (被使用的对象),转变为(Spring框架) (控制) (被使用的对象),通过注入的方式(DI dependency Inject 跟IOC是同样的意思,只是更换了一个更为友好的名词) 将对象注入到使用者的变量中。正常的代码逻辑是,谁需要使用这个类的对象,那么谁就控制着这个类的创建,使用,

2017-10-09 11:01:48 345

原创 TCP通过 JAVA Socket 实现 RPC 远程调用

RPC 实现技术主要是通过数据的序列化跟反序列话实现的,通过序列化将数据编程二进制流,将数据传送到指定的位置后需要将数据进行反序列化,反序列化后得到数据。所以这个DEMO主要实现技术是通过SOCKET-ServerSock + ObjectOutputStream实现PRC功能。这里主要有两个技术点,1是使用TCP连接保证连接的稳定,另外一个是序列化的效率问题。目前流行的两个序列化工具是 Goog

2017-09-27 18:54:57 1094

转载 maven中的groupId和artifactId到底指的是什么?

转载自百度知道一位网友的回答(略修改) 地址:https://zhidao.baidu.com/question/1639120287056394340.html侵删。具体回答如下:groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。

2017-09-25 15:07:09 1094

原创 Java interface 接口的使用理解

很多人都比较疑惑,为什么要使用接口。 在我个人理解来说,接口其实是一套协议,一套契约,是框架开发者与使用者之间的一种契约,框架开发者/架构师承诺,只要你符合我的契约,也就是实现接口那么我必然可以支持你的拓展类。当框架设计者认为这一个类需要被灵活的拓展用于适应需求,在提供一个默认的解决方案的同时,提出了这种契约,以便使用者拓展。可以看看下面的例子,就比较容易理解,接口定义的意义。框架设计者允许使用者

2017-09-21 11:57:55 1007

原创 linux ubuntu tomcat 8.0部署War包

1、首先安装JDKapt-get install openjdk-8-jdk2、下载解压Tomcat3、上传War包到指定目录4、解压war包5、进入tomcat目录下的conf目录修改server.xmlprefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%

2017-09-05 17:10:23 2636

原创 Java Volatile 原理,使用

当一个变量被Volatile修饰后,它就拥有了两种特性1、线程可见性,当一个线程修改了这个被Volatile修饰的变量,那么这个变量的变动其他的线程都能读的到2、禁止指令重排序优化。但是必须要明白,Volatile不能在并发的情况下仍然会出现并发问题,如果两个线程同时访问这个资源,而这两个线程处理的时间是比较久的。那么这个时候就出现了并发访问的问题。所以Volatile是不能替

2017-08-21 10:22:38 205

原创 Spring+Quartz 定时任务入门

主要有三个步骤:1配置Job,配置触发器,配置调度器配置一个Job-->name="simpleJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> name="jobClass" value="com.my.ssm.web.task.RegisterTask" /> na

2017-08-03 10:57:10 224

原创 常见算法练习

1、线性查找/** * 线性查找 */public void linearSearch(int value){ for (int i = 0; i arraySize; i++) { if(value == array[i]){ System.out.print("Found a value at: "+i); }

2017-08-01 09:58:15 853

原创 Spring 事务不回滚的几个原因

1、默认情况下spring事务只在发生未被捕获的 runtimeexcetpion时才回滚。  2、如果你抛出的异常时Exception,是不会回滚的,需要抛出一个RuntimeException3、如果Service的第一层方法为非事务方法,则这个方法中调用其他当前类的包含事务的方法,当发生异常时是不会回滚的。解决方法时通过BeanFactory.getBean("***");重新获

2017-07-19 14:12:26 2586

转载 Html,滑动到指定的Div/标签 未填答卷滑动

$('html, body').animate({ scrollTop: $('#div').offset().top }, 2000); 转载自:http://blog.csdn.net/iefreer/article/details/46930467

2017-06-23 10:51:44 384

原创 Java保证两个方法互斥的方式,多线程同步

1、当需要保证多个方法的互斥,需要保证有一个共同的标准作为基准,这个基准就是一个锁。当2个以上的方法需要保证互斥,需要他们获取相同的锁,当一个方法拥有锁之后,其他的方法不能够获得锁,达到互斥的作用。2、static class Bussiness{ public synchronized void subB(){ for (int j = 0; j < 1; j++) {

2017-06-22 10:55:38 4236

翻译 怎么设计一个Java框架(简单DEMO)翻译

原文地址:http://www.programcreek.com/2011/09/how-to-design-a-java-framework/你可能很好奇关于如何框架是怎么运作的,这里会展示一个简单的框架示例用于证明的含义。框架的目的首先我们为什么需要一个框架呢?相对于知识一个普通的库呢?框架的目的是定义一个让开发者实现真正的基于工业需求的方法的过程,换句话说,框架定义骨架,当需要用

2017-06-19 11:28:03 1037

原创 Js 多级查找元素

$('.test-item').each(function(){ var selectedLable = $(this).children('ul:first').children("li:gt(0)"); var title = $(this).children('ul:first').children("li:first").children('div:first'); var i

2017-06-16 16:09:54 2171

软件架构设计(带目录清晰版).pdf

软件架构设计(带目录清晰版).pdf软件架构设计(带目录清晰版).pdf软件架构设计(带目录清晰版).pdf

2017-10-10

Netty权威指南

《Netty权威指南》是异步非阻塞通信领域的经典之作,基于最新版本Netty 5.0编写,是国内首本深入介绍Netty原理和架构的技术书籍,也是作者多年实战经验的总结和浓缩。在理论方面,讲解了Netty的逻辑架构模型和核心类库的设计原理,而且对Netty在大数据、互联网、游戏行业的应用进行了深入分析;实战方面,从第一个Netty入门程序到私有协议栈的设计和开发,通过实际例程,由浅入深地对Netty的核心API和类库的功能和用法进行了细致讲解。, 《Netty权威指南》适合架构师、设计师、软件开发工程师、测试人员和其他对Java NIO框架、Java通信感兴趣的相关人士阅读,相信通过学习《Netty权威指南》,能够熟悉和掌握Netty这一优秀的异步通信框架,实现高可用分布式系统的构建。

2017-10-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除