帐前卒专栏

code, software architect, articles and novels.
代码,软件架构,博客和小说

不要老是一个人宣布什么事情。否则别人会认为这是你自己的团队。领导力有了,可是和大家就疏远了很多。所以一旦私下和一些要员一起做出什么,让他们公布出来。这样,大
家的感觉会好写。

关心下属,至少让他们知道你在关心他们。要感谢他们为团队做的一切。

注重团队的延续性。团队中的核心成员留下的越多越好。

调整各个人的职务。让他们做适合自己的事情。在练兵的期间,可以让他们多做自己感兴趣但不适合自己的事情。

头衔可以随意取。我们并不在乎头衔的固定和大小。而在乎让下属感觉到自己受到了重用。

![星银岛/宝藏星球 电影海报](http://images.movie.xunlei.com/gallery/16/83ed682e05807f2bed5
8f462d2fec2ce.jpg)

end…

It’s good to see the sun and feel this place
This place I never thought would feel like home
And I ran forever far away
And I always thought I’d end up here alone
Somehow the world has changed
And I’ve come home to give you back the things they took from you
And I feel you now not alone
When I see myself I always know where you are
And I found something that wwas always there
Sometimes it’s got to hurt before you feel
But now I am strong and I won’t kneel except to thank who’s watching over me
And somehow I feel so strong and I’ve begun to be the one I never thought I’d
be
Now it’s all so clear
And I believe that everything’s been opened up to me

middle…

I am a question to the world not an answer to be heard or a moment that’s held
in your arms
And what do you think you’d ever say I won’t listen anyway
you don’t know me and I’ll never be what you want made of pain
And what do you think you’d understand? I’m a boy. no. I am a man
you can take me and throw me away
And how can you learn what’s never shown
ywah. you stand here on your own.
They don’t know me cause I am not here

And I want a moment to be real
want to touch things I don’t feel
want to hold on and feel I belong
And how can the world want me to change
They’re the ones that stay the same.
They don’t know me
But I am still here.
And you see the things they never see.
All you wanted I could be
you have known me and I am not afraid
And I want to tell you who I am
Can you help me be a man
They can’t break me as long as I know who I am
They can’t tell me who to be cause I’m not what they see
The world is still sleeping while I keep on dreaming for me.
And the words are just whisper and lie that I’ll never believe
How can you say I never change.
They are the ones stay the same
I am the one now cause I am still here
I’m one sun still here

my sentiment:
you give up a few things to chase a
dream.放弃一些事情去追逐梦想。是对是错?没有人说的清楚。在人生的岔路口,走上了一条路,便不能在回头走另外一条路了。
you must control you own course. Still to it, no matter the storm
comes.必须自己掌握自己的航程,坚持,不管风雨。坚持走自己的路。或许会成功或许失败。谁知道呢?无悔就好。虽然我们都有点点悔恨。
when the choice come ,hold on the choice to test your really abilities to show
you made of.机会来临,抓住这个表现自己的机会。也许一直都在等待机会,却不知道机会已从自己身边溜走。也许撞上了大运,抓住千载难逢的机遇。谁能预料?
这世间没有教你如果判别机会来了的不二法门。即使遇到了,能否用机会来展示自己,这还是一个难题。所以用平和心对待机会,或许活得更加舒坦些。

这才是我建编辑部的初衷。。。

现在终于可以有机会了。。。。虽然成员又是大一的。。。

下面的程序说明子父类中成员变量的构造顺序


abstract class SupConstruction
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

SupConstruction()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

System.out.println( " SupConstruction constructed! " );

con();

System.out.println( " con " );
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

abstract void con(); // 虚拟函数
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }


public class Construction extends SupConstruction // 继承虚拟类
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

int i = 9 ;

Construction()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

super (); // 调用构造函数

System.out.println( " Construction constructed " + i);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }


public void con() // 超越虚拟方法
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

System.out.println( " Con " + i);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

public static void main(String [] args)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

Construction c = new Construction(); // 实例化.
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

输出结果:

SupConstruction constructed!
Con 0
con
Construction constructed 9

