java

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: , ,

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: , , , ,

sqlite的java使用

星期三, 六月 8th, 2011 | JAVA-and-J2EE, linux | 没有评论

sqlite大名鼎鼎的文本存储,支持sql的方式和带事务支持,sqlite是c写的,官方没有java的api使用,在开源中找到2中方式:

SQLiteJDBC:http://www.zentus.com/sqlitejdbc/,这是一个纯Java的实现,无需安装sqlite,官方号称用c转成java的实现方式,用起来相当方便,引入此jar即可,方便使用,可能效率会慢点;
SQLite Java Wrapper: http://www.ch-werner.de/javasqlite,安装的时候需要本地库,比如windows下的dll文件,和SQLiteJDBC的优缺点相反,还要自行去编译,比较麻烦;
下面是 使用SQLiteJDBC的应用: › Continue reading

Tags: , , , ,

获取MAC地址,java版本

星期二, 十二月 14th, 2010 | JAVA-and-J2EE | 没有评论

获取MAC地址,java版本,从jdk1.6支持,不啰嗦了,上代码
› Continue reading

Tags: , ,

检出字符串中的中文 java版

星期日, 十二月 5th, 2010 | JAVA-and-J2EE | 没有评论

话不多说了,就是检出字符串中的中文而已,直接上代码了,没有什么难的了!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.liyz.test.str;
public class TestChinese {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String str="中文国际 id chinese ? test  power by I5A6!!";
		String s=getChineseStr(str);
		System.out.println(s);
		System.out.println(s.length());
	}
 
	/**
	 * 检出其中的中文部分
	 * @param str
	 * @return
	 */
	public static String getChineseStr(String str){
		StringBuffer sb=new StringBuffer();
		String tempStr;
		for(int i=0;i<str.length();i++){
			tempStr=String.valueOf(str.charAt(i));
			if(tempStr.getBytes().length==2){
				sb.append(tempStr);
			}
		}
		return sb.toString();
	}
}

Tags: , ,

重读 java heap和stack

星期二, 九月 14th, 2010 | JAVA-and-J2EE | 没有评论

好久没有关注过语言本身的东西,更多是关注怎么实现要做的功能的实现方法,变换着使用不同不语言;
不过多语言的研究还是有必要的,现做个记录….
以下为转载————-更多信息可以去读读java虚拟机的相关内容—————————-
heap和stack有什么区别。栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素.
堆存储:heapstorage
堆存储分配: heapstorage allocation
堆存储管理: heap storage management
栈编址: stack addressing
栈变换:stack transformation
栈存储器:stack memory
栈单元: stack cel

在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题。
一般,JVM的内存分为两部分:Stack和Heap。
Stack(栈)是JVM的内存指令区。Stack管理很简单,push一定长度字节的数据或者指令,Stack指针压栈相应的字节位移;pop一定字节长度数据或者指令,Stack指针弹栈。Stack的速度很快,管理很简单,并且每次操作的数据或者指令字节长度是已知的。所以Java 基本数据类型,Java 指令代码,常量都保存在Stack中。
› Continue reading

Tags: , , ,

MyEclipse保存后不能自动编译 导致Tomcat发布报警告

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

以前的工程好好的发布,今天发布的时候报了个警告,于是就把工程重建了下,竟发现不能编译了,吐血中ing,再查看WEB-INF/classes/,竟然里面是空的,而output路径也设的好好的啊,怪了,于是google了一下,发现有此问题的人还不少,其中有一位总结的比较详细,具体如下:

1. 确保 project->build automatically 已经被选上.

2. 如果选上了,也不好使, 使用这一招: project->clean..->选第2个clean select project, 勾上start build immediatelly

3.删除现在的项目,提前设置好编译文件输出路径,重新导入源文件,设置eclipse为保存时编译,然后在保存的时候就可以自动编译了

4.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果.

5. 想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如Total Commander。此时编译也不会通过,在problems下可能会提示“con”t delete classes ……”。关掉其它程序重新编译即可。

6.还有种情况是remove掉 JRE System Library,重新导入即可编译。但是什么原因导致的还不清楚。

7.把build path中所有包都remove掉。然后又add jars,add libraries把需要的加进去,居然又开始编译了。。。

8.project->properties->java build path->source->…/WEB-INF/src的output folder不要默认,编辑让它指向../WEB-INF/classes 然后重新点击build工程即可自动编译。

9.再就是最重要的要看工程下面是否缺少了work目录,由于CVS控制时不把work加如版本,所以checkout后没有这个目录,要手工加上有的工程就能自动编译了

PS:我的问题就是一个同事加了本地的jar包进去导致的不能编译输出,在project下的lib下看到jar包在他的路径下,哎,耽误那么长功夫查找,不过遇见问题就要解决问题才是正道,呵呵

Tags: , , , ,

Resin4.0安装小记

星期日, 十月 18th, 2009 | JAVA-and-J2EE, linux, php | 2 Comments

Resin出了4.0版本,一直喜欢尝试新东西的直接; 就下载安装了下,安装起来很简单,可以到Resin Download去下载,其实以前在windows中下载过,可惜执行的时候一闪而过,当时没有在意也没有去管他了,今天又在linux下去真正用下了;
1.tar zxvf resin-4.0.1.tar.gz
2.cd resin-4.0.1
3../configure
4.make & make install
5.修改resin.xml的用户组 www-user,给赋予webapps的对应的用户组权限
6../bin resin.sh start 不报错的就可以http://localhost:8080/看到页面了,记得防火墙的8080端口要打开哦

不过可惜的是4.0版本据说不稳定,有人发生宕机事件,还有就是有的在上面运行出错的问题;
再者看resin的主要意图是增加对php的支持,研习resin4.0版本的文档也不是很多
为了稳定还是延续使用ReResin Pro 3.1.9版本
最近会处理一些nginx+resin的处理,还有resin本身的集群功能;nginx+PHP(FastCGI)+mysql已经搭建完毕

Tags: , , , ,

Search

文章分类

Meta