- 浏览: 531761 次
- 性别:
- 来自: 山东济南
文章分类
最新评论
-
dragon_8844:
非常不错,nice
java.util.concurrent 多线程框架 -
wusendong:
很好的文章!受益匪浅,谢谢!
java.util.concurrent 多线程框架 -
SINCE1978:
你也关注并发啊
java.util.concurrent 多线程框架 -
lku1314:
这个不错 刚刚找到这个组建 以前孤陋寡闻了 像lz学习!标 ...
quartz 在WEB中应用小结 -
lliiqiang:
人们对于目标需要的需求明确的去做,对于目标以外的因素是随机的执 ...
flex和后端的数据交互(一)--XML和HTTPService
刚进公司没多久时,领导让我带两个新人(07年7月份毕业的)。他们两个是试用期3个月都过了之后才参与到我们现在的项目中来的,算起来他们也工作了快一年了,可是今天无意中修改一个他们写过的一个类文件时,看到他们写的一些代码,让我又好气又好笑。可能也是我以前只注意给他们测试功能了,没怎么注意代码方面的问题吧!
晒晒他们的部分代码!
我现在也体会到当初我找工作的时候为什么那么难了,同时也提醒一下即将毕业的朋友,想找到不错的工作,你的工作态度确实得端正!
以前没带过新人,大家也介绍一下,带新人的经验吧!
我需要说明一下,我发贴的目的是想提醒一下临近毕业的朋友,不是公司不需要应届毕业生,应届毕业生有优点也有缺点。但是你进入公司以后,自己的发展和进步还是要靠自己的努力。工作了半年还能写出这样令人佩服的代码,那就只能是你自己的问题了,当然也有我自己的责任,毕竟是我带他们。
有则改之,无则加勉,别无他意,仅此而已!
这样的代码也好意思拿出来晒晒,哎,世风日下呀。
从效率上来讲,当然是用StringBuffer.append()
样式化的注释聊胜于无,取而代之的是给类、方法、属性和变量取个尽可能的有意义的名字。类的职责要尽可能的简单,方法的逻辑也尽可能的简单,在对效率要求不是极高的时候。
如果a_binary为null怎么办?
如果a_binary.substring(index,index+1)为null怎么办?
代码里面类似的缺陷很多
谢谢你能仔细看我的代码及你的意见.
但是a_binary为null是不可能的.
int i=a|256;
String is=Integer.toString(i, 2);
a是一个byte,a|256,所以is的长度肯定是9
又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null.
如果逻辑有错,希望各位纠正下..
如果还是觉得可能为null,那就举出反例吧.
一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的,
如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性
这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。
团队合作的项目,是否意味着你写的每个方法别人都可能去调用?或者说你每写一个方法,都需要考虑到别人调用??注意,我这个方法只服务于其所在的这个实现类,并没有想要让别人调用.我希望别人调用的方法,都在了这个类所实现的接口里.
我希望取值范围只能是0-7,所以for(int i=0;i<8;i++)中的i不是保证了吗?这个方法只用于两个for(int i=0;i<8;i++)下,我没必要连着写两遍,因此我抽象出来了这个方法.这个方法只服务于其所在的类.并没有写入这个类所实现的接口,所以只可能是这个类的方法去调用这个类.
参数int index代表byte a中第index个bit,自然取(x,x+7)了
写出来的方法就是提供别人(可能是自己)调用的,对于现在你肯定能知道输入是什么,输入格式是什么,但是过了半年之后,你能很快知道这个方法应该传入什么参数吗?
如果a_binary为null怎么办?
如果a_binary.substring(index,index+1)为null怎么办?
代码里面类似的缺陷很多
谢谢你能仔细看我的代码及你的意见.
但是a_binary为null是不可能的.
int i=a|256;
String is=Integer.toString(i, 2);
a是一个byte,a|256,所以is的长度肯定是9
又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null.
如果逻辑有错,希望各位纠正下..
如果还是觉得可能为null,那就举出反例吧.
一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的,
如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性
这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。
团队合作的项目,是否意味着你写的每个方法别人都可能去调用?或者说你每写一个方法,都需要考虑到别人调用??注意,我这个方法只服务于其所在的这个实现类,并没有想要让别人调用.我希望别人调用的方法,都在了这个类所实现的接口里.
我希望取值范围只能是0-7,所以for(int i=0;i<8;i++)中的i不是保证了吗?这个方法只用于两个for(int i=0;i<8;i++)下,我没必要连着写两遍,因此我抽象出来了这个方法.这个方法只服务于其所在的类.并没有写入这个类所实现的接口,所以只可能是这个类的方法去调用这个类.
参数int index代表byte a中第index个bit,自然取(x,x+7)了
这是当然的,也是必须的。当然你可以坚持你的意见,毕竟很多事情自己没有经历过的时候别人说的再多也没用,不然
为什么很多公司招人都要求要多年工作经验,这就是经验的体现。
如果a_binary为null怎么办?
如果a_binary.substring(index,index+1)为null怎么办?
代码里面类似的缺陷很多
谢谢你能仔细看我的代码及你的意见.
但是a_binary为null是不可能的.
int i=a|256;
String is=Integer.toString(i, 2);
a是一个byte,a|256,所以is的长度肯定是9
又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null.
如果逻辑有错,希望各位纠正下..
如果还是觉得可能为null,那就举出反例吧.
一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的,
如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性
这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。
团队合作的项目,是否意味着你写的每个方法别人都可能去调用?或者说你每写一个方法,都需要考虑到别人调用??注意,我这个方法只服务于其所在的这个实现类,并没有想要让别人调用.我希望别人调用的方法,都在了这个类所实现的接口里.
我希望取值范围只能是0-7,所以for(int i=0;i<8;i++)中的i不是保证了吗?这个方法只用于两个for(int i=0;i<8;i++)下,我没必要连着写两遍,因此我抽象出来了这个方法.这个方法只服务于其所在的类.并没有写入这个类所实现的接口,所以只可能是这个类的方法去调用这个类.
参数int index代表byte a中第index个bit,自然取(x,x+7)了
这是当然的,也是必须的。当然你可以坚持你的意见,毕竟很多事情自己没有经历过的时候别人说的再多也没用,不然
为什么很多公司招人都要求要多年工作经验,这就是经验的体现。
行了,那这个方法不写了.直接两个for(int i=0;i<8;i++)中重复两段相同的内容,你觉得怎样?那样的话取值自然就是0-7了.哈哈,我有些要崩溃,不争论了.你说的那些我都知道.可是具体情况具体判断.我只能说,你考虑问题比较片.
如果a_binary为null怎么办?
如果a_binary.substring(index,index+1)为null怎么办?
代码里面类似的缺陷很多
谢谢你能仔细看我的代码及你的意见.
但是a_binary为null是不可能的.
int i=a|256;
String is=Integer.toString(i, 2);
a是一个byte,a|256,所以is的长度肯定是9
又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null.
如果逻辑有错,希望各位纠正下..
如果还是觉得可能为null,那就举出反例吧.
一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的,
如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性
这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。
团队合作的项目,是否意味着你写的每个方法别人都可能去调用?或者说你每写一个方法,都需要考虑到别人调用??注意,我这个方法只服务于其所在的这个实现类,并没有想要让别人调用.我希望别人调用的方法,都在了这个类所实现的接口里.
我希望取值范围只能是0-7,所以for(int i=0;i<8;i++)中的i不是保证了吗?这个方法只用于两个for(int i=0;i<8;i++)下,我没必要连着写两遍,因此我抽象出来了这个方法.这个方法只服务于其所在的类.并没有写入这个类所实现的接口,所以只可能是这个类的方法去调用这个类.
参数int index代表byte a中第index个bit,自然取(x,x+7)了
这是当然的,也是必须的。当然你可以坚持你的意见,毕竟很多事情自己没有经历过的时候别人说的再多也没用,不然
为什么很多公司招人都要求要多年工作经验,这就是经验的体现。
晒晒他们的部分代码!
/** * 查询方案金额总和 * * @param lottype * Long * @return double */ public Double getsummation(Long lottype) { double sum = 0.00; List ls = null; String sql = ""; if (sql != null) { sql = " select sum(amount) from OccurProj a where a.lottype = '" + lottype + "' "; } ls = find(sql); if (ls != null && ls.isEmpty()) { for (int i = 0; i < ls.size(); i++) { OccurProj occurproj = (OccurProj) ls.get(i); sum = sum + occurproj.getAmount(); } } return sum; }
/** * 根据主键查询明细信息 * * @param occurproj * OccurProj * @return String */ public List queryById(Long id) { String sql = ""; if (sql != null) { sql = " from OccurProj a where a.id=" + id; } return translateCode2Str(find(sql)); }
/** * 参数查询 * * @param occurproj * OccurProj * @param lottype * Long * @return List */ public List queryByPara(String username, Long lottype) { String sql = ""; if (username != null && username.length() > 0) { sql += " and a.username like ? "; } if (sql.length() > 1) { sql = " from OccurProj a where 1=1 and a.lottype = '" + lottype + "' " + sql; } else sql = " from OccurProj where lottype = '" + lottype + "' "; return translateCode2Str(find(sql)); }
我现在也体会到当初我找工作的时候为什么那么难了,同时也提醒一下即将毕业的朋友,想找到不错的工作,你的工作态度确实得端正!
以前没带过新人,大家也介绍一下,带新人的经验吧!
我需要说明一下,我发贴的目的是想提醒一下临近毕业的朋友,不是公司不需要应届毕业生,应届毕业生有优点也有缺点。但是你进入公司以后,自己的发展和进步还是要靠自己的努力。工作了半年还能写出这样令人佩服的代码,那就只能是你自己的问题了,当然也有我自己的责任,毕竟是我带他们。
有则改之,无则加勉,别无他意,仅此而已!
评论
59 楼
vicksong
2008-05-14
能满足客户功能的代码就是好代码
58 楼
mylifestyle1225
2008-05-14
回LS的,拿出来晒就是为了请老手指点的.
有事说事,没事少插嘴,不说话没人把你当哑巴.每个人都有菜鸟的过程,你也不是这么过来的么?你是一个新人的时候有胆量晒代码让人指点吗?
典型的中国人的挖苦讽刺,自持清高的心理,不知道你自己达到了什么境界.
是不是这么说一句,很有满足感?那就成就你的满足感吧.但是我到了你这个年龄,肯定能超过你这类货色.
有事说事,没事少插嘴,不说话没人把你当哑巴.每个人都有菜鸟的过程,你也不是这么过来的么?你是一个新人的时候有胆量晒代码让人指点吗?
典型的中国人的挖苦讽刺,自持清高的心理,不知道你自己达到了什么境界.
是不是这么说一句,很有满足感?那就成就你的满足感吧.但是我到了你这个年龄,肯定能超过你这类货色.
57 楼
hxhjava
2008-05-14
mylifestyle1225 写道
String sql = "";
if (sql != null)
哈哈哈哈哈.....
我也07年7月份毕业,工作也就3个月,但也不至于这么糊涂.另外,小晒一下刚写完代码.
public Map<Integer, String> getFields(String message) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
BitSet bitMap=new BitSet();
boolean isExtend=false;
Map<Integer,String> fields=new HashMap<Integer,String>();//用来存放报文标识类型(key=0),位图(key=1),2-128个域(key=2--key=128)
byte[] all = message.getBytes("ISO-8859-1");//把字符串转成byte[]
byte[] messageType=new byte[4];//存放报文类型标识符的byte[]
for(int i=0;i<4;i++){
messageType[i]=all[i];
}
fields.put(0, new String(messageType,"ISO-8859-1"));//放入Map<Integer,String> fields
if(all[4]<0){//如果有扩展位图
isExtend=true;
}
//初始化基本位图,根据检索基本位图的8个字节的二进制的结果(第4-11字节),把bitMap的32位到95位设置成true(1)或者false(0),
int count=4;
while(count<12&&count>3){
byte each=all[count];
count++;
for(int i=0;i<8;i++){
if(getValue(each,i)){//如果返回true,即二进制上是1,把该bit位设置成true,默认为false
bitMap.set((count-1)*8+i,true);
}
}
}
//如果有扩展位图,初始化扩展位图,根据检索扩展位图的8个字节的二进制的结果(第12-19字节),bitMap的96-153,设置成true(1)或者false(0)
if(isExtend){
while(count>11&&count<20){
byte each=all[count];
count++;
for(int i=0;i<8;i++){
if(getValue(each,i)){
bitMap.set((count-1)*8+i,true);//如果返回true,即二进制上是1,把该bit位设置成true,默认为false
}
}
}
}
/*测试位图
for(int z=32;z<bitMap.size();z++){
if(bitMap.get(z)){
System.out.println(z);
}
}*/
System.out.println("位图初始化完成");
//初始化位图完成,开始读取数据,i=1表示从bitMap的第2个位置开始循环读取。
if(isExtend){
int currentByte=20;
for(int i=32;i<161;i++){
currentByte=putFields(fields,currentByte,bitMap,i,all);
fields.put(1, "1");
}
}else{
int currentByte=12;
for(int i=32;i<161;i++){
currentByte=putFields(fields,currentByte,bitMap,i,all);
fields.put(1, "0");
}
}
return fields;
}
//检索一个byte二进制中对应位置上的值的方法,返回false表示"0",true表示"1"; 参数int index取0-7,a取[-128到127]
public boolean getValue(byte a,int index){
//把一个byte转换成类似"01000000"的形式,并用一个String的值表示
String a_binary;
if(a>-1&&a<128){
int i=a|256;
String is=Integer.toString(i, 2);
a_binary=is.substring(1, 9);
}else{
int i=(-a)|256;
String is=Integer.toString(i, 2);
a_binary="1"+is.substring(2, 9);
}
if(a_binary.substring(index,index+1).equals("0")){
return false;
}else{
return true;
}
}
if (sql != null)
哈哈哈哈哈.....
我也07年7月份毕业,工作也就3个月,但也不至于这么糊涂.另外,小晒一下刚写完代码.
public Map<Integer, String> getFields(String message) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
BitSet bitMap=new BitSet();
boolean isExtend=false;
Map<Integer,String> fields=new HashMap<Integer,String>();//用来存放报文标识类型(key=0),位图(key=1),2-128个域(key=2--key=128)
byte[] all = message.getBytes("ISO-8859-1");//把字符串转成byte[]
byte[] messageType=new byte[4];//存放报文类型标识符的byte[]
for(int i=0;i<4;i++){
messageType[i]=all[i];
}
fields.put(0, new String(messageType,"ISO-8859-1"));//放入Map<Integer,String> fields
if(all[4]<0){//如果有扩展位图
isExtend=true;
}
//初始化基本位图,根据检索基本位图的8个字节的二进制的结果(第4-11字节),把bitMap的32位到95位设置成true(1)或者false(0),
int count=4;
while(count<12&&count>3){
byte each=all[count];
count++;
for(int i=0;i<8;i++){
if(getValue(each,i)){//如果返回true,即二进制上是1,把该bit位设置成true,默认为false
bitMap.set((count-1)*8+i,true);
}
}
}
//如果有扩展位图,初始化扩展位图,根据检索扩展位图的8个字节的二进制的结果(第12-19字节),bitMap的96-153,设置成true(1)或者false(0)
if(isExtend){
while(count>11&&count<20){
byte each=all[count];
count++;
for(int i=0;i<8;i++){
if(getValue(each,i)){
bitMap.set((count-1)*8+i,true);//如果返回true,即二进制上是1,把该bit位设置成true,默认为false
}
}
}
}
/*测试位图
for(int z=32;z<bitMap.size();z++){
if(bitMap.get(z)){
System.out.println(z);
}
}*/
System.out.println("位图初始化完成");
//初始化位图完成,开始读取数据,i=1表示从bitMap的第2个位置开始循环读取。
if(isExtend){
int currentByte=20;
for(int i=32;i<161;i++){
currentByte=putFields(fields,currentByte,bitMap,i,all);
fields.put(1, "1");
}
}else{
int currentByte=12;
for(int i=32;i<161;i++){
currentByte=putFields(fields,currentByte,bitMap,i,all);
fields.put(1, "0");
}
}
return fields;
}
//检索一个byte二进制中对应位置上的值的方法,返回false表示"0",true表示"1"; 参数int index取0-7,a取[-128到127]
public boolean getValue(byte a,int index){
//把一个byte转换成类似"01000000"的形式,并用一个String的值表示
String a_binary;
if(a>-1&&a<128){
int i=a|256;
String is=Integer.toString(i, 2);
a_binary=is.substring(1, 9);
}else{
int i=(-a)|256;
String is=Integer.toString(i, 2);
a_binary="1"+is.substring(2, 9);
}
if(a_binary.substring(index,index+1).equals("0")){
return false;
}else{
return true;
}
}
这样的代码也好意思拿出来晒晒,哎,世风日下呀。
56 楼
armorking
2008-05-14
terranhao 写道
我想问下
字符串连接不用类似 "select * from a where asdf='"+something+"'";
用什么?
用String.Format吗?
我平时就老写++++类似的东西,请教高人怎么写?
字符串连接不用类似 "select * from a where asdf='"+something+"'";
用什么?
用String.Format吗?
我平时就老写++++类似的东西,请教高人怎么写?
从效率上来讲,当然是用StringBuffer.append()
55 楼
terranhao
2008-05-14
我想问下
字符串连接不用类似 "select * from a where asdf='"+something+"'";
用什么?
用String.Format吗?
我平时就老写++++类似的东西,请教高人怎么写?
字符串连接不用类似 "select * from a where asdf='"+something+"'";
用什么?
用String.Format吗?
我平时就老写++++类似的东西,请教高人怎么写?
54 楼
seele
2008-05-14
...仿佛看到了C语言...
两位也别这么争来争去的..累得慌
两位也别这么争来争去的..累得慌
53 楼
biby
2008-05-14
狂-_-b 汗~~~,逻辑混乱。。。
52 楼
xuelange
2008-05-13
嗯,是应该删掉
51 楼
mylifestyle1225
2008-05-13
这帖子也最好删了,没什么存在的意义.睡觉了,明天起又开始忙碌了.
50 楼
OnJavaRoad
2008-05-13
应该是大学期间代码写得太少了,代码看多了,写多了自然就不会写出这样子代码。
49 楼
laiseeme
2008-05-13
终于能上来水了,又被关两天小黑屋
48 楼
linhong_1001
2008-05-13
mylifestyle1225 写道
注释我写了...没复制过来而已.你再给我+5分吧.
第2,3条我没异议,扣吧..
纠正下,我刚写完,还没上交了.但测试完了.
第2,3条我没异议,扣吧..
纠正下,我刚写完,还没上交了.但测试完了.
样式化的注释聊胜于无,取而代之的是给类、方法、属性和变量取个尽可能的有意义的名字。类的职责要尽可能的简单,方法的逻辑也尽可能的简单,在对效率要求不是极高的时候。
47 楼
mylifestyle1225
2008-05-13
恩,这个话题到此为止.
ps,如果你不希望别人调用,你至少应该声明为private,而不是只通过接口来限制。
这句话多谢指点,倒一直没注意.
ps,如果你不希望别人调用,你至少应该声明为private,而不是只通过接口来限制。
这句话多谢指点,倒一直没注意.
46 楼
fantasy
2008-05-13
mylifestyle1225 写道
colin4k 写道
mylifestyle1225 写道
colin4k 写道
引用
if(a_binary.substring(index,index+1).equals("0")){
如果a_binary为null怎么办?
如果a_binary.substring(index,index+1)为null怎么办?
代码里面类似的缺陷很多
谢谢你能仔细看我的代码及你的意见.
但是a_binary为null是不可能的.
int i=a|256;
String is=Integer.toString(i, 2);
a是一个byte,a|256,所以is的长度肯定是9
又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null.
如果逻辑有错,希望各位纠正下..
如果还是觉得可能为null,那就举出反例吧.
一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的,
如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性
这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。
团队合作的项目,是否意味着你写的每个方法别人都可能去调用?或者说你每写一个方法,都需要考虑到别人调用??注意,我这个方法只服务于其所在的这个实现类,并没有想要让别人调用.我希望别人调用的方法,都在了这个类所实现的接口里.
我希望取值范围只能是0-7,所以for(int i=0;i<8;i++)中的i不是保证了吗?这个方法只用于两个for(int i=0;i<8;i++)下,我没必要连着写两遍,因此我抽象出来了这个方法.这个方法只服务于其所在的类.并没有写入这个类所实现的接口,所以只可能是这个类的方法去调用这个类.
参数int index代表byte a中第index个bit,自然取(x,x+7)了
写出来的方法就是提供别人(可能是自己)调用的,对于现在你肯定能知道输入是什么,输入格式是什么,但是过了半年之后,你能很快知道这个方法应该传入什么参数吗?
45 楼
mylifestyle1225
2008-05-13
colin4k 写道
mylifestyle1225 写道
colin4k 写道
mylifestyle1225 写道
colin4k 写道
引用
if(a_binary.substring(index,index+1).equals("0")){
如果a_binary为null怎么办?
如果a_binary.substring(index,index+1)为null怎么办?
代码里面类似的缺陷很多
谢谢你能仔细看我的代码及你的意见.
但是a_binary为null是不可能的.
int i=a|256;
String is=Integer.toString(i, 2);
a是一个byte,a|256,所以is的长度肯定是9
又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null.
如果逻辑有错,希望各位纠正下..
如果还是觉得可能为null,那就举出反例吧.
一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的,
如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性
这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。
团队合作的项目,是否意味着你写的每个方法别人都可能去调用?或者说你每写一个方法,都需要考虑到别人调用??注意,我这个方法只服务于其所在的这个实现类,并没有想要让别人调用.我希望别人调用的方法,都在了这个类所实现的接口里.
我希望取值范围只能是0-7,所以for(int i=0;i<8;i++)中的i不是保证了吗?这个方法只用于两个for(int i=0;i<8;i++)下,我没必要连着写两遍,因此我抽象出来了这个方法.这个方法只服务于其所在的类.并没有写入这个类所实现的接口,所以只可能是这个类的方法去调用这个类.
参数int index代表byte a中第index个bit,自然取(x,x+7)了
这是当然的,也是必须的。当然你可以坚持你的意见,毕竟很多事情自己没有经历过的时候别人说的再多也没用,不然
为什么很多公司招人都要求要多年工作经验,这就是经验的体现。
44 楼
colin4k
2008-05-13
ps,如果你不希望别人调用,你至少应该声明为private,而不是只通过接口来限制。
并且,你之前的代码里面没有看到接口。
也从来没听说过一个函数的参数的有效取值范围,是通过调用者来限定的。
就好象某个公司提供服务,却不告诉客户自己提供服务的范围,而要对方自己去界定
范围。
也许是你从来没考虑过团队合作的问题,从来没考虑过自己的代码要给其他人用吧。
这个话题到此为止了,再说下去就真的是在给应届生做培训了。
并且,你之前的代码里面没有看到接口。
也从来没听说过一个函数的参数的有效取值范围,是通过调用者来限定的。
就好象某个公司提供服务,却不告诉客户自己提供服务的范围,而要对方自己去界定
范围。
也许是你从来没考虑过团队合作的问题,从来没考虑过自己的代码要给其他人用吧。
这个话题到此为止了,再说下去就真的是在给应届生做培训了。
43 楼
mylifestyle1225
2008-05-13
colin4k 写道
mylifestyle1225 写道
colin4k 写道
mylifestyle1225 写道
colin4k 写道
引用
if(a_binary.substring(index,index+1).equals("0")){
如果a_binary为null怎么办?
如果a_binary.substring(index,index+1)为null怎么办?
代码里面类似的缺陷很多
谢谢你能仔细看我的代码及你的意见.
但是a_binary为null是不可能的.
int i=a|256;
String is=Integer.toString(i, 2);
a是一个byte,a|256,所以is的长度肯定是9
又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null.
如果逻辑有错,希望各位纠正下..
如果还是觉得可能为null,那就举出反例吧.
一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的,
如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性
这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。
团队合作的项目,是否意味着你写的每个方法别人都可能去调用?或者说你每写一个方法,都需要考虑到别人调用??注意,我这个方法只服务于其所在的这个实现类,并没有想要让别人调用.我希望别人调用的方法,都在了这个类所实现的接口里.
我希望取值范围只能是0-7,所以for(int i=0;i<8;i++)中的i不是保证了吗?这个方法只用于两个for(int i=0;i<8;i++)下,我没必要连着写两遍,因此我抽象出来了这个方法.这个方法只服务于其所在的类.并没有写入这个类所实现的接口,所以只可能是这个类的方法去调用这个类.
参数int index代表byte a中第index个bit,自然取(x,x+7)了
这是当然的,也是必须的。当然你可以坚持你的意见,毕竟很多事情自己没有经历过的时候别人说的再多也没用,不然
为什么很多公司招人都要求要多年工作经验,这就是经验的体现。
行了,那这个方法不写了.直接两个for(int i=0;i<8;i++)中重复两段相同的内容,你觉得怎样?那样的话取值自然就是0-7了.哈哈,我有些要崩溃,不争论了.你说的那些我都知道.可是具体情况具体判断.我只能说,你考虑问题比较片.
42 楼
javaxy
2008-05-13
我也07年毕业的,到现在也没进入软件行业,现在只能在半导体行业混,这都毕业快一年了,还能写出这种代码?是人嘛?我虽然水平不高,但比她们强多了!
41 楼
colin4k
2008-05-13
mylifestyle1225 写道
colin4k 写道
mylifestyle1225 写道
colin4k 写道
引用
if(a_binary.substring(index,index+1).equals("0")){
如果a_binary为null怎么办?
如果a_binary.substring(index,index+1)为null怎么办?
代码里面类似的缺陷很多
谢谢你能仔细看我的代码及你的意见.
但是a_binary为null是不可能的.
int i=a|256;
String is=Integer.toString(i, 2);
a是一个byte,a|256,所以is的长度肯定是9
又因为只需在for(int i=0;i<8;i++)的条件下调用该方法,所以index只能取0-7,因此a_binary.substring(index,index+1)也不可能为null.
如果逻辑有错,希望各位纠正下..
如果还是觉得可能为null,那就举出反例吧.
一个团队合作的项目,你如何保证别人在调用这个函数时,只传0-7的index进来?就算用注释来说明都是不足够的,
如果你希望它的取值范围只能是0-7也只会是0-7,那你应该用代码来保证,例如在函数一开始就验证其取值的正确性
这种陷阱是项目里面非常常见的,也是区分新手和有经验的开发者的重要方法。
团队合作的项目,是否意味着你写的每个方法别人都可能去调用?或者说你每写一个方法,都需要考虑到别人调用??注意,我这个方法只服务于其所在的这个实现类,并没有想要让别人调用.我希望别人调用的方法,都在了这个类所实现的接口里.
我希望取值范围只能是0-7,所以for(int i=0;i<8;i++)中的i不是保证了吗?这个方法只用于两个for(int i=0;i<8;i++)下,我没必要连着写两遍,因此我抽象出来了这个方法.这个方法只服务于其所在的类.并没有写入这个类所实现的接口,所以只可能是这个类的方法去调用这个类.
参数int index代表byte a中第index个bit,自然取(x,x+7)了
这是当然的,也是必须的。当然你可以坚持你的意见,毕竟很多事情自己没有经历过的时候别人说的再多也没用,不然
为什么很多公司招人都要求要多年工作经验,这就是经验的体现。
40 楼
linhong_1001
2008-05-13
这样的代码还是让我长了见识,呵呵,代码生成器生成代码比这也要强上百倍吧
发表评论
-
java动态编程一例
2009-12-22 08:37 1636Test.java package test; im ... -
tomcat SSL基本配置
2009-11-30 09:25 1538切换到$TOMCAT_HOME下: 1.生成 server ... -
Oracle 10g自带性能监测工具
2009-11-04 09:08 3189安装Oracle 10g时可以选择安装自带的性能监测工具,对于 ... -
Liferay应用界面
2009-09-16 17:26 2243我们用Liferay Portal开发的项目,已有小成,sho ... -
Liferay Iframe Portlet
2009-09-01 08:30 5927The Iframe portlet makes it pos ... -
LifeRay 5.1.2 使用struts1.1时ClassNotFoundException
2009-08-25 10:37 1279今天修改一个portlet时出现 java.lang.Clas ... -
Tomcat 5 中文路径问题
2009-08-06 10:02 1436在tomcat 5下一个动态加载svg图形文件的页面; 页面中 ... -
dhtmlxtree使用中的CharConversionException: isHexDigit
2009-08-04 16:48 2024使用dhtmlxtree时,点击树节点异步加载子节点数据时,在 ... -
程序员五大层次,你属于哪一层?
2009-07-14 13:54 1251软件界一个无 ... -
第一次面别人
2009-05-27 09:40 1722“面”不是吃的,是看的。 从换了工作以后都很忙,周 ... -
liferay中使用struts时jar文件冲突
2009-05-26 13:52 1774异常: java.lang.NoSuchMethodE ... -
犹豫中,不知道该怎么办了!
2009-03-04 10:38 1246先说说我现在的公司, ... -
参数传递的浏览器差异
2008-10-19 22:32 1770情况大体是这样的:一个头页面header.jsp上有一个搜索框 ... -
该死的黑客
2008-09-22 15:06 1456公司一台对外网服务的linux系统数据库服务器,上周五被人破译 ... -
A Tutorial on Clustering Algorithms
2008-07-02 09:50 3118A Tutorial on Clustering Algor ... -
The Examples for Quartz Time Format
2008-05-16 15:02 1815The Examples for Quartz Time Fo ... -
昨天参加了一次面试
2008-05-06 11:40 2981象去年这个时候一样, ... -
开发小记
2008-02-13 15:54 15271. 在oracle中字符串拼 ... -
javascript实现日期操作的工具包
2007-12-13 13:39 3359最近一个小项目中用到了dwr,其中使用到了日期型数据;查了一下 ... -
开发中莫名奇妙的事(八卦)
2007-09-28 08:52 21222007年9月22日 ant进行jar ...
相关推荐
是也同样会碰到麻烦,遇到障碍,感觉头痛。如果没有真正的专家的指导,我不 可能如此迅速地将AJAX掌握到目前这样的程度,要真是让我自学三个月,然 后就写出书来的话,那真是在骗钱了。 老手能够快速学习的另一个...
在结构设计中,"超筋"是一个常见的问题,尤其对于新手设计师来说,它可能造成困扰。超筋是指结构或构件的配筋量超过了其实际所需的承载能力,这通常与位移、相对位移过大或者变形不协调有关。位移包括水平位移、竖向...
电路图是电子工程师日常工作中不可或缺的一部分,但新手如何看懂电路图却是一件让人头疼的事。特别是在单片机控制电路中,电路图的理解对整个项目的成功至关重要。 首先,让我们来理解电路图中的符号。VCC 和 GND ...
本文将深入探讨五个常见且让电脑小白们头疼的问题,并提供相应的解决指南。 首先,我们来聊聊关于电脑内存和硬盘的误解。很多人分不清楚什么是内存,什么是硬盘,他们往往认为这两者是同一个东西。其实不然,内存...
为什么收费? 1、这是花了我很多天的心思,用心打造...我们每个人平均每年都要做一次简历修改,你跳槽的时候就不会头疼简历了; 我应该怎么用? 因为有很多人照搬,最好不要照搬,按照你自己的想法用这样的套路去包装!
如日常工作中因为某个项目所收集的图片,或是平时逛设计网站所保存的图,又或者是平常收集的一些源文件,管理起这些素材总是让人头疼。 于是就诞生了开发一个素材管理工具。而且得到了光大设计师的高度认可。 软件...
如果sendmail让你头痛万分,现在你有更好的选择 —— Postfix。安全的结构设计与优异的可靠性,使它广受专家的好评与赞赏。Postfix也是许多新手的第一选择,因为它太容易架设了!事实上,Postfix已经成为MacOS X默认...
不少问题确实让我有些头痛,得到的大部分是埋怨,也慢慢失去了继续开发的动力了,大部分业余时间开发PHP版本的博客了,但我知道,好的东西是要经过千锤百炼的,不管什么事,无法做到让所有人都满意,现在整理了一个...
电脑出现的故障总是让人头疼,但掌握了正确的处理方法,大部分问题都能迎刃而解。我们汇总了常见的PC硬件和软件故障现象及其解决方法,帮助你快速诊断并修复电脑问题。 从硬件方面,我们探讨了诸如电源问题、散热...
1、前言:为了制作成功这个U盘,我着实费了不少时间和精力,因为是新手。在网上教程很多,看得我是眼花眼花缭乱,看得头疼。不过功夫不负有心人,我用了两天时间终于把这个可爱的启动U盘搞定啦。并且用了一下午时间...
然而,对于一些电脑新手来说,装机后如何快速联网一直是让人头疼的问题。网卡驱动的安装是连接网络的首要步骤,但并不是每个人都能轻松完成这一过程。幸运的是,随着科技的发展,出现了像驱动精灵(网卡版)这样的...
1、前言:为了制作成功这个U盘,我着实费了不少时间和精力,因为是新手。在网上教程很多,看得我是眼花眼花缭乱,看得头疼。不过功夫不负有心人,我用了两天时间终于把这个可爱的启动U盘搞定啦。并且用了一下午时间...
然而,对于烹饪新手来说,如何从零开始学习制作一道道美味佳肴,无疑是一个令人头疼的问题。幸运的是,随着科技的进步,越来越多的烹饪爱好者开始寻找便捷的数字化学习工具,《超级菜谱—让你轻松学做菜 V1.0 绿色免...
KnockOut 解决了令人头疼的抠图难题,使枯燥乏味的抠图变为轻松简单的过程。Knockout 2.0不但能够满足常见的抠图需要,而且还可以对烟雾、阴影和凌乱的毛发进行精细抠图,就算是透明的物体也可以轻松抠出。即便你是...
ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的问题,ARM异常中断返回就是这样一种令人头疼的问题。在ARM的使用问题中异常中断返回是新手们较为苦恼的问题,...
ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的问题,ARM异常中断返回就是这样一种令人头疼的问题。在ARM的使用问题中异常中断返回是新手们较为苦恼的问题,...
ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的问题,ARM异常中断返回就是这样一种令人头疼的问题。在ARM的使用问题中异常中断返回是新手们较为苦恼的问题,...
- 想实现创新,但电路设计让您头疼? - 答辩前夜,PPT资料和报告成为你的噩梦? 一份资料,解决所有问题! - 完整方案设计:从构思到实现,步步为营,轻松拿下创意点! - 专业电路设计:科学合理的电路图,无需再因...