其中的Con 0说明在此时i已经被声明,并且被赋上初值(或者说该变量所占的内存空间被清空)。同时也说明i=9,还没有被执行。上面程序的顺序是这样的:当new
一个Construction的时候,调用Construction的构造函数。然后进入父类的构造函数。而在进入Construction的构造函数之前 或许
int i已经被执行(这点以后还会说明为什么),但i=9没有被执行。进入父类的构造函数函数后打印SupConstruction
constructed!,然后调用自己的虚方法。因为多态的机制,函数将调用子类的同名方法。在那里打印Con
0。然后返回到父类打印con,再返回子类的构造函数打印Construction constructed 9。结束构造。

下面讲讲为什么说进入Construction的构造函数之前或许int i已经被执行。看下面的例子:


class Test
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

int t1 = 3 ;

static int t2 = 4 ;

static
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

System.out.println( " Static block " + " t2: " + t2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }


public Test()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

System.out.println( " Construct:t1: " + t1 + " t2: " + t2);

t1 = 30 ;

t2 = 40 ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {


t2 = 9 ;

System.out.println( " nonstatic,t1: " + t1 + " t2: " + t2);

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

public static void TestClass()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

System.out.println( " Static Method: " + " t2: " + t2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }


public class Life
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

public static void main(String [] args)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

Test.TestClass();

Test t = new Test();

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

打印结果:

Static block t2:4
Static Method:t2:4
nonstatic,t1:3t2:9
Construct:t1:3t2:9

这说明在执行构造函数之前nonstatic块就已经被执行。而且看出了初始化顺序static变量->static块->非static变量->非static块-

构造函数。但是不是真的是这样?看下面的例子:


class SupTest
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

int st1 = 12 ;

static int st2 = 19 ;

public SupTest( int x)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

st1 = x;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }


class Test extends SupTest
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

int t1 = 3 ;

static int t2 = 4 ;

static
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

System.out.println( " super static : " + " t2: " + SupTest.st2);


System.out.println( " Static block " + " t2: " + t2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }


public Test()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

super (t1);

System.out.println( " Construct:t1: " + t1 + " t2: " + t2);

t1 = 30 ;

t2 = 40 ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

t2 = 9 ;

System.out.println( " nonstatic,t1: " + t1 + " t2: " + t2);

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

public static void TestClass()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

System.out.println( " Static Method: " + " t2: " + t2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }


public class Life
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

public static void main(String [] args)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

Test.TestClass();

Test t = new Test();

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

打印结果:

Life.java:24: 无法在调用父类型构造函数之前引用 t1
super(t1);
^
1 错误

可惜编译的时候就报错。然后将  super(t1);改为  super(t2)编译运行成功。

这说明在调用父类构造函数前,子类的t1并没有声明并被缺省初始化。然后对于第一个程序在子类Construction 中添加非静态块打印i;得到打印结果:

SupConstruction constructed!
Con 0
con
9
Construction constructed 9

这就道出了真正的构造顺序:(结合static只属于类的经验)

加载class路径->static变量初始化->static块->进入子类构造函数->进入父类构造函数->父类虚方法下传->子类非static变量声明并清空
相应的内存空间->多态机制,子类同名函数调用->父类构造函数退出->子类非static变量赋值->子类非static块调用->子类构造函数退出->对象构造完
成。

java线程实现机制:

1.继承Thread类,并实现run方法。2.传递Runnable类。

例如:


public class TestThread extends Thread
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

public void run() // 继承Thread后必须实现的方法
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {


for ( int i = 0 ; i < 3 ; i ++ )


System.out.println(i);

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

public static void main(String [] args)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

TestThread[] tt = new TestThread[ 10 ]; // new 线程数组

for ( int i = 0 ;i < 10 ;i ++ )

tt[i] = new TestThread(i); // new  线程

for ( int i = 0 ;i < 10 ;i ++ )

tt[i].start(); // 线程启动
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

创建线程调用的是默认的构造函数.启动线程是使用的start()函数,这个是父类Thread的方法。start()被调用后,回自动的调用run()方法。另一种
创建线程的方法:


public static void main()

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) Thread thread2 = new Thread( new Runnable()
… {
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) public void run() … { for ( int i = 0
; i < 5 ; i ++ ) System.out.println(i); }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) } );

thread2.start();//启动
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

有时候我们想让刚才的打印按顺序的输出。如果把刚才的run函数中的for循环10次以上,可能将不会是想要的顺序输出的。要使得线程按顺序输出采用synchron
ized 关键字。例如下面的函数


public class TestThread extends Thread
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

int count = 0 ;

public TestThread( int id)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

count = id;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

