看到了不少观众的支持,我的信心更足了,决定继续写下去。由于第一期的Java面向对象观众反应代码过多,表达不够清楚,思路有点乱,而且有错别字(好吧,我承认我的外语水平不好^_^)呵呵,谢谢大家的意见,所以本来是要写Java设计模式系列,我临时做了下调整,这期就写Java编程小技巧吧。
(1)你的判断两个数的奇偶性你用的方法合适吗
if(num%2!=0) 奇数 else 偶数
大家都知道这个方法,其实还有更快的小方法,可能有些人就不知道了
if(num & 1 ==1) 奇数else 偶数,用的屎位运算,肯定要快些啦。
(2)两个数的互换,大家都可能会用
type temp;
temp = x;
x = y;
y = temp;
也有不用临时变量的方法
x = x+y;
y = x-y;
x = x-y;
或
x = x^y;
y = y^x;
x = x^y;同样可以实现两个两个数交换,说有什么技术含量还真没什么,就是面试可能会考到。
(3)LINUX里面的权限判断,也可以借鉴,这里也是用位运算
int read = 1<<0;
int write = 1<<1;
int execute = 1<<2;
定义用户操作一个文件的权限为read | execute(权限值为5);linux里面文件的权限是三位数如777(系统任何人都有可读,可写,可执行的权限),可以用ls -l命名查看,因为linux里面的权限有组的概念,和windows的组策略差不多。
那么用户操作该文件的权限就可以算出来了 (read | execute) & read>=1?可读:不可读; 以此类推…
(4)字符串处理最好用正则表达式,和编译原理的神马自动机理论有关,处理速度也是非常快,在linux下大量使用如Grep命令,例子查找文件Hello.java文件里面是否有main关键字,
就可以用 find -name home\Hello.java | grep *\s+main\s+* |more
我们要处理根据xml旳节点的命名标准来判断字符串,XML节点命名标准如下:
1.第一个字符必须位字符
2.中间必须位数字和字符或.-_
3.最后必须位数字或字符或空格或.-_
我们就用JAVA的regex来处理,非常方便,正则表达是为:
String regex = “^[[a-zA-Z]|[\u2E80-\u9FFF]]+[[a-zA-Z]|[0-9]|[\u2E80-\u9FFF]|[.|\\-|_]]+\\s*”; (不要看这么长,实际上是非常简单的,看看Java API就知道怎么写了)
public class RegexTest{
@org.junit.Test
public void regexTest(){
String regex = “^[[a-zA-Z]|[\u2E80-\u9FFF]]+[[a-zA-Z]|[0-9]|[\u2E80-\u9FFF]|[.|\\-|_]]+\\s*”;
String input = “w你w好.-.553.你-.__.-. “;
java.util.regex.Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while(!matcher.matches()){
System.out.println(“匹配失败”);
break;
}
System.out.println(“匹配成功”);
//也可以用这种方式判断
/*
boolean isMacher = Pattern.matches(regex,input );
System.out.println(isMacher?”匹配”:”不匹配”);
*/
}
}
xml文件节点<w你w好.-.553.你-.__.-. />用上面的正则表达式来判断是没有问题的。
小技巧也就是平时编程的经验积累吧,所以呢我还是提倡多写代码,多思考。
一时半伙儿也想不到很多的小技巧,就写这么多了。如果你还不知道,就赶快学一下吧。如果你还有神马小技巧,赶快和大家分享!!
我的Email:donglinmei@hotmail.com 964318731@qq.com、Mobile Phone :(+86)182 5196 5264、qq :964318731 转载请注明出处http://mtoou.info/java-bcjqiao/