02 2017 档案
摘要:dubbo 说到底就是一个中间件,用于进行分布式系统之间的交互。减少起先采用http请求网络问题导致的消息失败。 对于dubbo而言,有求必有答,而http类的请求,有求未必有答。 dubbo 分为 服务方、消费方、注册中心,服务方提供服务,消费方负责消费,而注册中心负责注册服务然后提供服务给消费方
阅读全文
摘要:sychronized (monitor监视器) -- 自旋获取锁形式 把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。原子性意味着一个线程一次只能执行由一个指定监控对象(lock)保护的代码,从而防止多个
阅读全文
摘要:getLongVolatile/putLongVolatile等等方法 这类方法使用volatile语义去存取数据,差不多就是各个线程不缓存数据,直接在内存中读取数据; 获取Unsafe对象 遗憾的是,Unsafe对象不能直接通过new Unsafe()或调用Unsafe.getUnsafe()获取
阅读全文
摘要:java事务包含: InnerDB JDBC型事务:应用于单一数据库。 JTA型事务:适用于分布式数据库。 jdbc事务处理的同一资源链接内的业务,获取链接之后,如果这个事务中存在多个sql业务处理,其中任意一个失败,则整体失败,可回滚。 使用方式为设置不自动提交 : AutoCommit = fa
阅读全文
摘要:使用EXPLAIN查看mysql是如何处理sql语句的,查找性能问题点 生成随机字符 生成随机汉字 生成随机数字 循环操作 MySql快速插入100w条数据方法 1、使用文件运行,通过程序,生成100w条数据至文件,利用mysql运行方式运行。 2、JAVA程序中使用多线程插入 3、通过事务控制,预
阅读全文
摘要:package com.shob.tt.single; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class StringUtil { /** * SimpleDateFormat在多线程环境下容易造成数据转换及处理数据的不准确 ...
阅读全文
摘要:1、饿汉式单例类 2、懒汉式单例类 或者 3、双重检查锁定-懒汉式单例 4、Initialization Demand Holder (IoDH)静态内部类之单例模式 IoDH可以实现延迟加载,又可以保证线程安全,不影响系统性能,不失为一种最好的Java语言单例模式实现方式(其缺点是与编程语言本身的
阅读全文
摘要:1、Java编译器的重排序(Reording)操作有可能导致执行顺序和代码顺序不一致。 假设代码有两条语句,代码顺序是语句1先于语句2执行;那么只要语句2不依赖于语句1的结果,打乱它们的顺序对最终的结果没有影响的话,那么真正交给CPU去执行时,他们的顺序可以是没有限制的。可以允许语句2先于语句1被C
阅读全文
摘要:注:findAutowiringMetadata方法能拿到使用了特定注解的属性(Field)、方法(Method)及依赖的关系保存到checkedElements集合<Set>里,然后再执行自己的inject方法。 注入代码: 最终是通过JDK反射特性,直接set值的。 Spring是如何确定sin
阅读全文
摘要:描述: 提供其他原子 putIfAbsent、remove、replace 方法的 Map。 内存一致性效果:当存在其他并发 collection 时,将对象放入 ConcurrentMap 之前的线程中的操作 happen-before 随后通过另一线程从 ConcurrentMap 中访问或移除
阅读全文
摘要:1、修饰方法、变量 2、修饰代码块 3、静态内部类 4、静态导包
阅读全文
摘要:同步和异步是针对IO来说的。所谓同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。要么成功都成功,失败都失败,两个任务的状态可以保持一致。而异步是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行
阅读全文
摘要:package com.shob.io; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io...
阅读全文
摘要:来源百度 -XX:+PrintGCTimeStamps输出格式: 289.556: [GC [PSYoungGen: 314113K->15937K(300928K)] 405513K->107901K(407680K), 0.0178568 secs] [Times: user=0.06 sys=
阅读全文
摘要:Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放。对于程序员来说,分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们称该对象为\"不可达的\".GC将负责回收所有\"不可达\"对象的内存空间。 finalize是位于Object
阅读全文
摘要:javap.exe javap是一个Java类文件反汇编程序,可以查看Java编译器生成的字节码,是分析代码的一个好工具。 jvisualvm jvisualvm是一个Java虚拟机监控和分析工具,该工具提供了一个图形界面窗口,并且可以直观的了解Java应用程序的运行时信息。jvisualvm集成了
阅读全文
摘要:Stop-the-world Stop-the-world会在任何一种GC算法中发生。Stop-the-world意味着 JVM 因为要执行GC而停止了应用程序的执行。当Stop-the-world发生时,除了GC所需的线程以外,所有线程都处于等待状态,直到GC任务完成。GC优化很多时候就是指减少S
阅读全文
摘要:public static void main(String[] args) { System.out.println("123"); int a = 0; int b = 1; assert a == b; //需显示开启,默认为不开启状态 assert a == b : "执行失败!"; Sys
阅读全文
摘要:package com.shob.coll; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import jav...
阅读全文
摘要:package com.shob.coll; public class Fu { public static void main(String[] args) { int a = 128; int b = 129; /** * & --- 与运算符 * 两个操作数中位都为1,结果才为1,否则结果为0 * 129 --- 10000001 * 128 ---...
阅读全文
摘要:A更新了本地副本x的值,不会主动刷新到主存中吗,必须等到和B通信时? --A线程迟早会把更新过的X值刷新到主内存中,但具体会在什么时候刷新到主内存是不确定的。如果我们使用同步原语(synchronized,volatile和final),那么刷新的时机是确定的。比如,如果A线程释放了锁,它就会刷新本
阅读全文
摘要:java并发采用的是共享内存模型,java线程之间的通信是隐式进行的,对程序员透明。 在java中,所有静态域、实例域和数组元素存放在堆内存中,而堆内存在线程之间共享。 局部变量、方法定义参数、异常处理器参数不会再线程之间共享,他们不会存在内存可见性的问题,也不受内存模型的影响。 JAVA线程之间的
阅读全文
摘要:堆(heap)存放内容包括:包装类数据,如Integer, String, Double等将相应的基本数据类型包装起来的类。 只要是用new()来新建对象的,都会在堆中创建,而且其字符串是单独存值的,即使与栈中的数据相同,也不会与栈中的数据共享。 栈(stack)存放内容包括:int, short, long, byte, float, double, boolean, char ...
阅读全文
摘要:问题: @Autowired和xml对同一类进行注入是,出现了注入的2个实例不属于同一个内存,为2个对象,spring不是单例的吗? 解决: 暂未处理,先做记录
阅读全文
摘要:jvm arguments 偏向锁开启 偏向锁关闭 main执行配置: RUN AS -->RUN Configurations-->Arguments -- >VM Arguments
阅读全文
摘要:个人记录: 一、没有同步的情况 二、对普通方法同步 三、静态方法(类)同步 四、代码块同步 总:
阅读全文
摘要:package com.shob.syn; public class SharaData { private static int count = 0; /** * 并发测试 * 共享性:多线程下共享数据问题 */ private static void sha(){ final SharaData data = new SharaData(); for (in...
阅读全文

浙公网安备 33010602011771号