自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (1)
  • 收藏
  • 关注

原创 logback 打印mybatis sql mybatis 日志打印sql语句和返回结果

logback 打印sql语句:在logback日志文件中开启debug模式<logger name="com.ibatis" level="DEBUG" /><logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" /><logger name="com.

2018-11-19 16:35:02 7575

原创 mysql 数据类型 高性能mysql笔记

1.选择优化的数据类型更小的通常更好。​ 应该尽量使用可以正确存储数据的最小类型,更小的数据类型通常更快,因为他们占用更少的磁盘,内存和CPU缓存,并且处理时需要的CPU周期更少。简单就好​ 更简单的数据类型的操作通常需要更少的CPU周期。例如,整型数字比字符操作代价更低,因为字符集和校对规则(排序规则)使字符比较相对整型数字比较更复杂。比如,应使用INTERGER存储IP地址(i...

2018-11-16 18:37:12 247

原创 mysql 复制 高性能mysql笔记

 mysql 复制的两种方式     1:行复制(对于网络延迟比较高的行复制也可以工作(因为基于行复制所以不会受到复制延迟带来的语句错误影响),行复制数据多会对宽带造成压力。    2:语句复制(也称为逻辑复制)    mysql的复制是向后兼容(向前不兼容)的新版本的数据库可做为老版本的备库        复制可以解决的问题    1,数据分布        ...

2018-11-16 16:49:19 486

原创 js long 类型显示异常 js数字类型显示异常

在后台数字是2074663370879505792到前台数字式2074663370879506000 导致前台显示错误的的原因是 js number 最大值 是2的53次方减1 而后台传递的参数大于number的数值导致显示错误可以传递一个string类型的来避免...

2018-11-15 14:05:46 1836

原创 xml 转义符 xml小于号 mybatis 小于号

 xml 和mybatis 转义符: 原符号   <    <=    >    >=     &      '       " 替换符号 < <= > >= & ' &...

2018-11-01 14:50:38 494

原创 jquery 根据select 的值获得文本 jquery 根据select 的文本获得值

  jquery 根据select 的值获得文本 :$("#selectId option[value='optionValue']").text()   jquery 根据select 的文本获得值:$("#selectId option[text='optionText']").val()

2018-11-01 14:46:29 2226

原创 idea大小写切换快捷键 idea大小写转换快捷键

ctr+shift+u

2018-10-26 11:50:52 56705 3

原创 mysql 索引 高性能mysql笔记

索引     索引的使用     索引优化索引的优点索引可以让服务器快速定位到表的指定位置。最常见的B-Tree索引,按照顺序存储数据,所以MySQL可以用来做ORDER BY 和 GROUP BY操作。总结下来,索引有如下三个优点: a)         索引大大减少了服务器需要扫描的数据量 b)         索引可以帮助服务器避免排序和临时表 c) ...

2018-10-18 20:21:15 235

原创 java 队列同步器AbstractQueuedSynchronizer(AQS)实现分析

AQS 内部使用一个int变量state表示同步状态。 内部使用一个隐式的FIFO队列(并没有声明这样一个队列,只是通过每个节点记录它的上下节点来从逻辑上产生一个队列)来完成阻塞线程的排队。这个FIFO队列在 AQS 中被定义为一个内部类Node:EXCLUSIVE、SHARED:            节点的两种模式:独占模式和共享模式,分别对应独占锁和共享锁。Thread:就...

2018-10-14 16:39:49 200

原创 java 队列同步器AbstractQueuedSynchronizer(AQS)

 队列同步器AbstractQueuedSynchronizer(AQS),是用来构建锁或者其他同步组件的基础框架如对获取锁失败线程的阻塞、唤醒,都是AQS替我们实现,ReentrantLock,ReentrantReadWriteLock和CountDownLatch等都是用AQS实现的。队列同步器AbstractQueuedSynchronizer:内部使用一个int变量state...

2018-09-27 19:55:52 204

原创 多线程基础7 多线程与并发库

多线程与并发库BlockingQueue队列BlockingQueue,如果BlockQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒.同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间才会被唤醒继续操作.import j...

2018-09-20 19:52:26 166

原创 多线程基础 6 线程池

 线程池概述 * 程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互。而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池。线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用ExecutorService pool = Executors.newFixedThreadPool(2);...

2018-09-20 19:42:42 129

原创 多线程基础5 Lock 锁

1.同步 * 使用ReentrantLock类的lock()和unlock()方法进行同步2.通信 * 使用ReentrantLock类的newCondition()方法可以获取Condition对象 * 需要等待的时候使用Condition的await()方法, 唤醒的时候用signal()方法 * 不同的线程使用不同的Condition, 这样就能区分唤醒的时候找哪个线程了    ...

2018-09-20 19:40:22 170

原创 多线程基础4 同步与通信

 1.什么情况下需要同步 当多线程并发执行同一代码时 希望某一段代码执行的过程中CPU不要切换到其他线程工作. 这时就需要同步.  2.同步代码块 使用synchronized关键字加上一个锁对象来定义一段代码, 这就叫同步代码块 多个同步代码块如果使用相同的锁对象, 那么他们就是同步的 public class TestMain { public static vo...

2018-09-19 20:08:10 137

原创 线程基础3 线程中断

已经过时的方法:暂停 suspend() 恢复 resume() 停止 stop()过时原因:suspend()方法在调用后,线程不会释放已经占有的资源(比如锁),而是占有着资源进入睡眠状态,这样容易引发死锁问题。stop()方法在终结一个线程时不会保证线程的资源正常释放。 线程中断的三个方法:interrupt()             :中断线程 interrup...

2018-09-18 20:45:42 167

原创 Java的synchronized

一个加锁的方法 public void f(){ synchronized(this){ System.out.println("123"); } }上面的方法经过  javac 编译为 .class 文件 然后 javap -c 反编译如下 每个对象有一个monitor,即监视器,当且仅当monitor被占用时,这个monitor就被锁住了。...

2018-09-18 19:18:20 161

原创 java 多线程基础2

   多线程(加入线程join)thread.join(); 被.join()的线程优先执行多线程(线程优先级Priority)Thread.setPriority(1-10)线程默认优先级是5。线程优先级的范围是:1-10。线程优先级高仅仅表示线程获取的 CPU时间片的几率高,但是要在次数比较多,或者多次运行的时候才能看到比较好的效果。多线程(守护线程setDaemo...

2018-09-18 16:46:37 147

原创 java多线程 基础

引入 1.什么是线程          线程是程序执行的一条路径, 一个进程中可以包含多条线程          多线程并发执行可以提高程序的效率, 可以同时完成多项工作 2.多线程的应用场景          红蜘蛛同时共享屏幕给多个电脑          迅雷开启多条线程一起下载          QQ同时和多个人一起视频          服务器同时处理多个客...

2018-09-12 20:38:24 122

原创 java 多线程 双重锁检查

双重锁检查public class User { private static User user; public static User getInstance() { if (user == null) { // 1:第一次检查 synchronized (User.class) { // 2:加锁 ...

2018-09-12 19:52:32 337

转载 处理器如何实现原子操作 java 实现原子操作 转载

 原文地址:http://www.infoq.com/cn/articles/atomic-operation1. 引言原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Intel处理器和Java里是如何实现原子操作的。2. 术语...

2018-08-28 19:37:00 264

原创 java volatile 关键词

volatile特性:可见性:对一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入。 原子性:对任意单个volatile变量读写具有原子性,类似volatile++这种复合操作不具有原子性。 顺序性:对于volatile 修饰的关键字在编译的时候会加 内存屏障 fang防止冲排序volatile 的可见性:如图 volatile 修饰的变...

2018-08-22 16:10:24 136

原创 java8 Optional

public class User { @Test public void d() { //Optional 获得一个User 可以为null 的 Optional<User> Optional<User> optional = Optional.ofNullable(getUse...

2018-08-17 16:28:29 118

原创 java线程和内存 java 重排序 java happens-before java 内存语义

线程之间的通信机制有两种:         共享内存:在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。         消息传递:在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显式进行通信重排序:    重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序。    重排序分3种类型。     ...

2018-08-17 15:45:57 184

原创 线程的上线文切换

线程的上线文切换:指的是线程之间执行权的切换 线程的上线文切换过于频繁是会影响程序性能的 , 我们减少不必要的上下文切换:从业务上去减少上下文切换可以按照数据的id拆分或者hash拆分不同的线程处理不同的业务(服务器是多线程的情况下) 无锁编程 volatile 关键字  cas算法(Atomic 使用 的就是 volatile 关键字加 cas    不加锁自然就减少了切换时间...

2018-08-09 18:46:06 635

原创 docker 安装

1 安装    yum install -y docker2 启动    service docker start启动肯能会遇到报错报错解决 :vi /etc/sysconfig/docker追加OPTIONS='--selinux-enabled=false  --log-driver=journald --signature-verification=false...

2018-08-09 15:37:35 710

原创 swagger-ui 接口工具 spingboot 整合 swagger

swagger ui 是一个接口工具 提供接口测试 接口文档等功能  整合步骤1 https://github.com/swagger-api/swagger-ui 下载 swagger 然后把 swagger中的dest 放到 项目中resource 中、2 引入maven配置文件 <dependency> <...

2018-08-05 12:48:54 327

原创 tomcat 与servlet 和 java 和jsp 和 webSocket的关系

 http://tomcat.apache.org/whichversion.html 

2018-07-31 18:04:56 865

原创 redis liunx 安装

安装下载,解压,编译:$ wget http://download.redis.io/releases/redis-4.0.10.tar.gz$ tar xzf redis-4.0.10.tar.gz$ cd redis-4.0.10$ make二进制文件是编译完成后在src目录下,通过下面的命令启动Redis服务:$ src/redis-server启动客户端命...

2018-07-26 15:30:22 121

原创 java8 stream

Java 8 中的 Stream 是对集合(Collection)对象功能的增强,对集合对象进行各种便利、高效的聚合操作,与 Lambda 表达式结合提高编程效率和程序可读性。提供串行和并行两种模式,具有延迟加载的功能,并发模式利用多核处理器的优势,提高程序性能。得到stream流的几种方式: //集合得到stream List<String> ...

2018-07-24 20:28:07 168

原创 java8 方法引用

方法引用  我们先定义一个接口 (@FunctionalInterface  函数式接口:接口中只定义一个方法的接口称之为函数是接口)@FunctionalInterfacepublic interface InterfaceLamdaFunction3 { void print(Integer t);}lambda表达式实现该接口public class Tes...

2018-07-23 17:14:27 201

原创 java8 lamda

我们实现接口有很多种形式其中一种就是匿名实现类的方式:我们先定义一个接口 (@FunctionalInterface  函数式接口:接口中只定义一个方法的接口称之为函数是接口)@FunctionalInterfacepublic interface InterfaceLamdaFunction1 { int get(Integer t);}实现接口 @Test...

2018-07-23 16:43:05 601

原创 jvm 内存分析

jsp 获取pid jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause pid 2000 每格2秒输出结果不断的在屏幕打印出结果  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC                 ...

2018-06-15 17:29:09 548

原创 sping boot 整合 beetl 模版

resources目录下新增一个beetl.properties 文件 增加一个配置类 beetl.properties 文件: RESOURCE.root = / 配置类:   import org.beetl.core.resource.WebAppResourceLoader;import org.beetl.ext.spring.BeetlGrou...

2017-08-01 15:47:38 4589

原创 sping boot 打war 包 在tomcat 中运行

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class App { public static void main(String[]

2017-07-31 15:38:52 235

springloaded-1.2.5.RELEASE.jar

springloaded-1.2.5.RELEASE.jar

2016-10-26

空空如也

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

TA关注的人

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