51CTO博客开发
1. 常见方式保证线程安全条件下有三种方式:提前初始化:类加载时就创建一个对象,延迟初始化DCL:双重检查,JDK5.0后单例实例加volatile修饰占位类:推迟占位类的初始化提前初始化可能影响程序启动时间以及不必要高开销操作较少采用2. DCLpublic class DoubleCheckLocking { pri
1. 定义城市等级(city_rank)小于3且GMV大于6000或者城市等级大与3且GMV大于5000定义为高消费(gq)城市等级(city_rank)小于3且广告收入大于360或者城市等级大与3且广告收入大于300定义为高收入(pq)flow_rank: 0低流量 1中流量 2高流量合作商跨多个城市,选择city_rank最小值为其city_rank,毛收入多城市取和,广告毛收入按合作商收取2
概述看Java NIO一篇文章的时候又看到了“异步非阻塞”这个概念,一直处于似懂非懂的状态,想解释下到底什么是异步 什么是非阻塞,感觉抓不住重点。决定仔细研究一下。本文试图研究以下问题:web server原理,bio的connector与nio的connector在架构上到底什么区别?NIO的优势到底在哪里,是如何应用到实践中的?同步/异步、阻塞/非阻塞到底是什么概念,引出的IO模型同步阻塞、同
背景 “线下没问题的”、 “代码不可能有问题 是系统原因”、“能在线上远程debug么” 线上问题不同于开发期间的bug,与运行时环境、压力、并发情况、具体的业务相关。对于线上的问题利用线上环境可用的工具,收集必要信息 对定位问题十分重要。 对于导致问题的bug、资源瓶颈很难直观取得数据,需要根据资源使
今天用wireshark分析一个案例,TCPIP卷一又复习了一遍,整理概念便于查看
1. 背景导入150w数据到mysql,数据格式为tab分隔csv文件。测试索引对导入速度的影响2. 无索引,导入数据后重建CREATE TABLE `tab` ( `ct_id` char(36) DEFAULT NULL COMMENT 'id', `ct_title` varchar(200) 
问题OS:CentOS6.3jdk:jdk6文件创建时间正常,日志记录时间晚于系统时间13小时2. 查看$ localeLANG=en_USLC_CTYPE="en_US"LC_NUMERIC="en_US"LC_TIME="en_US"LC_COLLATE="en_US"LC_MONETARY="en_US"LC_MESSAGES="en_US"LC_PAPER="en_US"LC_NAME="
问题如题,上传文件名问号2. 定位$localeLANG=en_USLC_CTYPE=zh_CN.UTF-83. 修复所有用户生效,/etc/profile.d中加入setlang.sh:export LC_CTYPE=zh_CN.UTF-8特定用户生效,~/.bash_profile中加入export LC_CTYPE=zh_CN.UTF-8
原文:http://docs.oracle.com/javase/7/docs/technotes/guides/vm/G1.html介绍G1垃圾回收器在jdk7 update4及之后版本开始全面支持。G1是服务器端的垃圾回收器,适用于多CPU、大内存的机器。他能满足GC的延时目标同时保证高性能并能达到高吞吐量。所有的堆操作,比如全局标记( global marking),都与应用程序的线程并发执
使用java instrument做一个代码监控的工具,监控日志想用log4j记录,遇到了点问题。 启动应用的命令行加入-javaagent参数,可以在加载类时对其字节码做修改,常用工具有asm、javasssit。 我希望能额外加载用于监控的log4j的配置,但发现如果在instrument类中手工加载了监控的log
Mat是分析java堆栈的利器,与jdk自带的工具比较,分析快,占用内存少,各种图形显示有利于定位问题。但是在真正的线上环境内存配置都比较大,目前上午笔记本内存配置是4G,无法分析线上应用倒出的heapdump,线下的测试机有足够的内存确没有图形化的展示界面。我们可以使用线下linux机器分析heapdump,笔记本用于显示,是不需要太多内存的。下文介绍在有较大内存linux环境下,比如线下的测试
记一下摘要,有时间再整理1. Three attributes,三个标准Throughput 吞吐量Latencies 延迟Footprint 占用内存(Good space efficiency 利用率?)Usually, you sacrifice one in favor of the other twoNot all three are always importantBut you do
看到一个帖子,为何Exception对象创建缓慢http://www.blogjava.net/stone2083/archive/2010/07/09/325649.html貌似问题集中在Throwable的fillInStackTrace方法,用hprof测试一下:java -agentlib:hprof=cpu=samples NewExceptionTester o: 10369e:
看到java大牛们的文章,各种不明觉厉。他们用一种叫fastdebug的jdk,好奇gooole一下,找到一篇仍然不明觉厉的英文说明。话说冰冻三尺非一日之寒,慢慢积累吧,翻译一下。Ok, what the heck is a JDK fastdebug build?Fastdebug到底是什么First, let's tell you what it isn't.首先说他不是什么It is not
1. 与仅有几台服务器的小规模服务的区别负载均衡 可扩展保证冗余Reduced Operation:减少人工干预(机器太多 记不过来)2. 大规模数据处理难点 内存vs磁盘内存比磁盘快百万倍3. 大规模数据的技巧写程序尽量都在内存完成使用能应对数据增长的算法(二叉树 O(logn) )使用数据压缩和搜索技术前提知识:底层基础操作系统缓存分布式为前提 应用rdbms必须要做的事大规模环境 数据结构和
今天看到Trie的原理,想到以前面试遇到的一个没回答上的问题,写段代码试一下。Trie典型应用是用于统计和排序、查询大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本的词频统计等。若关键字长度最大是5,则利用trie树,利用5次比较可以从26^5=11881376个可能的关键字中检索出指定的关键字。而利用二叉查找树至少要进行 log2n 次比较。如果想要计算词频,需要修改一下Node
翻译于《Troubleshooting Guide for JavaSE6 with HotSpotVM》1. 生成位置-XX:ErrorFile=/fullpath/file,file里可以包含%p表示进程id。如果没声明,默认的名字是hs_err_pid.log,保存在进程的工作目录。如果因为权限和空间等问题不能存在工作目录,会保存在系统的临时目录2. 包含信息导致fatal error的操作
淘宝清英在此文对ConcurrentLinkedQueue做了详细分析http://www.infoq.com/cn/articles/ConcurrentLinkedQueuecas实现没有涉及,我又读了一下ConcurrentLinkedQueue.Node类,记录此文作为补充该类cas相关的入队的代码在285行:} else if (p.casNext(null, n)) {查看casNex
要求不能转换成int long,直觉用Integer.valueOf、String.charAt、char[]去做,仔细琢磨一下 String内部用char[]表示,省去准换应该快的多,试了一下import java.util.Date; public class TestStringAdd { public static void main(String[] args) {
题目是并发环境 运行时初始化,有点晕菜,仔细想了下实现为了保持可见性使用volatile,最开始调用getInstance可能导致写锁竞争,写锁内部还要加个判空import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; public class SyncSin
原文,很清楚 http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!1 sort的工作原理sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。[rocrocket@
项目使用SSH框架,使用jacoco收集单元测试覆盖率,遇到如下问题:[ERROR][org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer][Line:165] Javassist Enhancement failed: xxxjava.lang.VerifyError: (class: xxx_$$_javassist_4, me
1. 堆栈大小设置JVM内存大小=年轻代大小(包括Eden和两个Survivor区) + 年老代大小 + 持久代大小-Xmx JVM最大可用内存-Xms初始内存 JVM优化-Xmn年轻代大小-Xss每个线程的堆栈大小-XX:NewRatio 年轻与年老的比值-XX:SurvivorRatio 一个Survivor与eden的比值,如果=4 一个Survivor占年轻代的1/6-XX:MaxPerm
windows7 oracle11gR2 PL/SQL Developer
1. 特殊字符;;case终止符""部分引用:$ \ ``可以使用''全部引用:仅``可以使用?测试操作$变量替换正则表达式行结束符:空命令${}参数替换$* $@ 位置参数$?退出状态变量()命令组> &> &>> <重定向标准输出和标准错误<<重定向 用于here document<<&l
项目使用maven管理,希望完全实现自动化,定时编译/打包/上传/重启,maven没找到ftp上传/调用远程脚本功能google了一下Publish Over SSH插件可以实现,记录一下1. Jenkins安装插件Publish Over SSH2. 设置远程服务器系统设置->Publish over SSH中 新建server:Name: 名称,项目配置引用这个名字Hostname:ip
基本是总结 跟开淘学习SpringMVC系列http://www.iteye.com/blogs/subjects/kaitao-springmvc以及Spring in action中的RestFul1. 控制器:前端DispatchServelt,应用HandlerMapping ViewResolver,页面控制器Controller2. 支持: 本地化解析 主题解
1. jenkins安装Publish Over SSH件2. jenkins系统里 配置Publish over SSH:新建server 配置remote dir(上传文件到这个目录)3. 修改job配置 Post Steps新增"Send files or execute commands over SSH":Transfer Set Source files
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号