Java学习笔记(十三)--序列化、反序列化与无参构造函数 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan概念序列化:将对象保存到磁盘中,或允许在网络中直接传输对象,对象序列化机制允许把内存中的Java对象转换成平台无关的二进制,从而可以持久的保存在磁盘上,也可以在网络中传输。 反序列化:程序一旦获得了序列化的对象,则这种二进制流都可以恢复成原来的如何实现序列化 1.Ser...
【Java】javaEE的13个技术规范 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 这段时间小编在准备面试和面试之间奔波,javaEE也放了一段时间了,再次拿起来看发现根本不明白在讲些什么,差不多能听明白的是JDBC,和这个材料的共鸣很少,不过在后边的学习过程还要继续学习,所以第一遍先了解一下是什么,在项目中实践时再去用。J2EE的13个技术规范:...
解决Onenote不能同步 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 现在已经能够体会到时间的紧迫性,经历了上次重装系统没有做好备份工作丢失了很多学习笔记,自己心痛不已。打开Onenote笔记发现我的笔记本为什么都是X呢?都更新不上提示我需要密码才能同步此笔记本,请单击此处输入您的密码。我重新输入了之后发现问题还是一样。为了避免某...
机房重构--透过查询余额看视图的应用 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan●背景 我的数据库设计时将学生的信息和学生对应卡的信息各自建立了一张表,在敲一般用户的查询余额功能时需要在窗体界面上显示的内容包括两张表的内容,所以查询的时候需要查询两张表,脑袋里就想起了自考时数据库这本书上有视图这一个方便的利器,可是之前自己从来没用过,随着机房重构几个小窗体的实现...
【Demo】一个用Servlet实现的Web项目 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan简介 一个Web项目包括前端和后端,前端是用来显示界面的,和用户交互,后端是用来处理一系列逻辑的。基本的业务流程用一张图表示: 环境配置 1.jdk,jre(如果没有配置,那就去百度教程吧!) 2.apa...
Mybatis(四)--Spring集成Mybatis 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、创建zh-root项目(用来管理依赖包的版本) 1.使用idea开发工具新建maven项目,坐标如下: <groupId>zh.root</groupId> <artifactId>zh-root</artifac...
springboot项目生产环境禁用swagger 我也是百度的,只不过怕自己之后再次使用时还需要去查,就记录一下。建立类Swagger2Config,使用@Profile区分,配置文件中配置spring.profiles.active=dev,test表示在dev和test环境开启,prod环境不开启使用@ConditionalOnProperty,配置文件中配置swagger.enable =true表示开启swagger文档,再生产环...
记一次日志优化引发的性能提升 背景阐述:1. 程序中有统一的拦截,入参,出参,请求时间的日志打印2. 接口是一个批量处理接口,一次传入200个id,然后循环处理业务,最终返回,业务接口是A循环调用B方法,其中B方法还会被一个调用量较高的接口调用,高峰期qps达到16003. 在B方法中有三种处理方式,首先,从本地缓存取,取不到数据则从redis中取,从redis取不到再从DB中取,每一种方式都打印一行日志,因此无论命中哪...
【2018.3-2018.9】年中总结:直挂云帆济沧海 1. 回顾上一次总结2018年2月份给自己定下计划如下,回顾这半年,自己更加的成熟稳重了,自己的学习计划也在稳步进行中,计算机行业,发展真的是太迅速,一旦停下学习的脚步,想再追上趋势的步伐就太难咯,这半年也在不断丰富自己的技术栈,写博客的数量也比之前要多很多,半年时间读的大多是技术类书籍,之后要扩展一下自己的知识面:思考问题时,心胸开阔,处事不惊,落落大方将思想和技术都提高层次,认真落...
List遍历,边查询边删除 1.在对集合遍历时边查询边执行添加或删除操作会报错:java.util.ConcurrentModificationException,原因是集合引用和迭代器引用在同时操作元素,通过集合获取到对应的迭代器后,在迭代中,进行集合引用的元素添加,迭代器并不知道,所以会出现异常情况ArrayList<Integer> list = new ArrayList<Integer>...
HashMap基础问题总结 1.前言2.导图总览3.参考文章4.HashMap5.ConcurrentHashMap6.hashmap线程不安全的原因7.如何判断一个链表有环8.判断两个单向链表是否相交,如果相交,求出交点。9.判断有环的链表入口点1.前言 近期看了一些HashMap方面的内容,主要对比的是1.7和1.8版本的,由于网上都有,我也是查阅了一些博客和技术公众号,特此将自...
常用linux文件操作命令 1.开关机2.文件2.1查看文件夹下的文件2.2文件类型2.3创建文件夹2.4创建文件2.5删除指定名称目录2.6创建文件2.7删除文件2.7移动文件2.8copy文件3.目录操作3.1复制删除需要添加-r命令符4.查看文件内容5.查看历史命令6.重定向7.管道8.find命令1.开关机立即关机: shutdown -h now...
分布式事务几种实现方式 1.分布式事务产生的背景2.X/OpenDTP事务模型3.Mysql事务处理过程4. 2PC协议5.3PC协议6.分布式事务的实现- atomikos7.MQ实现最终一致性7.1消息重复消费解决方案8.LCN实现1.分布式事务产生的背景根据业务需求需要对业务进行拆分,例如将一个大应用拆分成用户模块,订单模块,商品模块,每个模块都有自己的数据库,在用户...
分布式锁原理及实现 [TOC] 一、为什么需要锁?多任务环境任务都需要对同一共享资源进行写操作对资源的访问是互斥的二、分布式锁方案比较三、Redis实现分布式锁1. 单个JVM下实现代码块加Synchronized锁或者Reentrantlock锁2.分布式下实现if(setnx(key,1) == 1){ expire(key,30) ...
maven工程打版本 一、 打版本SNAPSHOT->RELEASE二、 当前代码还原成SNAPSHOT版本一、 打版本SNAPSHOT->RELEASE将项目中的所有SNAPSHOT更换为RELEASE① 项目的根目录下执行命令: cmd —>mvn versions:set -DnewVersion=1.0.2(可替换成要打的版本) ②确定无误后,将对应的jar...
登录功能:md5加密与分布式Session 1.依赖jar包&amp;lt;!--md5工具类--&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;commons-codec&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt
jemeter的使用 1.创建线程组 设置多少个并发线程,如何并发,执行几次 2.配置元件—&amp;gt;HTTP请求默认值 这里配置整个压测过程中的默认值,在这里配置了,在之后的配置项中就不需要配置了 3.新建一个Sampler—&amp;gt;HTTP请求 设置请求的方法路径 4....
SSM框架搭建(三)--整合p6spy 描述普通情况下,控制台打印出的sql是带?的,开发人员在自己调试的过程中遇到bug是再常见不过了,如果想看一下程序打出来的sql,发现参数的位置都是?,是不是很不爽,若想在数据库中执行sql,还需要手动修改sql的参数,真是麻烦,使用p6spy可以将sql格式化然后打出,打出的sql不再是带有?的,而是可以直接拷贝到数据库执行的。整合步骤如下: 添加jar包依赖 在service层...
SSM框架搭建(二)--整合swagger 描述用的多的简单方式是使用postman进行接口测试,这种测试需要开发人员自己输入url,参数等信息,使用swagger项目启动后通过swagger界面就可直接看到对应的controller及其下的接口,例如一些需要输入某个实体的参数直接就给出了model,只需要修改参数即可测试,方便,快捷。 添加jar包依赖在web层的pom文件中添加swagger的jar包依赖<...
SSM框架搭建(一)--整合mybatis,druid,dubbo 建立maven工程 - zh-plat为项目名称 - zh-root为管理jar的工程 - zh-tool为项目中公共用到的工具类 添加jar包依赖 1.日志相关slf4j-apislf4j-log4j12log4j2.web层相关依赖: spring相关spring-web(@Controller) spring-context(@Req...
安装新版git报错:autoconf: command not found 1.下载gitwget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz2.执行安装 $ tar -zxf git-2.9.5.tar.gz $ cd git-2.0.0 $ make configure $ ./configure --prefix=/usr $ make ...
Spring MVC上传 简述项目中上传和下载是非常常见的功能,如果项目中使用的是Spring MVC,那么实现上传和下载真是很简单咯。 上传1.添加相关jar包的依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;artifactId&
Spring MVC从浏览器访问到返回到页面的流程 概念简述Spring MVC是一个模型-视图-控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它负责发送每个请求到合适的处理程序,使用视图来最终返回响应结果。 Spring MVC项目想要正常运行就需要有一个前端控制器(DispatcherServlet),需要在web.xml中进行配置,其他的例如,处理器映射器,处理器适配器和视图解析器...
Spring事务管理(详解+实例) 本篇博文转自:https://blog.csdn.net/trigl/article/details/50968079#t11 写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下...
Spring的静态代理与动态代理 简述AOP是可以横向扩展功能的,能够在不修改原来代码的前提下实现功能扩展,AOP的实现原理即是动态代理+反射。 为什么要使用代理1.什么是代理 代理即是将被代理对象进一步封装后,隐藏被代理对象,在不修改被代理对象代码的前提下完成一些额外的处理。2.场景描述 有一个BookService类,其中有一个add方法,现在想在执行hello方法之前打印一句话,例如是打印”...
Java反射机制 简述Spring Ioc的原理是工厂+反射,所谓IOC即是控制反转,控制反转是一种思想,一个类想要完成一个功能,非常常见的是需要和其他对象进行合作完成,例如,分层系统中,service层调用dao层,则需要在service层new出一个dao层对象,接着使用,这种是较强的依赖管理,耦合强,一旦dao层做了更改,使用到dao层对象的都需要跟着改动,还有一种情况是多态中的使用,例如有一个水果接口,...
Spring的AOP简单使用 相关概念1.连接点(Joinpoint):类里面哪些方法可以被增强,这些方法称为连接点 2.切入点:在类里可以有很多的方法被增强,实际增强的方法称为切入点 3.通知/增强:增强的逻辑,称为增强前置通知:在方法之前执行后置通知:在方法之后执行异常通知:方法出现异常最终通知:在后置之后执行环绕通知:在方法之前和之后执行4.切面(Aspect):增强具体方法的过程称为切面...
Spring的bean管理 简单描述在未使用IOC管理对象时,想要使用某个对象需要通过new关键字创建对象实例,这种实现方式是耦合性较强的实现方式,使用了Spring提供的IOC机制管理,那么现在想获得bean该如何获取呢? bean实例化三种方式 以下例子的结构如下: 1.使用类的无参数构造创建创建一个HelloWorld类,使用默认的构造函数(无参构造)public class Hell...
Zookeeper在Dubbo中的作用及Zk集群的选举原理 Zk在Dubbo中的作用 zk在dubbo中是服务注册与发现的注册中心,dubbo的调用过程是consumer和provider在启动的时候就和注册中心建立一个socket长连接。provider将自己的服务注册到注册中心上,注册中心将可用的提供者列表notify给consumer,consumer会将列表存储到本地缓存,consumer选举出一个要调用的提供者,去远程调用。 如果...
连接mysql数据库报错:java.sql.SQLException: The server time zone value **背景** 项目使用的是springboot集成mysql,项目正常启动是不会报错的,当请求接口时报错如下:java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configur...
Redis管道--Pipeline 概念Redis客户端执行一条命令分为如下四个过程:发送命令命令排队命令执行返回结果 其中第一个和第四个称为执行一条命令的往返时间,Round Trip Time(RTT). Pipeline指管道技术,客户端允许将多个请求一次发送给服务器,过程中不需要等待请求的回复,服务端将结果都查回后,一次返回给客户端,通过这种方式能够提高吞吐量 对比分析Redis提供了批量...
Java使用Jedis:Connection refused解决方案 问题今天想自己做个demo,使用jedis连接自己安装的redis发现报错了,本能反应是查看防火墙,查完防火墙后开放端口,依旧不行,原来还需要修改一些redis本身的配置。redis配置文件中有一个bind配置,指定哪些ip可以连接到redis数据库,默认配置为127.0.0.1。具体修改看解决方案。 代码如下: public static void testUnUsed(){ ...
Redis五种数据类型 Redis简介悲观锁:在每次去拿数据的时候总是认为别人会修改数据,因此,在每次去拿的时候都会加锁,其它人想来拿就只能被阻塞。 乐观锁:心很大,每次去拿数据的时候都不认为别人会修改,在取数据的时候不会加锁,乐观锁可以理解为一种检测机制,只是在更新数据的时候会判断一下别人是否已经修改了,如果已经修改了就放弃此次的更新操作,进行重试。检测方式有两种:一种是版本号,一种是时间戳,乐观锁适用于读多的场...
java8特性--list集合根据多个字段去重 项目需求描述出于项目需要,有一个list,实体包含多个字段,当其中两个字段相同均相同时,就认为list中的两条记录是一样的,本来想通过分组实现,java8的分组只提供根据一个字段分组,只好另寻他路,java8有一个collectingAndThen可以根据多个字段去重,因为我们的需求是可以去重之后操作,因此采用这种方式。分组及去重分组classEntities.stre...
Mysql(二)--索引使用及优化 索引简介索引是什么?索引是类似于书的目录这样的结构吗?可以这么讲,但是到底索引是什么,索引是排好序的快速查找数据结构。索引最常用的类型是BTree类型,这种类型同样可以体现出索引是排好序的快速查找数据结构,没有索引之前要想查找符合某个条件的数据就需要全表扫描,这样性能是非常低的,当有了BTree类型,可以按照一定的规则进行查找,如下是BTree结构: 索引分类1. 单值索引 一...
Mysql(一)--EXPLAIN的参数解析及简单应用 Mysql逻辑架构本篇博客的主题是explain查询分析器的使用,在写这个之前非常有必要了解一下mysql的查询分析器,才不至于,在后期了解完一些mysql优化原则后与一些结果产生歧义。 1.最上层不是mysql独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构,比如,连接处理,授权认证,安全等 2.第二层包括了mysql的许多核心功能,例如,查询解析,分析,...
Java多线程学习笔记(七)--线程池 什么是线程池为了避免系统频繁地创建和销毁线程,我们可以让创建的线程进行复用,线程池是来管理线程的,线程池中总有那么几个活跃线程,当使用线程时可以从池子中随便拿一个空闲线程,当完成工作时,不用立即关闭线程,而是将线程还给线程池,方便下一个要使用线程的任务,有了线程池后,创建线程变成是从线程池中拿线程,销毁线程时变成是将线程还给线程池继续管理。 这种场景非常像在开发中连接数据库,有一个数据库连...
Redis持久化机制和线上环境容灾备份与恢复 两种持久化机制Redis支持RDB和AOF两种持久化机制,持久化功能有效的避免因进程退出造成的数据丢失问题。redis的安装在上篇博文中已经写过了,这篇文章主要用到的linux目录分别如下: a./etc/redis 该目录下存放过的是redis的配置文件 b./var/redis/6379/ 该目录下存放的是redis的持久化文件 c.在/usr/local目录下创建redis...
多线程学习笔记(六)--重入锁 重入锁重入锁可以完全替代synchronized关键字,jdk5的早期版本中,重入锁的性能远远好于synchronized,在jdk6之后,jdk在synchronized上做了大量的优化,使得两者的性能差距并不大。 ·重入锁简单使用 method1拿到锁之后执行业务代码,method2需要等待method1释放锁资源,从而保证了安全性public class UseReentr...
多线程学习笔记(五)--Volatile关键字 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan实现了变量在多个线程间可见。我在网上看了许多博客后,发现总结的都差不多,Volatile的几点特性也讲解的听清楚,所以我就不再重写,在此记录以下自己的理解。下图来自网络:1.线程在使用某个变量时,会从主内存读到线程工作内存,当没有加volatile关键字时,一旦线...
项目应用RabbitMQ简单配置 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言至于rabbitMQ的安装我就不写了,近期由于项目需求,使用RabbitMQ异步处理数据,为了数据安全,加入死信队列概念保证数据的简单安全性。这里的安全主要是,超时,处理异常这些内容,一旦程序拿到队列中的数据,处理过程中出现了异常,非常有可能导致数据的丢失。配置...
生产环境redis安装及启动方式 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言之前写过一篇博客,是如何安装和redis单机版和集群版,启动方式也是简单的启动一下,生产环境下,总不能时时刻刻提心吊胆每天检查一下redis是否启动着呢?服务器有没有意外重启等,所以在生产环境上需要更加严格,通过自动化脚本,设置开机自启。安装第二种简单的安装方式,安...
Java虚拟机学习笔记(二)--垃圾回收 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan如何判定哪些对象为垃圾对象引用计数法实现方式: 在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,当引用失效的时候,计数器的值就-1,当计数器的值为0的时候,代表这个对象时垃圾对象,可以执行回收优点: 效率高缺点:...
Java虚拟机学习笔记(一)--运行时数据区域 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言Java虚拟机在执行Java程序的过程中会把它所管理的内存划分成若干个不同的数据区域。程序计数器是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器 程序计数器处于线程独占区,Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的...
VirtualBox复制虚拟机ip冲突解决 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan1.复制已有的虚拟机将已有的虚拟机关闭或休眠,右键复制-->填写虚拟机名字,并勾选"重新初始化所有网卡的MAC地址"-->下一步,完全复制,等待复制完成即可2.解决ip冲突复制完的虚拟机ip和mac都是和之前的虚拟机是一样的,就会导致ip冲突,因此...
多线程学习笔记(四)--synchronized同步关键字 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan1.前言当多个线程同时访问某一个共享资源时,可能会出现执行结果与期待结果不一致的情况,这时候就是"非线程安全"的。解决"非线程安全"可以采用synchronized关键字锁类或锁对象,本文大部分实例来自于《Java多线程编程核心技术》2.访问对象中实例变量造成"非线程安全"...
多线程学习笔记(三)--用户线程和守护线程 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan阐述Java线程中有两种线程:①用户线程 ②守护线程用户线程:平时用到的普通线程均是用户线程守护线程:指在程序运行的时候在后台提供一种通用服务的线程,守护线程是为用户线程服务的,当有用户线程在运行,那么守护线程同样需要工作,当所有的用户线程都结束时,守护线程也就会停止守护线...
mysql索引总结----mysql 索引类型以及创建 说明:本文是转载的文章链接:我转载的地址是https://blog.csdn.net/baidu_21578557/article/details/51862278 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的...
多线程学习笔记(二)--线程的三种创建方式 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan介绍线程的创建方式主要有两种,第一,继承Thread类,重写run()方法,第二,实现Runnable接口,重写run()方法,除此之外还有一种实现callable接口,重写call()方法。继承Thread类缺点:java语言的特点是支持单继承,所以此种方式,不利于扩展...
多线程学习笔记(一)--多线程相关概念 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言究竟什么时候要使用并行呢?是什么场景都可以达到我们预想的那样高性能吗?2014年底,Avoiding ping pong论坛上,Linus Torvalds提出了一个截然不同的观点,Give it up,The whole "parallel computing is the futu...
Java学习笔记(十五)--集合 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、集合和数组的区别长度:数组长度固定,集合长度不固定 内容:数组必须存储同一种类型,集合可存储多种不同类型的数据 数据类型:数组可存储基本数据类型和引用数据类型,集合只能存储引用数据类型二、集合因为需要存储变长数据,所以集合应运而生,Java集合主要由两个...
个人提升--计算机网络原理 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 本书共九章,看完这本书我对计算机网络的工作过程和原理加深了一些理解。本书第一章先对计算机网络有一个概括,概括完之后引出OSI七层模型,之后几章分别详细的对OSI进行了详细的讲解,每一层用到的协议,每一层的作用,每一层是作用在哪一层的,如果传输一个数据需要如何走一条线,用...
Java学习笔记(十四)--Java8类库新特性 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言java8版本是变更最大的一个版本,高效运行事编译器Java虚拟机的出现,使程序员将更多精力放在编写干净,易于维护的代码上,而不用思考如何将每个CPU时钟周期,每字节内存物尽其用。面对大型数据集合,java还欠缺高效的并行操作。java8提供一些新的特性,能够支持代码在多核CP...
Java学习笔记(十二)--idea配置的jdk是1.8,依旧报错Diamond types are not supported at this language level 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 使用的开发工具是idea,jdk的版本是1.8,jdk1.7提供了菱形语法,在jdk1.7之后,声明一个泛型不需要写尖括号中的类型,否则显得多余。 之前的写法:List<String> strList = new ArrayList<String...
Java学习笔记(十一)--equals与==的区别 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言equals和==的区别如果不清楚,则很有可能会混用,导致犯一些低级的错误。equals和==在不同类型中的比较是有差别的。想要弄明白,最好先了解一下基本类型和包装类型https://blog.csdn.net/zh15732621679/article/details/784...
Java学习笔记(八)--Session和Cookie 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan由来HTTP是无状态协议,它不对之前发生过的请求和响应的状态进行管理,即无法根据之前的状态进行本次的请求处理。当登录一个系统时,因为是无状态的则登录系统后每次请求一个新的web页面不是每次都需要重新登录,就是需要在每个请求报文中附加参数来管理登录状态。无状态协议优点:不必保...
Mybatis(六)--级联删除 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan需求描述 今日需求是删除资源时同时删除与该资源绑定的角色数据,有两张表,资源表、角色与资源绑定表,级联删除的时候有两种方法:①建立表时直接建立约束,当父表删除数据时数据库会自动去删除子表中的数据,②通过代码实现级联删除,先删除子表数据,然后删除父表中的数据。通过数据库实现...
Mybatis(五)--源码分析传入单个list参数和多个list参数写法 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan需求描述 今天在做一个级联删除功能,权限中删除资源时,级联删除掉角色和资源绑定的数据。在学习mybatis的时候知道在dao层使用@param注解的原因是当传入多个参数时可能会导致mybatis不知道参数对应关系,所以需要使用@param指定参数的别名,此次删除就只有一个参数,心...
Java学习笔记(七)--抽象类和接口的异同 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、什么是抽象类 抽象类是更高层次的抽象,抽象类和抽象方法都需要使用abstract关键字修饰,类中方法是用来描述类的行为的,但有时候我们只有在运行期间才能确定确切的描述方式,这时候就需要用到抽象类。有抽象方法的类只能定义成抽象类,抽象类中可以没有抽象方法。 抽...
Java学习笔记(六)--包装类、基本类型、拆箱、装箱 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan基本类型与包装类 1.java中包括8个基本类型,与之对应的有8个包装类型,包装类是针对原生数据类型的包装 基本类型 包装类型 byte Byte...
Java学习笔记(五)--Error与Exception 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghanError 一般指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败,这种错误属于JVM无法预期的错误,这是JVM层级的错误,发生时将会导致JVM无法继续执行,将会导致应用程序中断,所以就不存在捕获异常这一说法了。所以Error不用使用try...catch捕捉Error...
Java学习笔记(四)--final,finally,finalize的区别 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言 初次一看,他们长得好像啊,但是千万不要被表象迷惑了呀!他们可不是三胞胎兄弟呀!他们分别表示什么请继续往后看。final final是一个修饰符,用来修饰变量,方法和类,分别表示属性不可变,方法不可被重写,类不可被继承,特性如下:final修饰的成员...
Java学习笔记(三)--多态 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 多态即同一个行为,可以表现出不同的形式。有多态的原因,是因为有继承,子类可以重写父类的方法,所以就可能有不同的表现形式。说到继承,多态的体现在实际编码中会有向上转型与向下转型。向上转型 子类对象转换为父类对象。/** * Created by ...
Java学习笔记(二)--组合与继承 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 继承是面向对象的三大特征之一,也是实现软件复用的重要手段,Java的继承具有单继承的特点,每个类只有一个直接父类,可以有多个间接父类。继承是一种"is-a"的关系。继承 有开发经验的人都知道继承该怎么写,我就不再重复造轮子了! 优点:...
Java学习笔记(一)--面向对象 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言 Java语言是纯粹的面向对象的程序设计语言,这主要表现在java完全支持面向对象的三种基本特征:继承,封装和多态。java语言完全以对象为中心,java程序的最小程序单位是类,整个Java程序由一个一个的类组成。 虽然抽象是面向对象的重要部分,但他不是面向对象的特征...
【2017.9-2018.2】年终总结--打破常规,放飞自我 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 这半年是不寻常的半年,和之前状态相比,这半年更精彩,项目是前后端分离的项目,项目上选择了自己不擅长的部分,做了前端,做了架构,选择了后端相对来讲业务较复杂的部分挑战自我!下面慢慢道来:技术前端:担任了前端一个模块的组长,做了四五个月的前端(中间和架构同时...
MySql学习笔记--MySql数据库表远程映射 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan需求背景 现在在做的项目分为7个服务,其中有一个单表服务,对应的数据库有一张表存储的是单表的数据,其他服务用到这张表基本是需要将本服务的表中对应的id转换为对应的name。项目初期没有分库分表,但是项目稳定一版后,架构方面考虑分库分表,这样就涉及到一个服务在开发阶段不能随意连接其他...
dubbo学习笔记(一)--简介 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan架构演进 随着互联网的发展,网站应用的规模不断扩大,常规的垂直架构已经无法应对,分布式服务架构及流动计算架构应运而生。单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(O...
Mysql--Host 'XXX' is blocked because of many connection errors;unblock with 'mysqladmin flush-hosts' 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 开发过程中需要连接一下服务器的数据库看一下数据,发现报错,连接不上,解决方案如下: 1.连接mysql mysql -u你的mysql用户名 -p你的mysql密码 2.提高允许的max_connection_errors数量 ①使用命令查看m...
PostMan测试上传文件 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan背景 遇到一个批量上传的功能,就写了一个方法,方法请求方式为POST,参数如下:@RequestParam("file") MultipartFile[] multipartFile遇到的问题 当我使用下列方式测试时报错如下:HTTP S...
Maven学习笔记系列(一)--Maven的安装 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghanjava的安装 Maven需要jdk的支持,所以使用maven前先要安装jdk,具体jdk的安装步骤就不写了。Maven的下载 可以去网上下载对应版本的,建议下载最新版本的,maven在3.5及以上的版本在dos窗口使用时都有高亮提示,如下图,可以清晰的看到是否成...
SSM框架搭建系列(二)--No converter found for return value of type 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan背景介绍 SSM框架整合Dubbo搭完之后 要测试一条完整的线,从数据库查回数据后报错找到到可转换的类型XXXentity,心想,mapper对应到实体我用了别名(typeAliasesPackage),怀疑是自己别名没写对,就将mapper的返回类型写了全路径,但是依旧...
SSM框架搭建系列(一)-- Error creating bean with name 'org.springframework.cache.interceptor.CacheInterceptor 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan背景介绍 搭建完SSM框架后,在controller层写了一个测试方法,启动项目,搭建是否成功,开发工具是idea,项目启动后,在idea的控制台没有报错信息,在浏览器有报错信息,是关于cacheManager的,由于最近在搞shiro,怀疑是不是自己误添加了相关的jar包或者引...
Shiro(2)--从零开始Spring整合Shiro 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、新建maven项目,坐标如下,打包方式为war<groupId>zh.shiro.spring</groupId><artifactId>shiro-spring</artifactId><version>1.0-...
Shiro(1)--Shiro简介 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、作用简介 Apache Shiro是一个强大且易用的Java安全框架,可以执行身份验证、授权、密码学和会话管理。二、功能简介 Authentication:身份认证/登录,验证用户是不是拥有相应的身份。 Authorization:授权,即权限认证...
Spring学习笔记(五)--Spring概述 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan为什么使用Spring? Spring是一个开源的框架,是为了解决企业级应用开发复杂性而创建的。在没有使用Spring时,在一个对象调用另一个对象时,需要程序员自己编写代码new出被调用对象实例,调用方和被调用方有很强的耦合,被调用方的生命周期需要由调用方控制。对于该问题的初步解决...
Spring学习笔记(四)--spring配置文件schema约束 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan相关概念 在使用spring的配置文件时,新添加一个配置文件就需要添加相应的约束,一直没有研究过为什么要有这些约束,这些约束是干什么的。spring在启动的时候需要验证xml文档,约束的作用就是来验证配置文件的xml文档语法的正确性。 在项目中其中的一个spring配置文件约...
版本控制--使用git上传项目到码云 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 目前开源的托管项目的平台有github和码云,前段时间在CSDN上写博客的时候发现CSDN和码云打通了,自己在写小demo的时候可能只用文字描述还不够,比较好的方式就是将代码托管到码云上,描述和代码都可以分享。作为一个程序员,要学会代码的管理,这是一个基本的修养。本来想将就一下...
Mybatis(三)--Mybatis缓存配置 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言 使用缓存可以提高获取数据的速度,避免频繁的数据库交互,尤其是在查询越多,缓存命中率越高的情况下,使用缓存的作用就更加明显了。一般提到Mybatis缓存的时候都是指二级缓存,一级缓存默认会启用。一级缓存 1.先写一个基本的mapper来创建sqlsession,...
Mybatis(二)--Mybatis的XML和注解基本用法 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan简介 Mybatis提供了两种基本用法:①XML方式,②注解方式,Mybatis3.0对比2.0版本的一个最大的变化就是支持使用接口来调用方法。使用接口会方便很多,Mybatis使用Java的动态代理可以直接通过接口来调用相应的方法,不需要提供接口的实现类,当有多个参数的时候,通过参...
Mybatis(一)--入门小demo 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan简介 Mybatis的前身是iBATIS,是在2001年发起的一个开源项目,最初侧重于密码软件的开发,后来发展成为一款基于Java的持久层框架。 Mybatis是一款优秀的支持自定义SQL查询、存储过程和高级映射的持久层框架。Mybatis可以使用XML或注解进行配置和...
linux安装及配置mycat eye可视化监控界面 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、安装jdk环境 Mycat eye依赖jdk1.7及以上的环境,首先先安装jdk二、Zookeeper环境 Mycat需要zookeeper作为注册中心,所以需要先安装zookeeper: 1.下载zookeeper,zookeeper-3.4...
Mycat+Mysql主从复制实现双机热备 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、原理简介 主从复制原理:Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。 双机热备概念:...
linux环境安装mysql 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan1.wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm Linux系统中的wget是一个下载文件的工具,用在命令行下,是World,Wide,Web和get的合称.我们经常要下载一些软件或从...
分批次插入mysql:一次性插入mysql两万以上数据造成数据库假死 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 项目距离上线的日期越来越近了,需要规范一下数据库中的数据,就需要从前端页面上导入系统数据到mysql数据库。导入3万数据,期间会有校验,最后分别插入到四张表中,本库插入3张表,云平台插入一张表,运行到一半的时候就前端页面假死了,最后通过分批插入数据解决问题,以下...
linux彻底卸载mysql 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 单点的mysql有很大的风险,一旦服务器出现了问题,或者服务器压力过大,轻则会导致用户体验度降低,重则直接导致程序崩溃。为了解决这个问题需要部署mysql双机热备+mycat实现高可用。不巧,之前测试时安装的mysql出现了问题,解决了一番无果,最简单粗暴的解决方式就是...
Angular批量上传图片 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前提 该博文使用ng2-file-upload组件实现。使用步骤 1.在module中添加引用import { FileUploadModule } from 'ng2-file-upload';@NgModule({ imports: [ ...
Spring学习笔记(三)——AOP拦截Controller将异常信息抛给浏览器 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan背景 项目在开发阶段,遇到bug是常事,对于前后端分离的项目来讲,一旦一个功能没走通,我们就需要花费时间去确认是前端出现了问题还是后端报了异常。为了提高这种工作效率,我们采用在开发阶段后端一旦出现异常,就将异常信息抛给浏览器,让开发人员一目了然是后端出了问题,是什么异常,大大提高了...
Java学习笔记(十)——方法的参数传递机制 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 在之前用C++的时候,参数传递有三种:传值,传地址值,传引用。Java中参数传递机制只有一种:值传递。值传递就是将实际参数值得副本传入方法内,而参数本身不会受到任何影响。基本数据类型参数传递 举个栗子:public class PrimitiveTrans...
Redis的简单应用 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、启动Redis(安装参考上篇博客) 1.单机版的启动命令可使用./redis-server或./redis-server redis.conf(在/usr/local/redis/下执行) 2.集群版的启动命令使用./start-all.sh(在usr/loca...
Centos7安装Redis单机版和集群 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、单机版搭建 1.安装gcc编译环境,使用命令yum install gcc-c++ 2.将redis源码上传到linux服务器(我的路径是/usr/local/tools/) 3.解压缩:使用命令Tar -zxvf redis-3.0.0.tar.gz(...
Java学习笔记(九)——数据类型和运算符 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghanJava标识符 一句话解释:标识符不能是java关键字和保留字 规则:必须以字母、_、$开头 关键字解释:java中具有特殊用途的单词被称为关键字,java所有的关键字都是小写的. java中的50个关键字包括(enum是java5新增的特性):...
angular2中ngModel绑定问题 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan ts拿到的数据结构是一个json,json中的结构是类似于数组套数组的数据结构,在页面上显示的时候是一个input框,我需要做的是将类似于[1,2,3,4]这种结构的数据循环拿到其中的1,2,3,4,然后绑定到input上,使用到的是angular2的ngModel绑定,绑...
CentOs--nginx安装及配置 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan安装准备工作 1.安装gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc,命令:yum install gcc-c++ 2.安装PCRE PCRE(Perl Compatible Regular...
Linux---another app is currently hold yum lock 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan背景 在本机新安装了一个虚拟机,由于需要安装nginx,所以需要先安装gcc环境用来编译nginx的源码,执行yum install gcc-c++命令报another app is currently hold yum lock,很明显,yum被其他进程占用了,使用一贯的作风,简...
Mybatis的分页插件 强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan简介 分页功能是非常常见的,这里的分页插件叫做PageHelper,使用之前的sql语句方式分页查询需要程序开发人员自己写全如:select * from t_user limit 1 to 10 这样的语句查出前10条,这样写是非常麻烦的,而且我们还需要查回来总的记录数,在...