面试的一些准备

内连接,左、右连接,全连接

例子:
a
    id   name     b
    id   job   parent_id
            1  
3                   1     23     1
            2  
李四
                2     34     2
            3  
王武
                3     34     4

a.id
parent_id   存在关系


内连接

select   a.*,b.*   from   a   inner   join   b     on   a.id=b.parent_id

结果是
 
1  
3                   1     23     1
2  
李四
                2     34     2

左连接


select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id

结果是
 
1  
3                   1     23     1
2  
李四
                2     34     2
3  
王武
                null
右连接

select   a.*,b.*   from   a   right   join   b     on   a.id=b.parent_id

结果是
 
1  
3                   1     23     1
2  
李四
                2     34     2
null                 3     34     4

完全连接


select   a.*,b.*   from   a   full   join   b     on   a.id=b.parent_id


结果是
 
1  
3                   1     23     1
2  
李四
                2     34     2
null                 3     34     4
3  
王武                 null

 

 

 

冒泡排序

void BubbleSort(SeqList R)
   { //R
l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序
     int i
j
     Boolean exchange
//交换标志
     for(i=1;i<n;i++){ //
最多做n-1趟排序
       exchange=FALSE
//本趟排序开始前,交换标志应为假
       for(j=n-1;j>=i
j--) //对当前无序区R[i..n]自下向上扫描
        if(R[j+1].key<R[j].key){//
交换记录
          R[0]=R[j+1]
//R[0]不是哨兵,仅做暂存单元
          R[j+1]=R[j]

          R[j]=R[0]

          exchange=TRUE
//发生了交换,故将交换标志置为真
         }
       if(!exchange) //
本趟排序未发生交换,提前终止算法
             return

     } //endfor(
外循环)
    } //BubbleSort

三大范式

第一范式:确保每列的原子性.      如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式.    
  例如:顾客表(姓名、编号、地址、……)其中"地址"列还可以细分为国家、省、市、区等。   
第二范式:在第一范式的基础上更进一层,
目标是确保表中的每列都和主键相关.      如果一个关系满足第一范式,并且除了主键以外的其它列,都依赖于该主键,则满足第二范式.      
例如:订单表(订单编号、产品编号、定购日期、价格、……),"订单编号"为主键,"产品编号"和主键列没有直接的关系,即"产品编号"
列不依赖于主键列,应删除该列。  
第三范式:在第二范式的基础上更进一层,目标是确保每列都和主键列直接相关,而不是间接相关.    
  如果一个关系满足第二范式,并且除了主键以外的其它列都不依赖于主键列,则满足第三范式.      为了理解第三范式,需要根据Armstrong公
