论坛首页 招聘求职论坛

让人头疼的新手

浏览 51110 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-13  
我也马上成为应届生了,翻了翻一年前写的代码,的确很恶心,看来需要好好闭关恶补一下。
/** 
	 * 获得所有的资源类型
	 * @return 所有的资源类型数组*/
	public String[] getAllResourceType() {
		String[] resourceTypeArray = null;

		if (resourceDaoMap != null && !resourceDaoMap.isEmpty()) {
			Set set = resourceDaoMap.keySet();
			int counter = 0;
			resourceTypeArray = new String[resourceDaoMap.size()];
			Iterator it = set.iterator();
			while (it.hasNext()) {
				resourceTypeArray[counter] = (String) it.next();
				counter++;
			}
		}
		return resourceTypeArray;
	}
0 请登录后投票
   发表时间:2008-05-13  
resourceDaoMap.keySet().toArray()
0 请登录后投票
   发表时间:2008-05-13  
你们想干啥 整天应届 应届
0 请登录后投票
   发表时间:2008-05-13  
楼主如果你写那些代码你怎么写呢?
0 请登录后投票
   发表时间:2008-05-13  
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;
}
}
0 请登录后投票
   发表时间:2008-05-13  
mylifestyle1225 写道
String sql = "";  
        if (sql != null)
哈哈哈哈哈.....
我工作没一年,也就3个月,但也不至于这么糊涂.

不指出来的话。。。。
0 请登录后投票
   发表时间:2008-05-13  
我只想说一句,每个人都是从不会到会的过程,拿别人的代码来供大家鄙视,有意义么?
象是一个大人看着一个小孩走路摔了一跤,就笑之傻,不想想当初自己的成长的过程,ls的同志们那个不是这样过来的
0 请登录后投票
   发表时间:2008-05-13  
代码1问题多多

    /**
     * 查询方案金额总和
     * 
     * @param lottype
     *            Long
     * @return double
     */
    public Double getsummation(Long lottype)
    {
        //1、既然是算钱,就应该用BigDecimal
        //2、sum和ls变量不需要这么早声明
        double sum = 0.00;
         List ls = null;

        String sql = "";

        //3、这个条件是无效(永真)的
        if (sql != null)
        {
            //4、既然lottype的类型是Long,那么在SQL语句中作为参数的时候,就不应该括上单引号
            sql = " select sum(amount) from OccurProj a where a.lottype = '" + lottype + "' ";
        }

        ls = find(sql);

        //5、基于这个判断,内层的循环处理永远不会被执行
        //况且,就实际执行的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;
    }


在给一个改过的版本作为参照
    private static BigDecimal BIGDECIMAL_ZERO =  new BigDecimal("0");

    /**
     * 查询方案金额总和
     * 
     * @param lottype
     *            Long
     * @return BigDecimal
     */
    public BigDecimal getsummation(Long lottype)
    {
        if (lottype == null
        ){
            return BIGDECIMAL_ZERO;
        }

        String sql = sql = " select sum(amount) from OccurProj a where a.lottype = " + lottype;

        List ls = find(sql);

        if (ls == null && ls.size() == 0)
        {
            return BIGDECIMAL_ZERO;
        }

        OccurProj occurproj = (OccurProj) ls.get(0);
        return occurproj.getAmount();

    }
0 请登录后投票
   发表时间:2008-05-13  
别总说应届生不好,或者态度问题,自己招人不慎哈.
五一放假四天,我三天在代码里.
0 请登录后投票
   发表时间:2008-05-13  
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;
}
}

这份代码也拿出来show?呵呵
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics