- 博客(52)
- 资源 (4)
- 收藏
- 关注
原创 JVM:GC算法和收集器
JVM的垃圾会回收主要发生再堆于方法区。程序计数器,本地方法栈,虚拟机栈等线程私有的内存会随着线程的消失自动清理内存。垃圾回收算法标记清楚标记整理复制回收判断对象存活1,引用计数法:无法解决对象互相循环引用问题2,可达性分析法:从GCroot开始向下搜索,搜索的路劲就是对象的引用连,而在引用链外面的就表示为不可达对象,即可回收的对象#垃圾回收器Serial收集器Serial...
2019-11-03 12:44:41
333
原创 JVM内存结构
java内存模型图:jvm内存模型粗略得可以分为三个部分:堆内存,方法区,堆栈(线程私有)。有些地方会把方法区归为堆内存,但实际上方法区还有另一个名字叫(非堆),也会被称为永久代(但实际上也会存在GC),不过java8已经把方法区移到了元空间,存在于本地内存。堆内存可以分为新生代区和老生代区,而新生代区有Eden,From Survivor,To Survivor(8:1:1)。参数配置...
2019-10-27 21:19:32
318
原创 web容器ServletContext
ServletContext启动web容器流程:<context-param> <param-name>key</param-name> <param-value>value123</param-value></context-param><listener> <listener-...
2019-06-27 15:16:00
408
原创 Jwt初始 & session 比较
引言:最近看了一个开源项目,涉及了些比较陌生的东西,为了加深印象,做点小笔记;JWTjson web token,简单来说,就是客户端与服务器进行验证的解决方案之一;另外一种就是使用session的方式;使用原理:当客户端第一次登陆后,服务端会返回JWT格式的令牌,包含一些用户的信息,客户端则会保存这个JWT信息至Cookie或者其他数据层框架,用于下次登陆时验证。此时,服务端不需要去...
2019-06-21 23:41:02
383
原创 彻底分清简单,工厂,抽象工厂模式+优化
1. 简单工厂模式(静态工厂模式)根据客户端传入指定产品的参数,通过工厂类判断该参数,直接返回相应的具体产品向上转型对象;角色:抽象产品A:与客户端交互的抽象产品;具体产品:实现抽象产品的ProductA1 ,ProductA2,简单工厂:客户端根据工厂方法传入向的参数返回具体产品;interface ProductA{}class ProductA1 implements Pro...
2019-06-16 14:08:09
652
原创 HashMap 源码详解
A TIP看源码的经验并不多,这次刚看起来也是没有头绪,不知从何处看起,但是还是强迫自己硬着头皮看,慢慢的就有了些思路。稍微的记一下。1,类的文档注释:英语水平好的看完这个差不多就会有自己的思路去解析这个代码了。2,构造函数:构造函数一般会重载,可挑参数少的或者常用的,看看其中的成员属性的初始化。3,成员属性:这个一般会比较多,粗略的捡重要的看下,如构造器中使用的,知道下类型,初始值等...
2018-11-18 23:35:24
182
原创 SpringCloud 初认笔记(二,服务消费者)
转载请标明出处: http://blog.csdn.net/forezp/article/details/69808079 本文出自方志朋的博客本文都是按照方志朋博客学习所做笔记,作者做的很详细,也很清晰。但可能是spring cloud有东西太多的原因,包括jar包版本之类的,跟着做的时候出现了许多的问题。 在作者的博客下面也有许多的评论,提问。有许多问题我也碰到了...
2018-09-03 18:34:00
309
1
原创 spring cloud初识笔记(一,服务注册与发现)
Spring Cloud简介基于spring boot的微服务开发框架,致力于与开发人员提供快速构建分布式系统的工具。包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。组建架构 1. Eureka既是服务端,也是客户端。 Eureka Client向 Eureka Server注册发布服务 2. 外部的或内部的非spring c...
2018-09-03 15:37:38
165
原创 Caused by java.lang.ClassNotFoundException org.I0Itec.zkclient.exception.ZkNoNod
Caused by: java.lang.ClassNotFoundException: org.I0Itec.zkclient.exception.ZkNoNodeException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) at org.apa...
2018-09-03 12:00:00
951
原创 项目学习记录-Redis集群搭建以及所遇到的问题
单个redis的安装与启动:项目学习记录-Redis的安装与启动 以及redis的数据类型与存储指令:项目学习记录-缓存数据类型与持久化Redis集群有多个redis节点构成的缓存结构。每个节点通过ping-pong机制通信,客户端只需要连上集群中的任意一个节点即可。且每个redis节点的缓存数据都不相同,也不同担心其中一个节点蹦掉的问题。redis允许设置备份节点,...
2018-08-27 19:35:42
490
原创 ThreadPoolExecutor 是如何定义线程池状态与线程池中线程数量的
JAVA定义了原子变量AtomicInteger,实质就是整型数。我们知道整数类型的长度为32位,这里就将整型数包装了两个内容 - runState:高的三位表示线程池的状态, - workCount:低的29为表示线程池的工作线程数量。源码private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));...
2018-08-07 14:27:30
1923
2
原创 Socket编程
网络基础知识两台计算机进行通讯的三个条件: - IP地址,协议, 端口号TCP/IP五层模型应用层:HTTP,FTP,SMTP,Telnet等 传输层:TCP/IP 网络层 数据链路层:端口 物理层:网线,双绞线,网卡端口应用程序与外界进行交流的出口,但是每个功能必须独占一个,不能重复; 端口号范围是0-65535,其中0-1023为系统保留。 Socket实...
2018-08-01 10:08:15
188
转载 一、Intellj Idea常用快捷键
转载于:https://blog.csdn.net/kingcat666/article/details/79070681 一、Intellj Idea常用快捷键代码提示和辅助 代码简写: for(User user : users) = user.for+Tab; Ctrl + Alt+O 优化导入的类和包 Alt + Insert 生成代码(如get,set方法,构造函数...
2018-07-26 14:04:58
347
原创 JS必知必会与我的盲点易混淆点
在1995 年 Netscape 一位名为 Brendan Eich 的工程师创造了 JavaScript,随后在 1996 年初,JavaScript 首先被应用于 Netscape 2 浏览器上。最初的 JavaScript 名为 LiveScript,后来因为 Sun Microsystem 的 Java 语言的兴起和广泛使用,Netscape 出于宣传和推广的考虑,将它的名字从最初的 Li...
2018-07-25 18:21:06
263
转载 Linux查看防火墙状态
存在以下两种方式:一、service方式查看防火墙状态: [root@centos6 ~]# service iptables statusiptables:未运行防火墙。 开启防火墙:[root@centos6 ~]# service iptables start关闭防火墙:[root@centos6 ~]# service iptables stop二、i...
2018-07-12 14:13:17
15515
原创 项目学习记录-缓存数据类型与持久化
缓存数据类型value的几种数据类型:String ,Hash, Set,SortedSet,List String 设置缓存:set [key] [value] 取数据: get [key] 删除键: del [key] 查看所有key: keys * +1和-1:incr decr .在高并发时解决访问量问题。Hash: 设置缓存:hset hset hash1...
2018-07-11 18:26:41
281
原创 项目学习记录-Redis的安装与启动
1,检查是否存在gcc环境提示:gcc no input files 表示环境存在。2, 再安装c++ 环境yun install gcc-c++ centOS.3,上传 redis压缩包。4,解压解压之后make 编译。5,安装指定目录make install PREFIX =/usr/redis/ 即把安装后的bin目录复制到该目录下...
2018-07-10 21:09:56
865
原创 项目学习记录-Spring MVC注解使用
@Controller 在类名上使用,生成一个包含多个处理器的控制器。@RequetMapping 处理器映射器,规定请求路径,请求方式,默认为get请求。 处理器:@RequestMapping(“/[指定请求路径]”) 方法名可以自定义, 限制请求方法:@RequestMapping(“/[指定请求路径]”,method=”RequestMethod.[GET/...
2018-07-10 11:37:26
153
原创 Ubuntu设置静态IP
由于项目使用了dubbo和zookeeper治理接口服务,因此服务器的ip如果改变了,接口的提供方与注册方的配置都同改。 所以就想到把服务器的IP设置为静态的。安装环境VMware14.0.0 build-6661328 ubuntu-16.04.3-desktop-amd64配置网络环境VMware在默认安装完成之后,会创建三个虚拟的网络环境:VMnet0、V...
2018-07-05 15:08:45
17857
原创 监控Linux服务器状态
详细信息 top在第一行的load average是比较重要的数据,分别是服务器1,5,15分钟的负载状态。 如果三个数的平均值在5以上,表示服务器已经处于高负荷状态。 下方式服务器进程详细信息。 - 快捷键P,可按进程占用CPU的比值排序 - 快捷键M,可按内存排序 简易信息 uptimeroot@ubuntu:~# uptime 05:5...
2018-06-28 20:58:53
5001
1
原创 项目学习记录-图片服务器FastDFS
FastDFS简介这是一款C语言开发的分布式文件系统,Fast Distribution File Server,为互联网量身定制,充分考虑了冗余备份,负载均衡,线性扩容等。使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传下载服务。FastDFS架构FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker ser...
2018-06-27 20:28:48
188
原创 使用反射实现大量业务性校验
电信行业的后台接口一般会对请求参数做很多业务性的校验,并且会随时更改或者添加删除这些校验,为避免后续代码难以维护,可以使用Java的反射机制实现。使得代码逻辑清晰,通俗易懂。ServiceTest后台接口实现反射的方法public boolean dataValidation(Object o) { Class&amp;amp;lt;ExampleValidator&amp;amp;gt; e...
2018-06-27 12:31:51
513
原创 项目学习记录-Nginx
简介从物理层解决一定量高并发问题的高性能 http 服务器,反向代理服务器及电子邮件代理服务器。 这里也主要介绍使用Nginx实现负载均衡,为web项目解决高并发问题。 HTTP 服务器: 本质上也是一种应用程序,运行在服务器上,处理客户端发来的HTTP请求,返回相应的静态资源。HTTP Server 同 Nginx 本身不支持生成动态页面,但它们可以通过其他模块来支持(例如通过Sh...
2018-06-26 20:58:25
155
原创 Easy UI Tree
Easy UI Tree 树控件在web页面中一个将分层数据以树形结构进行显示。它提供用户展开、折叠、拖拽、编辑和异步加载等功能。API根据API文档描述,easy UI Tree 由用户先建立一个空的树,然后指定一个服务端获取json数据来填充树对象。eg :&amp;amp;lt;ul class=&amp;quot;easyui-tree&amp;quot; data-options=&amp;quot;url:'/
2018-06-22 14:56:02
849
原创 Order by 后面不能直接Union
同事写了一个SQLSELECT ERROR_MESSAGE, ERROR_CODE FROM CT_WBA_NEWCHECK_NEWSACODES ORDER BY ERROR_MESSAGEUNION ALL SELECT ERROR_MESSAGE, ERROR_CODE from ct_infoprod_errorcode ORDER BY ERROR_MESSAGE;结...
2018-06-21 15:24:18
2467
原创 项目学习记录-分页插件PageHelper
分页插件PageHelper 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。 该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页使用方法添加PageHelper 依赖到工程中在Mybatis配置xml中配置拦截器插件<plugins> ...
2018-06-20 21:36:50
529
原创 项目学习记录-项目测试
项目测试前后台分为了两个项目,分别会部署到两个tomcat中,那么他们之间是如何通信呢。 1. WebService,这是基于soap协议,效率不高。 2. 使用restful形式的服务:http+json。很多项目中应用。 3. 使用dubbo。使用rpc协议进行远程调用,直接使用socket通信。传输效率高本项目使用dubbo + zookeeper。使用VMware构建虚...
2018-06-20 20:20:40
344
原创 Linux系统 jdk1.8 x64安装 + zookeeper的安装
JDK1.8的安装解压缩,tar -zxvf [/所在路径/文件名] 然后编辑 /etc/profile 在前面加上jdk的环境配置。 export JAVA_HOME=/usr/jdk/jdk1.8.0_144 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_...
2018-06-19 21:29:28
780
原创 项目学习记录-项目搭建
跟着视频资源学这做一个分布式的商城项目。资源来自ITCAST. 现在应该算是第二次重新开始,因为第一次已经做出来一部分,但是后面由于工作,或者其他借口就中途停止了。 这次重新做的时候发现了好多以前不懂得问题和一些值得记录的错误。项目搭建由于视频中使用是eclipse,而我使用的Idea,所以很多地方有些会有点不一样。在项目搭建的时候,视频中搭建了三个proje...
2018-06-19 21:09:09
251
原创 StackOverflowError 异常原因
StackOverflowError之前仅知道递归方法容易出现该异常,但是我的开发代码中并没有使用到递归或者死循环。 后面发现是由于两个类相互实例化导致的栈溢出。 其实这种写法本身就是高度耦合的低级错误行为。...
2018-06-19 14:27:20
1842
转载 js跨域及解决
转自: https://www.cnblogs.com/oneword/archive/2012/12/03/2799443.html1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题. 跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说,同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,这里的同一来源指的是
2017-11-15 20:26:40
207
原创 Linux
Linux学习Linux目录结构Linux指令学习:TAB补全 / :表示根目录 cd / 可以即进入该原始根目录 ~ :表示当前用户, 1. cd:操作目录目录文件 cd usr 切换到该目录下usr目录 cd ../ 切换到上一层目录 cd / 切换到系统根目录 cd ~ 切换到用户主目录 /ro
2017-11-15 20:07:14
237
原创 mysql无法启动
记录下数据库出问题解决流程:以今天启动mysql时报的1067错误为例。 问题描述:刚开navicat时,突然发现启动不了。提供了个有个错误代码为(1067)。 我解决的流程: 首先我在任务管理器的服务选项查看了服务为关闭的。然后我在服务界面试图开启mysql服务—同样是报1067 重点: 然后知道了可以查看mysql的启动日志:在cmd中输入 my
2017-10-25 12:46:08
911
原创 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine
org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.spi.CacheImplementor]at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(Caused by: org.hibernate.cache.CacheException: net.sf.eh
2017-10-18 17:04:39
2054
原创 Struts2中,三种获取ServletAPI的方法
tip:servletAPI?就是Servlet中的一些对象啊,主要四个域对象!方法1:耦合方法使用ServletActionContext获取, 这种方法获取的都是原生态的ServletAPI! 为什么说是原生态,看方法二就知道了。HttpServletRequest request = ServletActionContext.getRequest();HttpSession sessio
2017-10-10 16:36:45
1830
原创 总结:前期的一个小商城项目
在开始这个小商城项目之前,就有开始写另一个学生系统的小项目。在学生系统上面就碰到了问题!不会打包!不知如何分类!发现每个业务都要创建一个Servlet! 例如:登录loginServlet用来处理login.jsp页面的数据。 注册registerServlet用来处理register.jsp。。 【秉承着jsp最佳实践的原则】
2017-09-27 21:48:38
519
原创 jsp最佳实践
我们一般在Servlet中开发动态资源,使用的是java代码 而在jsp技术中开发动态资源,擅长输出html代码,直接在浏览器上显示。 因此分工合作,才能更好的使用它们。在web项目中涉及到的逻辑:总结:使用jsp与servlet要有这个思想,servlet完成业务逻辑后,将jsp需要的数据设置为共享数据,jsp,则从共享域中获取数据然后负责 显示数据到浏览器,
2017-09-17 19:56:05
364
原创 记:为何我设置了session为永久保存,但是并没有什么卵用
在重启浏览器的情况下,其实不论你讲session的时间设置为多久,都无法无法获取相同的session。这个时间指的是session值在内存中保存的时间,并不是sessionid的时间。 HttpSession session = request.getSession(); session.setAttribute("list", list); //session设置
2017-09-16 11:50:52
5957
c3p0连接数据jar包
2017-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人