分类归档:Java

菲波那切数列

private static int feibonaqie(int count) {
		// 斐波那契数列计算 菲波那切数列 java版本,公式版
		// 1/√5)*{[(1+√5)/2]^n-[(1-√5)/2]^n}
		double genhao5 = Math.sqrt(5);
		double a = (1 + genhao5) / 2;
		double b = (1 - genhao5) / 2;
		int an = (int) (1 / genhao5 * (Math.pow(a, count) - Math.pow(b, count)));
		return an;
	}

菲波那切数列 java版本,公式版

wget 下载oracle jdk

下载jdk
wget –no-cookies –no-check-certificate –header “Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com” “https://edelivery.oracle.com/otn-pub/java/jdk/7u25-b15/jdk-7u25-linux-x64.tar.gz”

多jdk共存

笔者是一个java开发者,很蛋疼的在电脑上装了好几个版本的jdk,因为有些软件对jvm版本有要求,比如一些不支持64位jvm等。

环境变量为 64位jdk7.但是有些软件依赖 32位的jvm,没办法。写了一个脚本,应对此类问题。比如PowerDesigner

set JAVA_HOME=C:\Program Files\Java\jdk1.6.32
set PATH=%JAVA_HOME%\bin;%PATH%
start D:\"Program Files (x86)"\Sybase\"PowerDesigner 15"\pdshell15.exe

这样就不影响其他的环境,指定了jdk版本给该软件。哈哈小技巧而已。

在return前执行finally

public class Test {
	public String Test1() {
		String str = "aa ";
		try {
			str = "bb";
			return str;
		} finally {
			str = "yy";
			System.out.println(str);
		}
	}

	public static void main(String[] args) {
		Test t = new Test();
		System.out.println(t.Test1());
	}

}

ORACLE+SQL性能优化

ORACLE SQL性能优化系列

  1. 访问Table的方式

ORACLE 采用两种访问表中记录的方式:

  1. 全表扫描

全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描.

  1. 通过ROWID访问表

你可以采用基于ROWID的访问方式情况,提高访问表的效率,  ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.

阅读全文 ……

自学java语言和javaee过程

1.c语言

2.c++语言语法

3.java1.4,1.5,1.6,1.7各种特性

4.多线程,nio等

5.学习框架使用 ssh,ssi之类的

6.jvm

7.学习模式,spring原理等

8.学习其他语言,python erlang golang啥的

9.hadoop看看

10.mahout看看

11.忘记语言

其中穿插其他的使用性技术,比如做个搜索引擎啥的。

以上是学习java的技术路线。管理路线不必参考。

不写一行代码,做自己的聊天系统

简介,该系统支持 桌面(包含Windows,Linux,和mac系统),嘿嘿,Java的。也支持web聊天。类似webqq。但是我没有测试。

该系统全部采用Java语言实现,而且还是开源的。是基于jabber的xmpp协议的,支持gtalk,msn,新浪微博(新浪微博的android推送也是xmpp的哦,博主观察到的,ps:sina微博架构师 timyang 对xmpp深有研究,读他的博客学了不少东西。)

各种需要的软件。下载地址。主要是openfire(服务器端)和spark(桌面端),还有web端

http://www.igniterealtime.org/downloads/index.jsp

下载安装好,就可以实现桌面直接的聊天了。

android端可以自己开发。可以使用官方的Smack 自己开发,也好像有asmack是移植好的。

偶然间让哦我发现了一个开源项目。

https://github.com/pfleidi/yaxim

这个,也只xmpp协议的。可以直接拿来当客户端用。也可以直接到play下载。https://play.google.com/store/apps/details?id=org.yaxim.androidclient

yaxim,在填写jabber id的时候有一个缺点,xxx@xxx.000 不写 .ooo会不认。

博主意淫:

1.可以基于这一套,做一个推送系统。ps,千万别用androidpn。bug太多了。在用户量并发不大的情况下,可以使用。如果用户多,可以openfire集群。再多,就自己开发吧。

2.可以山寨个微信。也可以做个微信公开号一样的功能。看用户了。开放api,也很容易的。

 

get/set 注入取值的时候会出现问题

get/set 注入取值的时候会出现问题。
set、get注入spring,struct2 根据对象注入而不是类。
例如 一下是正确
例子1 eclipse会正确生成
private User user;
public User getUser(){
return this.user;
}
public User setUser(User user){
this.user=user;
}
例子2 eclipse会正确生成
private User aaa;
public User getAaa(){
return this.user;
}
public User setAaa(User user){
this.user=user;
}
以下是错误的 eclipse不会这样生成,下面是我手写的
private User aaa;
public User getUser(){
return this.aaa;
}
public User setUser(User user){
this.aaa=user;
}
问题所在,如果不注意,

private TPuser tPuser;

public TPuser gettPuser() {
return tPuser;
}

public void settPuser(TPuser tPuser) {
this.tPuser = tPuser;
}
注意get,set后面不是大写,struct2,和spring 只认 对象(private Aaa bbb)中间的bbb把首字母大写然后加上get,set既getBbb(),setBbbb();
在强调一遍get,set是对象,不是类!!

探索Java语言与JVM中的Lambda表达式

头(->)将前两者分隔开。

注意:Lambda表达式的语法仍可能会面临改变,但在撰写本文的时候,下面示例中所展示的语法是能够正常工作的。

Lambda表达式非常倚重类型推导,与Java的其它语法相比,这显得极其不同寻常。
让我们进一步考虑之前已经看过的一个示例(请见清单11)。如果看看ActionListener的定义,可以发现它只有一个方法(请见清单12)。 阅读全文 ……