自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(226)
  • 收藏
  • 关注

原创 Java 深度克隆和浅克隆

在实际饿使用中,克隆对象的情况比较少,大部分情况需要的是属性的赋值,大部分情况使用的BeanUtilsPART ONE:概念深度克隆: 两个对象是完全独立的两个对象。浅克隆: 对于基本数据类型和String类型的数据,直接赋值一份给新的对象,但是对于其他类型的属性,仅仅是复制一份引用给新的对象,所以原始兑现和新的对象中的非基本数据类型的属性指向的是同一个对象。两个对象在有非基本数据类...

2019-12-16 17:08:21 316

原创 同步工具类/CountDownLatch/CyclicBarreir/信号量

同步工具类:通过自身的状态,方法协调线程的控制流。阻塞队列就属于同步工具类,还包括信号量,栅栏以及闭锁。闭锁式一种同步工具类。可以延迟线程的进度知道其达到终点状态(《java 并发编程实战》中的定义)。闭锁形象的可以理解为一扇门,当满足某个条件的时候门打开。常用于确保某些活动在其他活动都完成之后执行。CountDownLatch 是一种灵活的闭锁的实现,内部有一个计数器。常用的方法:在构造Co...

2019-10-31 12:50:15 310

原创 redis3 持久化RDB /AOF

redis 的持久化 : ADB ,AOFredis 是一个内存数据库,如果不想办法将内存中的数据持久化到磁盘中,那么在数据库断电或者其他被迫结束的时候数据库的数据就失去。所以一定要将内存中的数据以一定的策略持久化到磁盘上RDB :将一段时间间隔之后的内存快照(snapshot)保存到磁盘中;恢复数据的时候将数据从磁盘中从新读到内存中。有关这一部分的配置:SNAPSHOT如何触发RDB...

2019-10-22 17:01:38 299

原创 Redis6 Java 使用Jedis