里之一定义传递依赖。假设A、B和C是关系R的三个属性,如果A-〉B且B-〉C,则从这些函数依赖中,可以得出A-〉C,如上所述,
依赖A-〉C是传递依赖。      例如:订单表(订单编号,定购日期,顾客编号,顾客姓名,……),初看该表没有问题,满足第二范式,
每列都和主键列"订单编号"相关,再细看你会发现"顾客姓名"和"顾客编号"相关,"顾客编号"和"订单编号"又相关,最后经过传递依赖,
"顾客姓名"也和"订单编号"相关。为了满足第三范式,应去掉"顾客姓名"列,放入客户表中。
 
 
short i =1; i=i+1与short i=1; i+=1编译时的区别
short i =1; i=i+1;
short i=1;i+=1;
这两有什么区别呢 ?
对两个容量不一样的数据类型的变量进行算术运算时,java会自动将小容量的变量进行精度提升,然后再进行运算,得到的结果类型是提升后的大容量的数据类型.如果将该结果赋值给小容量的数据类型的变量,则必须进行强制的类型转换,否则编译程序会报损失精度错.如楼主示例,用i来表示1: short s1 = 1; int i = 1; 首先,因为short类型是16位的,而int类型是32位的,在进行 (s1+i) 运算时,自动将s1提升到32位,然后与i相加,得到的结果是32位的,而此时 s1=s1+i; 必然报错,因为如果赋值成功,只是把低16位赋给了s1,这个虽然正是楼主想要的结果,但是编译程序却不能判定你的意图是什么. 执行强转: s1=(short)(s1+i); 就没问题了. s1+=i;能编译通过并得到正确结果,而 s1=s1+i; 却报错,是因为它们并不像楼主认为的那样是等价的,s1+=i的方式java会对i进行窄化转换,由编译程序自动执行. java规范中说: E1 op=E2 实际上等价于 : E1=(T)( (E1)op(E2) ) 其中T是E1的数据类型.这种类型转换或者是一个恒等转换,或者是一个窄化转换. 这个说明java是一种强类型的语言,对数据类型的要求是非常严格的,否则会引起混乱. 下面解释一下三种类型转换:恒等转换(相同容量的两个数据类型之间的赋值);拓宽转换(小容量类型赋值给大容量类型);窄化转换(大容量赋值给小容量类型). 实际上,前两种转换都是编译程序自动执行的,而窄化转换则要求必须显式的执行.
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
  1. public class SplitStr {   
  2.   
  3.     /*  
  4.      * 判断是否为汉字  
  5.      *   
  6.      * @param cc 输入字符  
  7.      */  
  8.     public static boolean strIfChinese(char cc) {   
  9.         String ccStr = String.valueOf(cc);   
  10.         return ccStr.getBytes().length > 1 ? true : false;   
  11.   
  12.     }   
  13.   
  14.     /*  
  15.      * 计算输入字符串的总字节数  
  16.      *   
  17.      * @param str  
  18.      */  
  19.     public static int strTotalLen(String str) {   
  20.         int len = 0;   
  21.         char[] chr = str.toCharArray();   
  22.         for (char cc : chr) {   
  23.             if (!strIfChinese(cc)) {   
  24.                 len = len + 1;   
  25.             } else {   
  26.                 len = len + 2;   
  27.             }     
  28.         }   
  29.         return len;   
  30.     }   
  31.   
  32.     /*  
  33.      *   
  34.      * @param inputStr 输入的字符串  
  35.      *   
  36.      * @param len 指定长度的字节数  
  37.      */  
  38.     public String retStr(String inputStr, int len) {   
  39.            
  40.         // 如果输入的字符串为空或者是"",则直接输出"";   
  41.         if (inputStr == null || inputStr.equals(""))   
  42.             return "";   
  43.         // 如果len为0或大于总字节数   
  44.         if (len == 0 || len > strTotalLen(inputStr))   
  45.             return inputStr;   
  46.            
  47.         char[] chr = inputStr.toCharArray();   
  48.            
  49.         String str="";   
  50.         int count = 0;   
  51.         for(char cc:chr){   
  52.             if (count < len) {   
  53.                 if (strIfChinese(cc)) {   
  54.                     if (count + 1 == len)   
  55.                         return str;   
  56.                     count = count + 2;   
  57.                     str = str + String.valueOf(cc);   
  58.                 } else {   
  59.                     count = count + 1;   
  60.                     str = str + String.valueOf(cc);   
  61.                 }   
  62.                    
  63.             }               
  64.                
  65.         }   
  66.            
  67.         return str;   
  68.     }   
  69.        
  70.     /**  
  71.      * @param args  
  72.      */  
  73.     public static void main(String[] args) {   
  74.   
  75.         /*  
  76.          * String str = "a我bc"; char[] chr = str.toCharArray(); byte[] byt =  
  77.          * str.getBytes(); for (byte bb : byt) { System.out.println(bb); }  
  78.          *   
  79.          * for (char cc : chr) { System.out.println(cc); }  
  80.          */  
  81.   
  82.         // System.out.println(chr.length + "&&&" + byt.length + "%%%" + by);   
  83.         SplitStr splitStr = new SplitStr();   
  84.         String str = "我b们c";   
  85.         System.out.println(splitStr.retStr(str, 6));   
  86.            
  87.     }   
  88. }  

ERP实施工程师

1、一定的技术基础。 
身为软件实施顾问,你不能不了解你的产品,当然你可以了解得粗略,不必象技术工程师那样精通,你要能够回答客户提出的大部分问题,所以需要你掌握的知识非常综合、全面——强调的是广度而不是深度,当然,如果你的深度够好,那么会更加有利。如果你的深度不够,经常回答不上客户的问题,不要紧,关键是你要留一个缓冲余地,你要知道,你应该从哪里获得帮助和支持。优秀的实施顾问,应该懂得如何调度资源。 
以下为我认为实施顾问应该掌握的技术: 
(1)ERP软件本身,如SAP, ORACLE中的某个或某些模块,用友、金蝶等。 
(2)系统管理知识,包括WINDOWS 2000,WINXP。 
(3)数据库知识,包括SQL2000、ORACLE、DB2等等,SQL技能。细分可为查询分析器的使用,数据表的操作,报表的基本技能等等。 
(4)网络知识。 
(5)一定的硬件知识。 

