JAVA-and-J2EE

SHOW PROFILES检测mysql的性能方法

星期一, 一月 23rd, 2012 | Database, JAVA-and-J2EE | 没有评论

在网上看使用sql的执行效率的mysql检测方法,实际上有更好的基于aop的方法进行所有的sql的效率执行效果,并不限于mysql还是oracle,不过有点影响效率,也可以关闭次方法,在dao级别进行拦截控制,明确每个的sql的执行效率.在阿里巴巴有个dao的开源框架,很不错的,需要的话可以猛点击Druid,这个不是本文记录要点啦.
MySQL Query Profile MySQL 5.0.37 以上开始支持 MySQL Query Profiler, 可以查询到此 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 System lock, Table lock 花多少时间等等.

详细可以参见官方文档:SHOW PROFILES Syntax

启动

mysql> set profiling=1;

Query OK, 0 rows affected (0.00 sec)

测试查询

mysql> select count(*) from client where broker_id=2;

+———-+

| count(*) |

+———-+

| 200 |

+———-+

1 row in set (0.00 sec)

查看profiles

mysql> show profiles;

+———-+————+———————————————–+

| Query_ID | Duration | Query |

+———-+————+———————————————–+

| 0 | 0.00007300 | set profiling=1 |

| 1 | 0.00044700 | select count(*) from client where broker_id=2 |

+———-+————+———————————————–+

2 rows in set (0.00 sec)

查看单条profile 查询的query 1 是第1条,不写的话是默认最后一条
› Continue reading

Tags: , , , ,

回文判断和是否包含回文的计算(java版本)

星期日, 一月 15th, 2012 | JAVA-and-J2EE | 没有评论

这个是java版的计算回文的几种方式,基本上都算是比较高效的实现,
测试的最后的一个是判断一个字符串中是否位置重排后可以抽出回文的字符串来,当然字符串的长度和字数都不能有变,只是顺序随便排下而已:
这个是想到的快速的一种判断,还有一个是比较慢的就不贴了,如果你有更好的方法,希望回帖告知,也学习学习,源代码如下:
› Continue reading

Tags: , ,

apk反编译源码和布局文件

星期二, 一月 10th, 2012 | Android, JAVA-and-J2EE | 没有评论

本文只要为想研习程序源代码做的反编译使用:(apk逆向工程)

一.使用Apktool可以直接获取布局文件,甚至可以修改其中的广告信息,再重新编译回去
重新编译可以参考其官方操作

