java
文章平均质量分 91
qq_25825923
这个作者很懒,什么都没留下…
展开
-
java io
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2020-12-08 15:23:36 · 207 阅读 · 0 评论 -
处理器如何实现原子操作 java 实现原子操作 转载
原文地址:http://www.infoq.com/cn/articles/atomic-operation1. 引言原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Intel处理器和Java里是如何实现原子操作的。2. 术语...转载 2018-08-28 19:37:00 · 213 阅读 · 0 评论 -
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 · 7259 阅读 · 0 评论 -
java 内存机制 jvm
java 内存划分java 内存分为:pc寄存器:用于记录线程当前执行的内存地址 (java 是多线程的 当线程a 失去执行权后 再次获得执行权时 java 需要知道 a线程执行到了哪一步代码 也就是 内存地址)。本地方法栈:本地方法栈 又叫做 c栈 用于 跟踪native 方法(调用非java 方法)的执行状态和 pc寄存器类似。栈:线程独有,存储 对象的引用以及类中的局部变量...原创 2018-12-06 16:45:44 · 196 阅读 · 0 评论 -
jdk 性能监测工具,jvm性能监测工具。
jps:查看java进程。jstat :虚拟机运行时信息堆监控工具。jstack:线程堆栈监控工具。jinfo:虚拟机参数查看设置工具。jmap:导出堆文件工具。jhat:堆文件分析工具。jcmd:多功能命令工具推荐替代jmap。hprof:性能统计工具在vm中设置参数。jconsole:图形化监控工具。visual VM:图形化监控工具。jmc:图形化诊断工具。jsta...原创 2018-12-19 17:04:37 · 1112 阅读 · 0 评论 -
java常量池:字符串常量池,静态常量池,运行时常量池,
字符串常量池(String Poll)java6:存在于永久代中。字符串常量池保存的是字符串常量。java7:转移到了堆中。字符串常量池存的是字符串常量和堆内的字符串对象的引用。静态常量池(class文件常量池)用于存放编译器生成的各种字面量(Literal)和符号引用(Symbolic References)。字面量:文本字符串int long 等基本类型...原创 2018-12-18 10:50:00 · 1815 阅读 · 2 评论 -
java 设计模式
六大设计原则开闭原则: 对类的扩展开放,对类的修改关闭。里是替换原则:任何父类出现的地方子类可以替换。依赖倒转原则:要面向接口编程,不要面向具体。迪米特原则:要降低耦合一个类尽量少于其他类相互作用。接口隔离:设计接口要精简单一,降低耦合,接口只做分内的事。合成复用:尽量使用聚合能用聚合就不继承。创建型模式(5种):工厂方法模式。抽象工厂模式。单例模式。建造者模式。原型...原创 2019-05-30 12:09:47 · 132 阅读 · 0 评论 -
单例的序列化与反射
这是一个简单的单例但是存在序列化和反射的问题 , 通过对其序列化或者反射会得到全新的对象。public class Single implements Serializable{ private static final SINGLE single = new Single(); private Single() { } priv...原创 2019-08-22 17:47:29 · 152 阅读 · 0 评论 -
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 · 76 阅读 · 0 评论 -
java线程和内存 java 重排序 java happens-before java 内存语义
线程之间的通信机制有两种: 共享内存:在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。 消息传递:在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显式进行通信重排序: 重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序。 重排序分3种类型。 ...原创 2018-08-17 15:45:57 · 121 阅读 · 0 评论 -
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 · 478 阅读 · 0 评论 -
java8 lamda
我们实现接口有很多种形式其中一种就是匿名实现类的方式:我们先定义一个接口 (@FunctionalInterface 函数式接口:接口中只定义一个方法的接口称之为函数是接口)@FunctionalInterfacepublic interface InterfaceLamdaFunction1 { int get(Integer t);}实现接口 @Test...原创 2018-07-23 16:43:05 · 517 阅读 · 0 评论 -
java8 方法引用
方法引用 我们先定义一个接口 (@FunctionalInterface 函数式接口:接口中只定义一个方法的接口称之为函数是接口)@FunctionalInterfacepublic interface InterfaceLamdaFunction3 { void print(Integer t);}lambda表达式实现该接口public class Tes...原创 2018-07-23 17:14:27 · 125 阅读 · 0 评论 -
java8 stream
Java 8 中的 Stream 是对集合(Collection)对象功能的增强,对集合对象进行各种便利、高效的聚合操作,与 Lambda 表达式结合提高编程效率和程序可读性。提供串行和并行两种模式,具有延迟加载的功能,并发模式利用多核处理器的优势,提高程序性能。得到stream流的几种方式: //集合得到stream List<String> ...原创 2018-07-24 20:28:07 · 107 阅读 · 0 评论 -
tomcat 与servlet 和 java 和jsp 和 webSocket的关系
http://tomcat.apache.org/whichversion.html原创 2018-07-31 18:04:56 · 798 阅读 · 0 评论 -
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 · 249 阅读 · 0 评论 -
线程的上线文切换
线程的上线文切换:指的是线程之间执行权的切换 线程的上线文切换过于频繁是会影响程序性能的 , 我们减少不必要的上下文切换:从业务上去减少上下文切换可以按照数据的id拆分或者hash拆分不同的线程处理不同的业务(服务器是多线程的情况下) 无锁编程 volatile 关键字 cas算法(Atomic 使用 的就是 volatile 关键字加 cas 不加锁自然就减少了切换时间...原创 2018-08-09 18:46:06 · 538 阅读 · 0 评论