public void run()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {


print(count);

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

public void main(String [] args)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

TestThread[] tt = new TestThread[ 10 ];

for ( int i = 0 ;i < 10 ;i ++ )

tt[i] = new TestThread(i);

for ( int i = 0 ;i < 10 ;i ++ )

tt[i].start();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }

public synchronized void print( int i)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

for ( int q = 0 ; q < 100 ; q ++ )
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

System.out.println(i);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

这里使用了 synchronized 关键字。但是打印出来的东西依然不是有序的。这并不是 synchronized 出现了问题。而是 synchr
onized用于锁定一个对象,或者对象的一个方法。但是对于以上的那个程序。每次new一个TestThread都产生了一个新的对象。而每一个新的对象也有一个p
rint方法。这就没有使 synchronized发挥作用。如果这个print方法前加入了 static 关键字,这个程序便有序输出。

同时也说明java与c的小小不同。在c中类的函数并不是归属于类的。也就是说c++的函数有唯一的入口地址。而java则有些不同。不知道是不是每一个非s
tatic函数都有对于对象而言的,也不知道是不是每生产一个对象都有一个函数地址。有待研究。。。。。

听了龙哥的课,写些致谢----针对大学这些年。

首先要感谢父母, 养我长大,并供我上学。亲情比什么都重要。这点应该肯定。

然后感谢大姑,小姑,小叔,爷爷奶奶,亲戚太多。。。不能一一列举了。

感谢老姐,过去曾经是我的指路人。现在我要走自己的路了。也希望老姐走好。

感谢视我同亲戚一样的刘爷爷,张叔,蒋老师。

再后感谢各位老师。

专业启蒙老师:杨柳,让我知道目标是什么,这点对我的大学生活很重要。

算法老师:睿哥,记得他的那句名言:程序员就是农民,而你们连农民都不如。懂得什么才叫编程的高手。还有那一顿套餐。

机组老师:锦哥。现在仍然跟着他做SIT的人脸识别,论文又要他指导了。

编译原理老师:征征姐。那句:“只要有思想就好。”将记在我心里。

Java/J2EE老师:老边。没有老边这个伯乐,我根本去不了微软实习。现在还不知道我是不是千里马,继续努力吧。还记得老边那句经典的话:“不要指望一门课能是你
成为编程的高手,或者软件工程的人才。”

c++老师:戴戴。同时也是我请来当One编程小组的导师。玩转Oracle数据库的人。

网络老师:勇哥。除了教授我知识外,听他的课也是种享受。

邵飞兄。虽然没有正式给我上过课。他帮助我免费呆在了暑假里凉爽的实验室。

波哥。虽然没有上过他的课,他却无故的请了我一顿饭。因此感谢。

cmm/需求老师:龙哥。感谢龙哥提醒我要写这篇感谢。

小宁哥。和他交谈感触颇多。记得他的很多句话。最经典的那句:“Simple is beauty.”已经成为我偷懒的最好借口。

体系结构老师:海哥。若不是他放行,不会顺利的去小宁那里面试。不过即使他阻止,我还是会去的。呵呵

感谢菜菜为我做的培训。

感谢几个助教:柳杨,尹庚,敏哥。特别感谢尹庚,给我讲了中国式的软件开发中要注意的问题。

还要感谢Tim chen. 幸运地能被他看中,希望自己不让他失望。要好好的努力。

感谢前任院长对我讲的“软件无处不在”。

感谢现任院长对我编辑部的支持。

下面要感谢各位同学和朋友。

感谢同寝的小可,波波,小刚。一个快乐却几乎见不到人的寝室。

感谢小李子,疯子对我上自习的支持以及借我电脑用的无奈。

感谢小李子,疯子合做的数模论文让我简历上有点东西写。

感谢与ami,红亮合作完成了一个交通网络的1.0版本

感谢张波~,兴隆,郭军~,刘睿,帅子合作的档案管理系统,一个满分的系统呵呵。

感谢华仔,菲菲,雪山为体系结构大实验写的文档。感谢小可为此写的Sqladapter层。

感谢剑哥,波波,ami,小李子,小强共同开发的机房管理系统。因为项目失败,所以感受颇多。

感谢ami,波波,剑哥,小李子,中华小同学,疯子,武大姐,谢俊小同学,老万对我的信任,加入了我组建的One编程组。

感谢老万大一的时候教我很多。