2、行业知识。 
行业知识浩如烟海,没有人可以掌握全部。把握好你的定位,你要了解全部的产品有什么,但你要选定一个方向,在这方面成为专家。既要广博,也要有自己的专精所在。 

不要贪多,很多东西知道框架即可,用的时候懂得较快地搜索、查找出来即可。时间精力极为有限,有些东西要懂得放弃。 

3、管理知识和项目管理知识。 
应当具备丰富的管理知识。要与客户保持好关系,要有良好的服务意识。客户管理层是项目推进中最好的资源,一定要取得他们充分的信任和合作。如果你不了解管理知识,你难以让客户信服和接受。软件之所以需要实施顾问,就在于实施顾问能够通过资源调度使它具备生命力,没有产品是尽善尽美的,但是一名尽责的、优秀的实施顾问,却可以弥补产品本身的不足。网络上管理知识应有尽有,只看个人的吸收能力。另外的一个好的学习途径就是客户方管理人员,他们的管理经验更有实效性。所以,在项目的实施过程中,我们事实上就可以学到很多管理知识。这也是这项工作的诱惑和魅力之一。 

作为实施顾问,项目管理非常重要。要掌握基础的项目管理知识,掌握项目管理常用的软件工具。如果你是由技术工程师转型而来,观念上的转变至为重要。实施顾问不是替客户做事,而是指导客户做事。所以尽管你眼看着一个简单的问题却在客户手中无法解决,禁不住着急,想要代做,也请你管住自己。牢牢记住实施顾问的定位,不要混淆。事实证明,这是很多做惯了技术服务的工程师在转型到实施顾问时的一个瓶颈。身为实施顾问,你的专业化,恰恰是体现在“项目管理”上面。项目管理的知识,可以充分利用互联网,用BAIDU、GOOGLE去搜吧。然后,不要浮躁,用心体会。 

4、英语水平。 
SAP以及其他重要的ERP系统,大多都是西方人开发的,相关资料,尤其是最新的资料基本都是英文的,如果英语不灵,那真有跛腿的味道。况且用SAP的公司,大多是跨国企业,顾问本身又是一个很注重交流沟通的工作,所以,良好的英文水平,绝对是非常必要的。 

5、你应有一个清爽整洁、职业化仪表。 
要知道顾问基本上是一个服务性质的工作,必须得到客户方的认可,必须让人家喜欢和你相处。不修边幅的人,不适合担任实施顾问。你的气质与风度,你能否征服你的客户让他们接受你,信任你,是项目顺利进展的关键。曾有客户讲过,如果他们不接受顾问本身,也就难以接受顾问带来的一切。除了相貌,气质,还有谈吐。彬彬有礼、条理清晰、善于表达,是良好沟通的基础。当然,自信心也很重要。而职业化,不仅仅是实施顾问的要求,它是身在职场的人们都必须具备的常识。如果想在这方面得到提高,可以去买本公关礼仪方面的书或者查询网站上的相关知识。另外可以多留心一下那些公认有修养、善谈吐人士的言谈举止,逐渐地养成习惯,固化下来。 

6、学习能力。 
上述几条,不是独立存在,而是相辅相成,技术、管理、企业业务流程,都需要不断地学习。知识是日新月异的,必须与时俱进活到老学到老,你往往需要在知识上走在客户的前面,有时候你必须要向客户学习,要学的东西永远太多,所以想要成为一名优秀的实施顾问,时间管理是必须要掌握的,如何合理的安排时间、有效利用时间是一门大学问,需要自己不断探索、总结。唯有热爱这个行业,对它感兴趣,甚至到了吃饭、走路、坐车、如厕也常常思考相关的问题。(睡觉就不要想了,容易失眠。: ) ) 这样算是进入状态了。你才有希望成为佼佼者。 

7、一定的运气和机遇 
谋事在人,成事在天。机遇也是非常重要的,一定要善于寻找机遇,创造机遇,抓住机遇。 

想要成为优秀的顾问,需要一个漫长的过程,要多多用心,潜心体会,自然会有心得。常常要耐得住寂寞清静。多付出,不要太在意回报。坚韧不拔,终将修成正果。优秀的实施顾问,前途必然是光明的。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值