基本操作:事务操作:在进行Redis 操作的时候还可能会出现一个问题,内存的速度太快导致,几次运行结果不出来,或者和你的修改不一致,注意:这不是错误只是内存的执行太快,还没有到缓存中。在使用的时候首先要想到连接池,不要频繁的new 连接单例线程安全写法:(大概looklook…)public class JedisPoolUtil { private static volatil...

2019-10-21 21:01:26 1025

原创 Redis5 主从复制

主从复制,读写分离主机数据跟新后根据配置和策略自动同步到备机的master/slaver 机制。Master 以写为主,Slaver以读为主。使用方法:配置从库不配置主库命令:slaver 主库IP 主库端口配置文件细节进行复制的模式主从复制:从Reids 执行 命令知乎会复制master 在Slaver 执行命令的时间节点前的所有数据,然后以添加的方式复制时间节点之后的所有数据...

2019-10-21 19:49:19 200

原创 Redis4 事务

Transaction概念上和之前在Mysql中讲过的事务没有什么太大的区别: 将一系列的操作原子化,使他们串行化的执行。相关命令:Discard #取消exec # 执行事务multl # 标记开启一个事务,返回OK 表示redis 接收到了这个事务开启的通知watch key (key...) : 监控某个或者某些key unwatch : 取消watch 的监控事务执行的...

2019-10-20 22:15:17 201

原创 Redis 2 redis 配置文件redis.conf

在对redis 配置文件进行修改的时候要进行备份https://raw.githubusercontent.com/antirez/redis/3.0/redis.conf一: 对单位的定义# Redis配置文件样例# Note on units: when memory size is needed, it is possible to specifiy# it in the u...

2019-10-20 12:42:55 140

原创 mysql高级4 锁机制

锁是有利有弊的,当一个表锁住之后其他的访问将无法进行。但有时候也要防止对数据库的修改。 在数据库中可以使用锁对有限的资源进行保护,解决隔离和并发的矛盾。锁的分类对数据的操作来分1. 读锁(共享锁) 针对同一份数据,多个读操作可以同时进行而不互相影响2. 写锁(排他锁) 当前的写操作没有完成前,会独断其他的读,写操作按照锁的粒度分;表锁;行锁从加锁,加锁速度,死锁,粒度,并发性能来...

2019-10-16 14:56:33 276

原创 Mysql2 索引

导致sql 语句执行慢的原因导致sql 执行慢的原因有很多,不一定是sql 语言的问题,但是在这的讨论默认为就是sql 语句导致的。一般有以下两方面的原因:sql 的执行时间长:sql 语句写的太烂索引失效:建立了索引,但是没有使用关联查询有太多的join等待的时间太长SQL 的执行顺序:自己写sql 语句的顺序:命令词,FROM ,ON,WHERE,GROUP BY,HAVI...

2019-10-12 15:54:44 165

原创 Spring Boot +Jpa 报 Specified key was too long; max key length is 1000 bytes

自己在写项目的时候使用的springboot 2.1 所以会遇见一些spring boot 不同版本会出现的问题原因Spring boot 2.x默认使用的mysql 引擎为myisam,但是Spring boot2.0之前使用的是InnoDB,Spring boot2.0之后默认使用的是myisam引擎。然后在新建表的时候。就出这个错了解决:再配置文件中配置:database-pl...

2019-10-11 21:10:48 802

原创 Mysql的高级性能1(架构)

数据库的逻辑结构:Mysql 插件式的存储引擎将查询处理和其他的系统任务以及数据存储提取分离连接层:实现与数据库的连接,比如:JDBC服务层:完成核心服务,缓存查询,sql 分析优化,是否使用索引都在这一层完成引擎层:真正负责Mysql 中数据的存储和提取。不同的存储引擎有不一样的功能,Mysql 中主要使用的是 MyISAM /InnoDB存储层:将数据运行在裸设备的文件系统上,并...

2019-10-09 19:22:03 243

原创 并发编程2 对象共享

同步(加锁) 的意义仅仅局限于实现线程间的互斥行为,还包括可见性为什么会有可见性这一说,这和JVM的内存模型有关:所有变量都存储在主内存中,每个线程都有自己独立的工作内存,里面保存该线程使用到的变量副本,即主内存中该变量的一份拷贝。线程对共享变量的所有操作必须在自己的工作内存,线程间变量值的传递需要通过主内存来完成。在多线程的程序中,每个线程有自己的运行空间,没有同步,各个线程之间的状态...

2019-09-23 17:19:52 133

原创 并发编程1 基本概念

线程安全:线程和锁关注的是对象或者静态域中的数据,一个对象是否安全取决于它是否被多个线程访问。在Java中使用同步机制来控制线程对对象的访问。访问一个变量的代码越少,就越容易保证访问都实现同步程序的封装状态越好越容易实现线程安全性并发编程时正确的编程思想:先保证代码的正确运行,再根据需要提高速度...

2019-09-21 13:56:29 169

原创 java web 中并发访问的线程安全

前言:最近在学习《Java并发编程实战》 感觉是有一定的难度。正在努力的理解如何编写多线程安全的程序。发现线程不安全的核心:对共享数据的修改这就联想到了 Java web ,web 所在的环境就是高并发的,那么如何在高并发的环境下保证自己的web 项目是安全的???一:web服务器 接收请求时的线程情况web 服务器处理请求的几种模式:收到一个请求就处理,此时不能处理其他的请求,直...

2019-09-18 17:23:25 552

原创 JVM4 类加载/类加载器

程序的class文件是程序编译的产物,虚拟机把描述类的数据从Class文件加载到内存中,并进行数据校验,转换解析和初始化,最终形成可以直接被虚拟机使用的Java类型------这叫虚拟机的类加载机制。一些语言在编译的时候需要进行连接工作,但是Java中,类型的加载,连接和初始化都是在程序运行期间做的。类的生命周期类从被加载到虚拟机开始到卸载出内存为止,整个生命周期:加载,(验证,准备,解...

2019-09-10 21:31:39 186

原创 JVM3 安全点/安全区/垃圾回收器

PART ONE:HotSpot的算法实现枚举根节点:可达性分析找引用链的过程,可以作为GCRoot 节点的引用,一本为全局引用(静常量或者静态引用)和执行上下文(栈帧中的本地变量表),要逐个检查里面有没有引用,势必会消耗很多时间可达性分析的敏感点在于时间的停顿,因为再进行这项操作的时候必须要保持一致性,”一致性:“整个执行系统看起来象被冻结了一样停顿早某个时间点,不可以出现在进行可达性分析...

2019-09-10 10:47:11 688

原创 JVM2垃圾回收算法

JVM 运行时分区中,虚拟机栈,本地方法区,程序计数器。都是线程私有的,它们随线成生而生,随线成死而死,所以只有Java堆和方法区是需要内存回收的。虚拟栈每一个栈帧在入栈之前(方法运行时入栈)所需要的内存大小在类的结构确定时就已知。到那时堆和方法区不同:例如:一个接口有哪些实现,那些实现需要的内存是不一样的,一个方法中的多个分支需要的内存也不一样,只有在程序运行的过程中才知道到会创建那些对象,这...

2019-09-07 20:10:59 168

原创 JVM1 内存模型/对象访问定位

.java .class(字节码文件)javac : 编译指令Javadoc 指令:它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。javadoc命令是用来生成自己API文档的,使用方式:使用命令行在目标文件所在目录输入javadoc +文...

2019-09-06 11:16:03 156

原创 Redis 1 5种基本数据类型

Redis : Remote Dictionary Server 远程字典服务器一个高性能的key/value 的分布式数据库,满足了CAP中的CP两项特征特点:内存的存储和持久化:异步的将内存的数据写到硬盘上,并且不影响程序的执行生产环境下的redis 都是在linux 环境下运行,读写每秒高达几万次,这也说明了为什么他是一个分布式的数据库,用于海量数据的处理https://gith...

2019-09-03 20:02:27 334

原创 Spring5.1 Spring整合ORM框架

数据的多样性,导致我们对数据访问的需求更多,出现了ORM框架ORM框架:对象关系映射 框架。可以将代码中的对象映射到数据库中Spring 可以整合多个ORM 框架,并且SpringData JPA 的底层实现是由Hibernate 实现 这篇笔记的主要目的是为了hibernate 的了解,在springBoot 中使用数据ORM框架是SpringData JPA但是JPA的底层实现是...

2019-08-25 20:47:13 388

原创 Spring 4.1 Spring中的事务处理

Spring 有一整套的事务管理机制,开发人员在使用的时候不用了解在在底层是怎么实现的。可以使用这样的事务机制,处理各种情况下的事务处理PART ONE:注解实现事务在spring中不同的操作有不同的事务管理器JDBC事务管理器: DataSourceTransactionManagerHibernate 对应的事务管理器:HIbernateTransactionManager......

2019-08-25 14:28:02 152

原创 spring 3.1 Spring 对JDBC的支持

PART ONE:JdbcTemplate一:在xml 文件中配置数据源,和数据库的相关信息。并且配置spring 的JdbcTemplate!--配置数据源--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> &l...

2019-08-24 16:33:07 200

原创 Idea 使用Spring+Maven

因为本人真的很讨厌引入jar 包,而且一般引入jar 包的时候都要引入很多,jar 包找起来也很麻烦。所以项目更喜欢使用maven 然后添加所需要的依赖一:创建项目创建maven 项目,选择quick 这一项。其实你也可以不勾选Creat from artchetype 这个选项。项目创建好之后再自己构建项目的目录结构就行(目录结构和使用idea 创建的SpringBoot 的目录结构是...

2019-08-23 19:47:29 252

原创 Spring 2.2 AOP/AspectJ 注解实现使用

在Spring 实现通过XML文件配置使用面向切面编程AOP

2019-08-23 17:06:49 139

原创 Spring2.1 AOP/ApsectJ 注解实现使用

AOP 面向切面编程,和IOC/DI 是spring 的两大基石PART ONE场景:一个计算类(方法包括:加减乘除),要求在方法调用的时候打印此刻执行的方法名和参数一: 动态代理在开头的场景中如果,我们用最原始的方法完成需求,那么在每一个算术方法中都要写相应的打印语句,并且当要求的日志输出变多时,打印语句(日志语句)将会远远多于函数的核心代码,这样的代码维护何修改都十分麻烦...

2019-08-21 15:42:11 254

原创 在Springboot 项目中使用Junit单元测试

在编写程序的过程中我们需要进行很多的测试,Junit单元测试一:导入依赖使用idea 创建一个新的springBoot 项目时,一般会自动导入test 依赖,如果没有请手动引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring...

2019-08-20 20:39:02 1327

原创 Spring1.2 工厂/注解配置Bean

PART ONE 工厂配置通过工厂方法,FactoryBean 的方法配置Bean一:静态工厂方法静态工厂方法完成Bean 配置:通过直接调用某个类的静态方法就可以放回Bean实例测试代码:1. Bean 对应类:public class Car { private String name; public String getName() { ...

2019-08-17 20:55:06 393

原创 spring1.1---创建Bean /配置Bean

PART ONE重点: Bean IOC() AOP(面向切面编程)轻量级:非 侵入性的。不是jar 包的大小,而是使用spring 开发不用去实现spring 为我们提供的接口,不依赖spring 的API依赖注入:面向切面编程容器: 包含并管理应用对象的生命周期一站式: 可以整合各种优秀的第三方框架(spring 自身提供类优秀的展现层 springMVC 和持久层 sprin...

2019-08-03 17:13:52 261

原创 SpringData JPA 使用

主要记录实际使用自定义的Repository 继承JpaRepository,对他自己映射的这个数据表的基本操作在JpaRepository 中都有定义,使用的时候直接使用就行查询使用方法名构造的方式使用注释@Query更新/修改值得一提的是save 既是添加又是修改(更新),判断的依据就是你是否传递了id@Modifying 和@Query 相结合完成更新数据的操作删除...

2019-07-25 17:26:21 1271

原创 ShareBook 网站的总结

ShareBook 是一个基于书本分享的网站,网站实现的基本数据的展示和简单的数据增删改查,个人数据的管理。对于社区的板块展示设计的比较简单,自己在后期有时间的时候想做成一个类似CSDN的可交流的博客社区。负责内容:后端和前后端的数据交换板块总结的主要内容:项目的思路,遇到的比较典型的问题,可加以完善对的部分一:网站的设计思路...

2019-07-22 16:41:38 725

原创 Spring 绪 / 阶段学习的间隙自己的一些想法

之前自己的学习是从javaEE 直接开始学习springBoot 原本设想的是在学习 spring boot的过程中,哪里不会再去进行了解和学习,但是springboot 本就是基于spring spring MVC 之上的封装,在学习的过程中感觉自己完全不知道该写些什么,就局限于一些技术点的地方,而且在有些概念的理解上还是存在一些问题,思维就像进入了一个瓶颈。所以决定还是要完整,细致的学习sp...

2019-05-15 22:21:39 180 1

原创 Nosql 分布式数据库

非关系型数据库

2019-05-07 18:18:09 2369

转载 阿里云esc 服务器购买使用,超详细教程

个人觉得这篇博文超级好,超级详细,对于从没有使用过远程服务器的小白菜(me)超级友好阿里云针对大学生推出了一系列的优惠活动可以帮助大学生更便宜的购买服务器(只需要9.9元/月哦)接下来,就教大家如何购买并搭建服务器哦第一步:进入阿里云选择最新活动–> 选择特惠专区–>选择学生特惠点进去哦第二步:进去之后,切换至云服务器esc按照提示流程来要求登录,可以支付宝账号登录,...

2019-05-04 10:31:56 5583

原创 Git/bitbuck/github超详笔记

一:基本介绍1.干什么:版本控制,多人协作2. git 和git github 的关系:球与球场Git 安装Git工作流本地远程仓库[github]分支管理标签管理二:实际操作官网下载和电脑匹配的版本,安装(可以自己修改安装位置,其他疯狂next)设置自己的用户名和邮箱开始---Git Bash命令行git config --global user.name ...

2019-04-29 22:14:54 647

原创 springboot项目热部署

关键词:分布式开发 ;微服务;springboot /热部署–提高开发效率热部署的需求场景:本地调试时因为改动了一行代码而要重启本地服务器因为本地代码的修改,而要将代码重新上传到服务器,重启服务器优点:无论是线上还是线下适用无需重启服务器,提高开发效率,节约时间Java热部署和热加载的联系不需要重启服务器编译/部署项目都是基于就Java的类加载器实现的区别:部署方式:...

2019-04-28 21:54:32 613

原创 Spring4.0 读书笔记六:REST

REST:面向数据资源,强调的是资源;之前的一些知识面向的都是程序的处理和行为将资源以最适合的状态在客服端和服务端之间传递REST 中也有行为:HTTP的方法定义:GET/POST/PUT/DELETE/PATCH@RequestParam 处理content-type= application/x-www-form-urlencoded编码的内容。(Http协议中,如果不指定Conte...

2019-04-28 18:35:38 147

原创 Controller之间的重定向

Java中原生的重定向和请求转发重定向:response.sendRedirect(url) 如果有参数,就只将参数拼接在url 上请求转发:request.getRequestDispatcher(url).forward(request,response) 请求转发的参数一般存放在request 域中在spring 中提供的重定向的方式(当然可以使用原生的重定向)主要介绍带参的重定...

2019-04-27 22:30:58 4224 3

原创 servlet.ServletException: Circular view path [tget]: would dispatch back to the current handler URL

异常发生的情景:使用RedirectAttributes 传递参数完成重定向开始在网上搜索解决的办法:都是视图与path 重名导致,但是我的代码没有那样的错误最后找到一个解决办法:当目标Controller的返回值为void 时,要在目标Controller的参数列表中带上参数HttpServletResponse就可以了...

2019-04-27 12:09:15 626

原创 使用@Query 出错Column 'book_id' not found.

没有使用别名,查询语句对应的数据表里面也有book_id这个列名,但是却出现了这样的错误,一开始找到的解释基本都是使用别名,但是我没有使用别名原始代码:@Query(value = "select id,comment = ?",nativeQuery = true) public List<Comment> getCommentByBook_id(@Param("boo...

2019-04-25 11:24:44 1115

原创 数据校验Hibernate-validator

数据校验是很重要的,数据不正确程序都跑不起来数据校验分为前端和后端的数据校验,前端数据校验主要是判空校验,作用明显但是在数据逻辑处理上真正的用处并不大数据校验在后端程序中在Service 结构层中完成(精简Controller层);其实大部分的业务逻辑都在Service 中完成后端数据校验:主要是使用在javaBean 和Controller 中一.JSR303JSR303 :是J...

2019-04-20 21:52:40 315

空空如也

空空如也

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

TA关注的人

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