1.安装JAVA环境(http://www.oracle.com/

2.下载apktool.jar及相关文件,这里下apktool-1.0.0.tar.bz2apktool-install-windows-2.1_r01-1.zip,更新的可以去此项目官方下载Apktool

3.解压apktool.jar到 C:\Windows

4.解压apktool-install-windows.zip到任意文件夹

5.Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看。会列出一些帮助的话就成功了。

6.Apktool 命令
apktool d XXX.apk nice 反编译XXX.apk到文件夹nice

apktool b nice 从文件夹nice重建APK,输出到nice\dist\outNew.apk(修改后重新编译回apk)

二:使用apk文件反编译的方法(dex2jar和JD-GUI)获取java源代码
› Continue reading

Tags: , , , , , , ,

java中的system.getproperty(String key)信息

星期五, 十二月 30th, 2011 | JAVA-and-J2EE | 没有评论

经常可以在程序中看到别人用System.getProperty(“user.dir”);这种信息,其实这个并不什么都是系统自带的属性;

可以查看java API 里 System 这个类里 getProperties 方法下有这样的说明:
Description of Associated Value

java.version Java Runtime Environment version
java.vendor Java Runtime Environment vendor
java.vendor.url Java vendor URL
java.home Java installation directory
java.vm.specification.version Java Virtual Machine specification version
java.vm.specification.vendor Java Virtual Machine specification vendor
java.vm.specification.name Java Virtual Machine specification name
java.vm.version Java Virtual Machine implementation version
java.vm.vendor Java Virtual Machine implementation vendor
java.vm.name Java Virtual Machine implementation name
java.specification.version Java Runtime Environment specification version
java.specification.vendor Java Runtime Environment specification vendor
java.specification.name Java Runtime Environment specification name
java.class.version Java class format version number
java.class.path Java class path
java.library.path List of paths to search when loading libraries
java.io.tmpdir Default temp file path
java.compiler Name of JIT compiler to use
java.ext.dirs Path of extension directory or directories
os.name Operating system name
os.arch Operating system architecture
os.version Operating system version
file.separator File separator ("/" on UNIX)
path.separator Path separator (":" on UNIX)
line.separator Line separator ("\n" on UNIX)
user.name User’s account name
user.home User’s home directory
user.dir User’s current working directory

Multiple paths in a system property value are separated by the path separator character of the platform.

你可以自己执行代码查看:会比api多一些的
package com.liyz.test;
› Continue reading

Tags: , ,

java环境变量和查看安装路径

星期二, 十二月 27th, 2011 | JAVA-and-J2EE, linux | 没有评论

一:先说windows查看安装路径和版本吧:
set java_home:查看JDK安装路径
java -version:查看JDK版本
linux下查看:
whereis java
which java (java执行路径)
echo $JAVA_HOME
echo $PATH

二:下面是配置linux的环境变量:(记得source .bash_profile)
1. 修改/etc/profile文件 (全局所有用户)
› Continue reading

Tags: , , ,

约瑟夫环的3种java实现版本

星期三, 十二月 7th, 2011 | JAVA-and-J2EE | 没有评论

约瑟夫环即:
由m个人围成一个首尾相连的圈报数。从第一个人开始,从1开始报数,报到n的人出圈,剩下的人继续从1开始报数,直到所有的人都出圈为止。对于给定的m和n,求出所有人的出圈顺序.

实现代码如下,(3百万的寻找)对比的时间一目了然,性能依次走低,最后一种和前面两个差了1个数量级,时间还最长

getSeByNode 耗时 :1039
getSe 耗时 :3397
se 耗时 :38388
› Continue reading

Tags: , ,

java中的log的那点事–记游戏中比赛分组

星期二, 十一月 8th, 2011 | JAVA-and-J2EE, webgame | 没有评论

一直不怎么用java中的math的函数,但是用起来才感觉真的很好用,下面就是一个分组的最大上限的回调函数;
即是2的n此方的分组取上最多分组
public static int getUpNum(int applyNum){
double b=Math.log(applyNum)/Math.log(2);
double c=Math.ceil(b);
double n=Math.pow(2, c);
return Double.valueOf(n).intValue();
}
获得此值, 就可以获取最大分组数,和第一次直接晋级人数,比赛的轮数,第一局的人数等等信息(有点晕吧,游戏中比赛的分组逻辑,算是webgame巡回赛[争霸赛]中比较重要的分组函数)

Tags: , , ,

VisualSVN Server for windows搭建svn服务端

星期一, 十一月 7th, 2011 | JAVA-and-J2EE | 没有评论

1.VisualSVN Server的安装 (本文是3.5版本)
安装起来很简单,http://www.visualsvn.com 此主站(服务端免费,客户端收费),
服务端下载地址:http://www.visualsvn.com/server/download/

安装遭遇VisualSVN服务无法启动,导致安装失败提示:
“Product: VisualSVN Server — Error 1920. Service ‘VisualSVN Server’ failed to start. Please check VisualSVN Server log in Event Viewer for more details.”
提示此错误,为无法启动服务:,此时不要取消安装;
解决方案:
查看控制面板的服务选项,打开service找到VisualSVN,查看属性如下图:

原来是账户启动服务失败,
修改为本地系统账户,
手动启动服务,在VisualSVN,点击重试,OK。安装成功

eclipse的svn客户端安装见://www.pomelolee.com/?p=274

其他客户端:推荐TortoiseSVN:http://downloads.sourceforge.net/tortoisesvn

Tags: , , ,

oracle迁移至mysql小计

星期日, 十一月 6th, 2011 | Database, JAVA-and-J2EE | 没有评论

使用 navicat premium 点击下载 ,是收费版本,不过可以试用30天,挺好用的东西;推荐使用这个转换的速度很快,也蛮好

I. 首先遭遇cannot load oci.dll,
解决方案如下:
解决起来也方便官方给了wiki解决地址 http://wiki.navicat.com/wiki/index.php/Instant_client_required

简单之只要去http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 下载需要的客户端就可以,只要解压,在navicat的options的oci项目中选中oci.dll即可,sqlplus也选中你安装的oracle client标准版的sqlplus选项

II. 在连接oracle时候遇见 ORA-12705: invalid or unknown NLS parameter value 很郁闷的事情,出现此种是安装了oracle的客户端的时候有语言选项造成的;

解决方案如下:
改变环境变量的值:\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG
1.cmd命令行中输入regedit 打开注册表,
2.搜索注册表中的NLS_LANG
3.改变这个值的编码格式,我的是中文:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
注: 听说有在eclipse遇见过此问题的,可以在ECLIPSE的参数启动改变,在eclipse.ini,进行编码的匹配,-DNLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

Tags: , , , , ,

Spring cronExpression Quartz 触发器(SimpleTrigger&CronTrigger ) 配置说明

星期五, 十一月 4th, 2011 | JAVA-and-J2EE | 没有评论

字段 允许值 允许的特殊字符
秒 0-59 , – * /
分 0-59 , – * /
小时 0-23 , – * /
日期 1-31 , – * ? / L W C
月份 1-12 或者 JAN-DEC , – * /
星期 1-7 或者 SUN-SAT , – * ? / L C #
年(可选) 留空, 1970-2099 , – * /
表达式意义 (示例:)
“0 0 12 * * ?” 每天中午12点触发
“0 15 10 ? * *” 每天上午10:15触发
“0 15 10 * * ?” 每天上午10:15触发
“0 15 10 * * ? *” 每天上午10:15触发
“0 15 10 * * ? 2005” 2005年的每天上午10:15触发
“0 * 14 * * ?” 在每天下午2点到下午2:59期间的每1分钟触发
“0 0/5 14 * * ?” 在每天下午2点到下午2:55期间的每5分钟触发
“0 0/5 14,18 * * ?” 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
“0 0-5 14 * * ?” 在每天下午2点到下午2:05期间的每1分钟触发
“0 10,44 14 ? 3 WED” 每年三月的星期三的下午2:10和2:44触发
“0 15 10 ? * MON-FRI” 周一至周五的上午10:15触发
“0 15 10 15 * ?” 每月15日上午10:15触发
“0 15 10 L * ?” 每月最后一日的上午10:15触发
“0 15 10 ? * 6L” 每月的最后一个星期五上午10:15触发
“0 15 10 ? * 6L 2002-2005” 2002年至2005年的每月的最后一个星期五上午10:15触发
“0 15 10 ? * 6#3” 每月的第三个星期五上午10:15触发
0 6 * * * 每天早上6点
0 3/10,6/10 * * * 每3,6每隔10分钟执行一次,即 3,6,13,16,23,26….执行

0 */2 * * * 每两个小时

0 23-7/2,8 * * * 晚上11点到早上8点之间每两个小时,早上八点

0 11 4 * 1-3 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 4 1 1 * 1月1日早上4点

上面是范例×××××××××××××××××××××××××××××××××××××××××××××××××××分割下××××××××××××
具体的含义:Cron 表达式包括以下 7 个字段:
› Continue reading

Tags: , , , ,

Search

文章分类

Links

Meta