感谢众多认为我编程能力很强的同学。感谢众多相信我的作业是正确的同学。

感谢编辑部的呵呵、落单、雪花姐、张磊、洪莲、俊芳、点点、竹子、盟盟、之旭、旭博、单清、任巍、陆游、浩宇、蒋斌对我工作的支持。

感谢孟乐促进了院刊和爱晚的联合,感谢yaya为院刊加的音乐。感谢雪花姐的漂亮封面。感谢童梓等人的投稿。

感谢继续留着编辑部的下届成员:张磊、洪莲、俊芳、竹子、盟盟、任巍以及继续留任的记者们。

感谢新加入本部的成员:晓莉,幽兰,梦儒。

感谢童梓即将对我部的帮助。

感谢落单、洪莲、张磊、俊芳怀着近乎虔诚的心听我传授本专业的“歪门邪道”。

感谢落单当了几次小白鼠并成功的证明了耳朵进水用吹风机吹仍然不管用的结论。

感谢点点在我退出编辑部后仍然叫我老大,仍然把院刊做好后让我过目,同时也感谢补完了我的诗。

感谢呵呵,张惠,雪花姐对我英文简历的修改。Specially thank hui. Her suggestions are very helpful.

感谢珺姐对我专业考试的提点,并感谢那几本借给我的书。

感谢宣传本院刊的韧禾学姐。

感谢吴月让我创建编辑部。让我以官方的名义有了群自己的部下。

感谢雅婷让我有了创刊的想法。

感谢轩哥给我机会加入了学生会,并信任我,让我主讲了BIOS。

感谢金超等同乡,上车我上去了,可惜他没能上去。

感谢本校的Google Camper 给我一件T恤,并顺利的听到了开复的报告会,还拿到开复的签名。(虽然我不是开复的fans)

感谢各位对我表示尊敬和崇拜的学弟学妹们。(不知道有没有。。呵呵)

感谢相信我能过六级的梦。感谢看我无聊短信的李慧子。

感谢浩浩给我发的各种笑话。

感谢同我写英文email的明明。

感谢鹏程,文萌,really,南哥,尹行同我度过了几个漫长假期。

感谢彤彤一直坚信我要考研。(虽然我不考。。。。。)

感谢苍蝇的老远来此请我吃了一顿饭。

感谢csdn的blog支持。

感谢路过看此文以增加我点击率的人,同时感谢看完此文并与我留言的仁兄。

选择题11道,共44分

填空题8道共56分

(不清楚他们为什么要这分值,按常理来说某方面突出的也应有被录取可能)

填空题是3个程序填空(链表逆置,字符串对比,数值比较),可以认为这三个皆为控制流问题。

选择题范围是继承使用及概念,数据库原理,软件工程方法论。

其中选择题竟然有重复题1道。题干中有错误的1道。

感觉这好像不是上海理想专门用来笔试的题。好像是学院自己出的题。。。不过上海理想的推荐可能从这里选出。

实习网站:campus. worksoft.com.cn

专门从事外包企业,outsourcing其实有两种:信息技术外包和业务流外包

信息化三次浪潮:1.企业信息化 2互联网 3外包

一个经理的工作体会:

1.钱是工作的结果而不是工作的理由

2.不要高估自己的能力,不要低估自己的能力

3.改变你能改变的,接受你必须接受的

4.不接受痛苦,就不会有提高

5.区别,发生在第3个八小时

6.那些不能把你击倒的,都将使你变的坚强

7.将者,智信仁勇严

8.保持一定的交际圈,保持一定的阅读量

9.身体就是本钱

实习生要求的技能:

1.聪明,快速学习

2.迅速理解和很好的表达能力

3.很好的英语或者日语 听说

4有潜力

5有激情

6很好的团队精神

7有加入worksoft的强烈意愿

时间:1.5个小时

推理题:10个,包括简单的计算

计算机基础:20个,有程序设计基础,数据结果,面向对象,操作系统的点点滴滴

编程题两个:一个是找零钱问题:10元换成1,2,5元,有几种换法。一个是字符串比较:输出两个字符串共有的字母。(不能使用库函数)

英文写作(感觉是要写团队精神方面的文章)

这此考的比较基础。推理题是考的逻辑推理,没有什么更高深的智力题。

感觉这次又过了。。不过不好意思占学院的名额,于是写了自己的代号。希望找不到我。

0%