- 博客(37)
- 收藏
- 关注

原创 浅谈Collection、Map和Set、List、HaspMap
超级接口: Iterable包含Collection、List、Set这些子接口;只有一个方法 iterator(),返回一个在一组T类型的元素上进行迭代的迭代器 Iterator<T> iterator()Collection接口父接口:Iterable子接口:List、Set部分实现类:ArrayList、HashSet、LinkedHashSet、LinkedListCollec
2017-05-25 11:10:18
309
原创 Netty总结
传统 HTTP服务器创建一个 ServerSocket ,监听并绑定一个端口一系列客户端来请求这个端口服务器使用 Accept ,获得一个来自客户端的socket连接对象启动一个新线程处理连接读socket,得到字节流解码协议,得到http请求对象处理http请求,得到一个结果,封装成一个httpResponse对象编码协议,将结果序列化字节流 写socket , 将字节流发给客户端NIO处理的HTTP服务器NIO 代表的一个词汇叫做 IO多路复用。它是由操作系统提供的系统调用
2021-10-19 00:24:00
317
原创 什么是Token(令牌)
Acess Token访问资源接口(API)时所需要的资源凭证简单token 的组成: uid(用户唯一的身份标识) 、time (当前时间的时间戳) ,sign(签名,token的前几位以hash算法压缩成的一定长度的16进制字符串)特点:服务端无状态变化、可扩展性好支持移动端设备安全支持跨域程序调用token 的身份验证流程客户端使用用户名和密码进行登录服务端收到请求,去验证用户名与密码验证成功后,服务端会签发一个token 并把这个token 发
2021-10-16 22:48:48
54888
2
原创 JAVA的有状态和无状态
1.有状态对象和无状态对象1.1有状态对象简单说,就是普通java类,带有属性,并且属性是可以修改的,也就是这种对象是可以进行数据存储的。注意属性一定要可以修改,那么这个类的实例就是有状态。也就是你拿到这个对象,有可能被人修改过,也就是可能发生过状态变化1.2无状态对象简单说,就是对象中的属性不会被更改,不管谁拿过去用过之后没有任何变化 。一般而言,spring中使用 @service注解标注的类所产生的对象就是无状态的。这里其实引出了另外一个概念,在spring中什么样的bean可以被设置为单
2021-10-16 22:12:48
2871
原创 状态机简单示例
一、状态机有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何相应来自外界的各种时间。在电商场景(订单、物流、售后)、社交(IM消息投递)、分布式集群管理(分布式计算平台任务编排)等场景都有大规模的使用。状态机的要素状态机可归纳为 4个要素,现态、条件、动作、次态。 现态 和 条件 和因, 动作 和次态 是果。现态: 指当前所处的状态条件: 又称 事件 ,当一个条件被满足,将会触发一个动作或者执行一个状态的迁移动作: 条件满足后执行的动作,
2021-10-16 18:23:09
1109
原创 浅拷贝和深拷贝
拷贝的引用引用拷贝引用变量拷贝:创建一个指向对象的引用变量的拷贝//引用拷贝Teacher t = new Teacher();Teacher tCopy = t;System.out.println(t);System.out.println(tCopy);com.entity.Teacher@4f023edbcom.entity.Teacher@4f023edb对象拷贝定义创建对象本身的一个副本被拷贝的对象对应的类要实现 cloneable 接口重写Object 类的
2021-10-16 16:46:19
113
原创 WebSocket通讯
WebSocketWebSocket的出现,使浏览器具备了双向通信的能力。HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。主要特点WebSocket可以在浏览器中使用支持双向通讯使用简单有哪些优点说到有点,先找个比较物,HTTP协议,概括的说:支持双向通讯,更灵活,更高效,可扩展性更好看到双工通讯,有小伙伴可能会想到Http 长连接,认为那个也是可以双工通讯,这个是有点不一样的。 HTTP长连接指的
2021-10-16 15:53:48
341
原创 SpringBoot总结
SpringBoot 是什么SpringBoot是Spring的子项目,看名字就知道是提供Spring的引导功能(Boot);提供了各种Starter 启动器,可以进行标准化配置:比如 spring-boot-starter-web 启动器,可以快速配springmvcmybatis-spring-boot-starter 启动器,可以快速配置MybatisSpringBoot 提供了哪些核心功能?独立运行Spring 项目Spring Boot 可以以jar包的形式独立运行,运行一个Spr
2021-10-14 23:39:18
151
原创 Java集合框架
JAVA集合,也称作容器,主要是由两大接口派生出来的:Collection 和 Map顾名思义,容器就是用来存放数据的。那么Collection 和Map 这两大接口的不同之处在于:Collection 存放单一元素Map 存放key-value 键值对Colleciton 接口Collection 接口有3个子接口:List 接口Queue 接口Set 接口List 接口List 最大的特点就是 **有序 ,可重复 **List 接口有3个实现:ArrayLis.
2021-10-14 01:22:13
126
原创 SpringMVC总结
1.包扫描SpringMVC主要是扫描 @Controllercontext:component-scan base-package="com.*.controller"/>2.启用 MVC 注解 <!-- mvc 请求映射 ,处理器与适配器配置 ,启用mvc注解 --> <mvc:annotation-driven> </mvc:annotation-driven> 如果项目中需要使用 JSON 转换器,则需要写成
2021-08-22 16:47:02
143
原创 Spring-Bean的生命周期
Bean的类型单例 多例 requet session单例:整个容器就一个多例:每个new 或者 需要注入的地方一个request/session : 请求级别 / 会话级别 ,主要是绑定请求 。比如一个收到一个 http ,产尘一个bean ,http请求结束 这个bean也就销毁了 。这种就是 request级别的。什么对象适合单例对象?有状态bean:有数据存储功能,每个用户都自己持有一个实例。在用户的生存期内,bean保持了用户的信息,即有状态。一旦调用结束或者实例结..
2021-08-22 16:13:02
219
原创 Mybatis总结
Mybatis配置.主配置文件 mybatis.xml <properties resource="jdbc.properties"/><settings> <setting name="logImpl" value="STDOUT_LOGGING"/></settings><!-- 定义别名 --><typeAliases> <!-- 指定包 包里的所有类名就是别名 类名不区分大.
2021-08-14 19:04:41
437
原创 NIO总结
NIO 是跟IO相对应的,IO是阻塞式的,NIO是非阻塞的。阻塞和非阻塞如何理解呢?以线程A为例,线程A现在需要读一个文件,这就是一个IO操作,JAVA无法直接读取文件,需要调用本地方法向操作系统申请做这个事情。操作系统收到请求后就会去做这个事,在这个期间线程A就处于一个等待状态,做不了任何事情,这就是阻塞。如果线程A采用NIO的方式来读一个文件,在读取文件的过程中线程A是可以继续其他工作的。在传统IO中,数据的传输是以流的形式进行的,有各种文件流。在NIO中数据的传输是依赖缓冲区和通.
2021-08-09 21:50:52
158
原创 JdbcTemplate 使用总结
主要介绍几种查询的特殊情况jdbcTemplate.queryForList如果没有查找到记录 ,会返回一个 size=0 的空集合 ,这主要是因为 在处理查询结果时List results = this.rowsExpected > 0 ? new ArrayList(this.rowsExpected) : new ArrayList();2.jdbcTemplate.queryForMap必须返回一条记录 ,未查找到记录 或者 查找到多条记录 ,都会报错 int siz
2021-07-16 00:26:06
786
原创 两个字符串日期比较范围
今天在改一个以前同事留下的功能时,发现比较日期字符串写得很复杂。主要是判断两个日期字符串的范围是否超过1年。因为是JS比较字符串,所以是先截取出年月日,然后依次比较年月日。写得很复杂,先判断后者年份是否大于前者,是否小于前者,是否相等,如果年份相等,则满足条件;如果大于,是否刚好差距为1,不为1则不满足条件,如果刚好为1,则一次判断月份值和日期值。代码逻辑理解起来很绕,而且还出错了。于是自己简单总结一下两种方法和可能出现的问题:转成标准日期再进行比较先将字符串转换成标准日期,再比较两者大小。Ja
2021-06-29 23:49:53
1386
原创 如何下载网页上的视频 - You-get
在知乎上遇到一个下载网页视频的好工具,还是github上的一个项目,因此记录分享一下。根据答主的介绍,这个工具支持的网站非常多:国外网站:国内网站:几乎是可以下载全站的视频了,我自己主要下载优酷和腾讯的视频。安装流程:第一步:下载安装python3.7(最新)第二步:按住键盘上的“win+R”键,在打开的运行窗口中输入“cmd”,点击确定。第三步: 输入命令(输完命令按 回车 执行命令),安装 you-get 工具pip3 install you-get第四步:
2021-06-19 23:41:27
2256
原创 日志框架总结-logback
logback 组成logback-core:核心模块logback-classis:log4j的改良版本,完整地实现了slf4j API 使你可以很方便的更换其他日志系统如log4j 或者jdk4logging ,代码层面都不需要动,直接替换jar包即可logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能从上面可知,一般情况下只需要导入logback-core 和 logback-classis ,再配合具体的slf4j 即可完成日志框架的.
2021-04-21 00:15:42
258
原创 Spring 5 基础学习二
spring 容器和 springmvc 容器的关系spring容器是父容器, springmvc 是子容器;springmvc子容器可以访问 父容器 spring 里的bean;spring 父容器不能访问子容器 springmvc里的bean为什么spring 扫描 @service , springmvc 扫描@controller@controller 是为了给servlet 用的,也就是由springmvc来处理,如果放在spring容器里,springmvc就访问不到 @Con..
2021-03-06 22:05:08
110
原创 Spring 5 基础学习一
使用BOM清单方式,确保spring依赖(直接和间接)都是相同的版本<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> 5<artifactId>spring-framework-bom</artifactId> <version>5.0.0.M5</ver.
2021-03-04 23:26:44
254
2
原创 RMI远程调用
前言前段时间查代码问题时发现应用代码中接口变量指向的实例对象是Naming.lookup(xx) 返回的,但在整个应用里又找不到这个接口的实现,当时就特别好奇,后面才了解到原来就是远程调用(RMI),今天就简单了解了一下。RMI :远程方法调用(Remote Method Invocation)。能够让在某个java虚拟机上的对象像调用本地对象一样调用另一个java 虚拟机中的对象上的方法RMI远程调用步骤:1,客户对象调用客户端辅助对象上的方法2,客户端辅助对象打包调用信息(变量,方法名),通过
2020-12-12 19:46:12
568
原创 java集合整理-List篇
接下来会整理一下集合的几个分支,List,Set和Map。主要从以下几点分别整理:1.内部结构是怎样的2.数据如何存储,如何确定存放元素的位置,存储的时候是否会自动进行排序3.对null值的处理,4.是否支持手动排序,如何排序5.如何扩容6.是否线程安全,查找和存储的优缺点7.如何遍历和修改元素内容8.一些特殊的方法9.适用场景List家族List接口继承于Collection 接口,主要实现有ArrayList 、 LinkList、Vector 3个实现类ArryList 1
2020-05-28 01:03:07
243
原创 Css知识点总结
1.引入 css 文件外部样式 <link rel="stylesheet" href="css/index.css" type="text/css">导入样式 <style> @import url("css/index.1.css"); </style>选择器关于 a 标签的伪类选择器link 未被访问的状态v...
2019-06-25 23:30:04
123
原创 浅谈Java数据结构和算法
数据结构分类:线性结构和非线性结构问题一:什么是线性和非线性;我个人的理解是:数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构;线性结构包括:数组,链表,队列,栈;非线性结构包括:树,图,表;详解:一.线性结构1.数组特点:我们都知道数组中的元素在内存中连续存储的,可以根据是下标快速访问元素,因此,查询速度很快,然而插入和删除时,需要对元素移动空间,比较慢...
2019-06-24 22:32:08
141
原创 如何衡量一个算法的好坏
引文我有个朋友有算法强迫症,每次一看到别人写的算法,就有上去改的冲动,不然就会偏头疼,主要症结在于他认为别人写的算法不好,但是什么的算法可以评判为好,什么样的算法可以评判为不好?最近为了治愈他,我特地写了这篇文章。算法的衡量从两个方向出发:时间复杂度和空间复杂度。本文主要是不讲具体算法,只将算法的衡量,重点讲解如何衡量算法的复杂度,解决平时见到的XX算法时间复杂是O(logn)O(log...
2019-06-24 22:28:06
5321
原创 Oracle数据库关于权限、用户的理解
文章目录Oracle数据库关于权限、用户的理解1.权限2.用户3.关于Oracle 认证用户方式Oracle数据库关于权限、用户的理解1.权限“SYSDBA”权限,即数据库管理员权限,权限包括:打开数据库服务器 关闭数据库服务器备份数据库 恢复数据库日志归档 会话限制管理功能 创建数据库“SYSOPER”权限,即数据库操作员权限,权限包...
2019-04-22 22:44:44
397
转载 maven POM文件详解
http://www.blogjava.net/hellxoul/archive/2013/05/16/399345.htmlhttp://blog.csdn.net/houpengfei111/article/details/91428691.前言Maven,发音是[`meivin],"专家"的意思。它是一个很好的项目管理工具,很早就进入了我的必备工具行列,但是这次为了把project1项...
2019-04-22 22:43:50
3650
1
转载 eclipse命令大全
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)...
2019-04-22 22:24:43
1169
原创 关于List的复制问题
关于List 复制的问题缘由缘由今天开发自助柜面跨行转账时遇到的list的坑,从Var 中获取list 集合List&amp;lt;Map&amp;lt;String,String&amp;gt;&amp;gt; mulitilable=var.getDataValueAt(&quot;mulitilable&quot;);Iterator it=mulitiable.iterator();
2018-12-12 23:28:59
1864
转载 IO流总结
一、IO流简介:流的定义:流是指一连串流动的字符,是以先进先出方式发送信息的通道。按流向分:输出流:OutputStream和Writer为基类 ...
2018-09-09 00:09:43
189
转载 Java异常分类
Java Exception:1、Error 2、Runtime Exception 运行时异常 3、Exception 4、throw 用户自定义异常异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_Runtime...
2018-09-08 20:54:51
171
转载 java反射常用方法
反射,是在java中非常有用,在框架中也经常接触的一种方法,所以反射是在开发中必须会的东西 所谓反射,就是给你一个XX.class文件,你通过反射方法,能够拿到该XX类相关的所有资源,比如该类所在位置,通过该类创建一个对象x,获取这个类X创建的对象x的所有公有、私有属性和公有、私有方法。这个技术你值得学习。 首先,我写了一个TestClass.java文件,作为编译成class后要使用的Tes...
2018-07-18 09:45:37
732
原创 JVM调优
以下配置主要针对分代垃圾回收算法而言。堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典...
2018-07-18 00:21:14
115
转载 JVM学习
Java Virtual MechineAbout JVM内存划分堆内存分配 VM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指 定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到...
2018-07-18 00:17:43
153
原创 JAVA虚拟机原理
快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ctrl + G提升标题 Ctrl + H有序列表 Ctrl + O无序列表 Ctrl + U横线 Ctrl + R撤销 Ctrl + Z重做 Ctrl + ...
2018-07-18 00:01:50
4466
2
原创 Cookie设置
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 Java中把Cookie封装成了javax.servlet.http.Cookie类。每个Cookie都是该Cookie类的对象。**服务器通过操作Cookie类对象对客户端C
2017-07-25 09:16:25
382
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人