文章分类 » 未分类

有用网址合集

http://blog.csdn.net/ch_jinyi/article/details/7421969

近期工作总结(2)

5、要做的系统如果上线,将是给非常多人用的,随意一些访问量就能让我之前的做系统完全崩溃,高并发在这个时候开始经历了一些。采取的解决方案就是使用缓存技术,如memcache等。memcache实现的方式是将一些经常使用的信息,采用key,value的方式存储到内存中。可以设置其有效期,可以存储,更新,删除,全部删除。这中缓存技术因为是存储在缓存中的,所以存取速度非常快。但是,同时也是由于存储在缓存中的,所以一旦该服务器宕机,或者该服务器上的服务被停止重启,都会导致之前缓存的数据全部丢失。在缓存中存储一些有效数据可以有效的大幅度的降低访问数据库的频率。
6、做一个系统的开发,尤其是我们这中之前已经有个样例系统,我们要进行重新构建的项目,项目需求基本已经确定。一开始的需求文档那叫一个寒碜,不过幸好有个系统看着做。随后需求的讨论不断进步,最先形成的成型的文档是根据需求做出来的数据字典。我做的一个模块有部分是关于IP号码管理的,着手建表,才发现现在要用到oracle的sequence。以前只是听说过,甚至专门看过几遍,不过最终还是都忘了,应为没有用过。。。这次好了,好好理解了一下,而且有十几应用了,状况好太多。sequence,序列,虽然名字是跟表名相关的,但实际上这两者之间没啥大的关系。序列是可以被任何表使用的,他的作用就是不停的产生一个新的最大值,从而避免使用相同的值产生的冲突。小的系统里,甚至可以所有表使用同一个序列,所有表的主键都从一个序列里产生。
7、算法。在做IP相关的数据存储的时候,发现表里存储IP值的时候不是存储的字符串,而是数字(设计的字段类型是varchar)好吧,那就想办法把一个字符串算成一个可以反解析出来的数字吧,总不能存完了不管了,咱还得取不是。研究了一下原来系统里对于IP的转换。。。 汗颜~~  哈哈 看了半天还是不太明白,应该是用数据库的正则把IP值的各个块取出来,然后转换成数字,然后计算成了一个位数比较少的数字,再拼接起来。。。贴出来
lpad(trim(to_char(regexp_replace(ip, ‘^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$’, ‘1’), ‘XX’)),2,’0′) ||
lpad(trim(to_char(regexp_replace(ip, ‘^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$’, ‘2’), ‘XX’)),2,’0′) ||
lpad(trim(to_char(regexp_replace(ip, ‘^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$’, ‘3’), ‘XX’)),2,’0′) ||
lpad(trim(to_char(regexp_replace(ip, ‘^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$’, ‘4’), ‘XX’)),2,’0′);
反计算:
to_number(substr(ip_num_hex, 1, 2), ‘XX’) || ‘.’ ||
to_number(substr(ip_num_hex, 3, 2), ‘XX’) || ‘.’ ||
to_number(substr(ip_num_hex, 5, 2), ‘XX’) || ‘.’ ||
to_number(substr(ip_num_hex, 7, 2), ‘XX’);
以后再研究吧。
8、生成Bean和Dao的方式都不是自己手写的,有个小工具叫codeGen,不知道是这里自己写的还是从网上搞来的开源的小东西,但是对于生成统一的数据库管理相关代码确实挺好使,在配置文件里写好链接数据的配置,然后在主函数里写入自己要生成的表名,运行一遍就可以了。不过到目前为止生成的文件,包名总是错误的,这里也是可以在代码里修改的。不明白管理这个小工具的家伙为啥总是不改捏。咱先不管了,好东西先留着呗。
9、做着做着就到了做前台的时候了。开始的时候并没有打算用jQuery EasyUI,不过组里有个小伙对这个玩意很熟,在做另外一个项目的时候也是用的EasyUI,在我们埋头解决数据查询出来后结果的分页的时候,拉出来EasyUI的Datagrid以及其页码栏,很好使,很好看,参数与公司集成的分页查询符合,于是果断采用了。jQuery是本来就会用的,所以也没什么稀奇,不过我就得好好学学了,毕竟之前不但EasyUI接触较少,连jQuery都很少接触,少有的接触机会还是自己学习的时候去学了一下基础。现在终于有可以实战一下了。乍一开始,对于jQuery的选择器并没有什么特别的感觉,而且我使用的时候基本上都是使用指定ID的方式(未完待续)

近期工作总结(1)

来新公司已经有一个多月的时间了.呃,准确点也就一个月零5天.哈哈.虽然时间其实并不多,但是学到的东西可不少.尤其用到了一些以前自己没有用过的东西.期间碰到了大大小小各种问题,到目前为止基本都解决了,但是怕稍微久一点就会全忘掉,所以在博客里做个记录.虽然现在都不一定全部记得.

项目挺大,前台展现部分功能丰富且复杂,要做第三方接口接入.我一开始被带我的人安排去做前台的一些东西,看了几天代码,自以为已经熟悉了一些了,可以下手做,所以给老师要活.头给安排了一个做第三方数据请求自动登录的功能来做。由于之前没有接触过类似的东西,所以一开始就是在看,熟悉整个系统,整个熟悉下来之后,发现有如下一些我没有用过的东西:
1、过滤器Filter。以前的时候顶多在web.xml文件里设置一下servelet的路径,中间的业务请求大部分甚至连servelet都没有通过,就直接用jsp里声明个实例调用后面的Java代码了。这种方式的好处是开发起来效率高,也好调试,但是安全性太差,代码也容易混乱,不易进行统一管理规划。声明一个Filter的语法如下:<filter>
<filter-name>FilterName</filter-name>
<filter-class>
org.*.filter.FilterName
</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterName</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>FilterName</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
这样的过滤器在一个web.xml中可以声明多个,其对相同内容的过滤的顺序就是按照声明的顺序由上到下。可以用来进行一些校验和设置的操作,如设置字符集,校验是否登录,校验是使用何种类型网络等等。
2、在这个项目开始之初,带我的人就告诉了我估计要用到的几个大的框架,如Controllar会使用struts,类管理控制会使用spring,展示方面主要使用jquery,后来引入了jquery的展示框架easyUI,界面上可能会用到的EL,处理大数据要使用的memcache等,因为第一次接触原因,第一次在工作中接触的原因,开始干活的效率都有点低,但是后来就快起来了。struts1.x在本系统中忠实的执行着控制中心的角色,基本整个系统中需要修改struts相关东西的地方只有两个,一个是要设置其配置文件,把自己要用的请求与类名关联起来,另一个就是要写这个类里的方法,把要处理的方法写出来。由于公司封装的框架的原因,我们用来指定前台请求调用的处理类的方法时,只需要在*.do的请求后添加一个参数do=****Manage.functionName就可以直接实现了。
3、对于spring这个东西,以前还是稍微看过一点,跟struts一样。其实struts看的最多了,因为ssh总是一开始就看struts,而且很久以前就看过一些struts,更容易看进去一些。Spring单独的IOC这部分其实并不难,更何况公司框架还给出了一个SpringHelper,可以使用其生成指定名称的类的实例。然而并不能所有一切都那么顺心如意,现在系统中就有地方使用这个去生成新的类的实例有问题,启动报错。所以我自己用的时候,一般还是使用注解来自动生成。使用spring注解的时候,需要在spring的配置文件中加入配置,这个之前的文章里有写过,回头再看看吧。
4、界面上获取后台传过来的值的时候,一般不再写Java代码,而是直接使用EL。而要访问哪些数据,在由后面处理程序返回时,通过设置attribute等方式放到request里就行了;在页面上使用的方式更加简单,直接使用${}符号,在花括号中间填上自己想要的那个实例的名字就可以获取到相应的实例,并且可以调用其方法,获取其属性。用起来很方便。
《未完待续》

安装Linux系统

闲来无事,准备在笔记本上重新安装一下linux,并在平时学习中多多使用,因为以后的工作中也要较多的使用linux了。

废话不多说,下载了grub,拷贝一个centos版本,先用6.3吧。使用虚拟光驱打开,把isolinux文件夹下的文件拷贝到当前目录。因为之前就准备装Linux,所以分区已经分好了,把整个F盘都格式化成ntfs了,前期工作基本完成。

把下载的grub打开,根据教程,可以只把其中三个文件拷贝到系统盘根目录就可以了,但是因为懒,图个方便,直接把所有文件都解压到系统盘根目录了。修改boot.ini,添加grub centos的引导。OK,重启。

进入系统选择目录,选择自己新添加的centos,进入后选择 from menu.lst already installed,

输入三个命令:kerner (hd0,6)/isolinux/vmlinuz,initrd (hd0,6)/isolinux/initrd.img,boot回车

选择语言,地区,还有起始位置,我是硬盘安装,当然选择硬盘,找到自己安装系统的盘的位置,怪了。。。。  木有进入图形安装界面。。。重启后仍然不行,中间好像加载驱动的时候,有两个文件没有找到。。啥情况?

好了,我要把整个光盘解压出来到这个盘,然后试试。

这种方式进入了界面安装模式,但是在选择使用哪一种方式安装系统的时候,晕乎了,不知道应该选哪一种。选择了replace所有当前linux系统的方式,进入后提示空间不够,估摸着是去xp系统的启动盘里找空余空间去了,不对,就回来重新选。

接着选择了在当前选择的分区中安装系统,好了,可以进入剩下的选项了。然而悲催的是,这种安装方式似乎会重写整个引导盘。中间在格式化当前盘并安装的时候报错了,因为我把要安装的系统选择的是存放安装文件的分区。安装时会格式化,可以又会从这个盘里去读取文件,于是果断悲剧了~~

报错,然后自动重启,然后,就木有然后了。。。 因为现在进入系统是missing operating system.

 

赋闲随感

自离职以来已经让自己闲了将近一个月了,之前是完整的休息了差不多一个多周,然后开始找工作。工作的事情不是像自己想象的那么顺利,中间经历了一些曲折,然而终究有了个结果,得来并不容易。

最开始离职的时候心里抱有的那份梦幻般的自信也受到了不少打击,先是内推受阻,自己玩的时间也有点多,面试的相关内容却没有好好准备。自控能力明显下降,这是自己懒惰的最直接表现。内推的面试回来之后,才有着深深的懊悔,懊恼自己没有好好准备,以为自己脑袋里记住的那点东西足以应付各种面试,足以征服任何自己要去面试的职位。

眼高手低,自恋自大。最近相当一段时间以来自己似乎都是这个状态。直到开始找工作,让今年并不太好的就业形势一点一点打磨着自己,刺激着自己,惊醒着自己,好在终于醒了过来,为时未晚。

自工作以来,工作上的变动并不少,之前的一步一步的变动,现在看来由于自己不少的决定由于信息劣势的客观因素和躁动不安的内心的主观因素,导致自己的决策并不那么好,也许是当时比较好的选择,但同时也造就了今天的困境。

鉴于工作变动较多,自己缺乏稳定宽松的环境用来提高和学习,因此对这次的工作选择格外慎重。因为接下来的这个工作不只是想要换个环境,有个学习的机会,更重要的是自己一个选择行业的机会,而计划中接下来几年内会在同一个公司同一个行业内深入发展,使得这次的选择又格外的重要。

先写到这里,回头继续。

随感

今天一天忙来忙去的,也没跟她好好聊聊。当时说的时候也没仔细想。当她那里已经睡了挺久,我偶然想起了今天的聊天内容,忽然有些想法想要她知道。

这是个聪慧的女子,她知道自己所求为何。然而,茫茫大千世界,随着她遇到的越来越多,尤其是她所不熟悉的人都在跟她说某些类似的思想的时候,她似乎正逐渐变的有些茫然,逐渐的对自己的想法不再那么的抱有强大的信心。

如今,既以哥们称,则我说的东西她会采纳一些。然而我自己却似乎做的有些不够好。没能及时的想到这层,则有些话我当笑话逗她,她却部分当了真。非我所愿。

聊天中提到的,那个曾经追求她的男生,现在发现他们并不合适,然后代之以哥们的身份与之交流。话里说到一点,希望她能变成“白顺乖”。

不可否认,这三个条件具备的话,估计会赢得大多数男生的喜欢,但喜欢这样的男生也会喜欢所有的白顺乖。

感情是为了让所有男生都喜欢吗?女生,是为了让男人们欢心吗?

感情是两个人的事,何必要那么多男生喜欢?担心你会因为这么一人的建议或说法胡乱的去改变自己,于是想问一句:你是想找一个喜欢白顺乖的男人,还是想找一个喜欢你的男人?

另:

吊丝是从D-吧发展出来的一种文化,或者说是一种亚文化,所为表达的是一些没钱没权没能力的人面对社会黑暗一面时,对自己的一种自嘲和心里深刻的自卑感。但这种文化发展的有些过于调侃,而少有正能量。女人用吊丝自称,在我心里常有不自重之感,望你慎用。

今天踢球左肩有点伤到,不爽。睡觉养之!

row_number() over()用例及相近函数rank()和dense_rank()的介绍

今天在群里跟一群同学聊天,恍然发现有个同学正在朝dba的方向发展,正好脑子里有个以前的问题想要问一下,问题是:row_number() over()使用partition by的时候,后面条件约束使用什么关键词会导致前面的partition by失效。结果同学会order by,但是木有接触过partition by。。。

早饭都忘了吃了。。

这是个问题啊,虽然那次开发的时候写的语句出现的现象不一定具有典型意义,但是我觉得这个函数用起来很舒服,有很多让我个人很满意的功能,以后要用就不能不弄明白这些问题。同学不能解决,那就顺手在网上找一下看有没有相关的文档能参考一下了。

百度,搜索,关键词 “row_number partition by什么情况下会失效”,查询结果发现,没有针对这个问题的,但是前两项竟然是对row_number over partiton by 做的不错的解释,另外顺带介绍了另外两个具有相同功能但是不同分组排序结果的方法,顿时觉得值得了。现在把这些解释都放上来以做备用。

<

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).

rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).

dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的

>

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

SQL> SELECT G.*, ROW_NUMBER() OVER(PARTITION BY a ,b ORDER BY c DESC) ROWN
2 from (select ‘1’ a, ‘2’ b, ‘1’ c
3 from dual
4 union all
5 select ‘1’, ‘2’, ‘2’
6 from dual
7 union all
8 select ‘1’, ‘3’, ‘3’
9 from dual
10 union all
11 select ‘1’, ‘3’, ‘4’
12 from dual
13 union all
14 select ‘1’, ‘4’, ‘5’ from dual
15 union all
16 select ‘1’,’3′,’5’from dual) G
17 ;

A B C ROWN
– – – ———-
1 2 2 1
1 2 1 2
1 3 5 1
1 3 4 2
1 3 3 3
1 4 5 1

6 rows selected

与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).

rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).

dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的 .

lag(arg1,arg2,arg3):
arg1是从其他行返回的表达式
arg2是希望检索的当前行分区的偏移量。是一个正的偏移量,时一个往回检索以前的行的数目。
arg3是在arg2表示的数目超出了分组的范围时返回的值。

语句一:

select row_number() over(order by sale/cnt desc) as sort, sale/cnt
from (
select -60 as sale,3 as cnt from dual union
select 24 as sale,6 as cnt from dual union
select 50 as sale,5 as cnt from dual union
select -20 as sale,2 as cnt from dual union
select 40 as sale,8 as cnt from dual);

执行结果:

SORT SALE/CNT
———- ———-
1 10
2 5
3 4
4 -10
5 -20

语句二:查询员工的工资,按部门排序

select ename,sal,row_number() over (partition by deptno order by sal desc) as sal_order from scott.emp;

执行结果:

ENAME SAL SAL_ORDER
——————– ———- ———-
KING 5000 1
CLARK 2450 2
MILLER 1300 3
SCOTT 3000 1
FORD 3000 2
JONES 2975 3
ADAMS 1100 4
SMITH 800 5
BLAKE 2850 1
ALLEN 1600 2
TURNER 1500 3
WARD 1250 4
MARTIN 1250 5
JAMES 950 6

已选择14行。

语句三:查询每个部门的最高工资

select deptno,ename,sal from
(select deptno,ename,sal,row_number() over (partition by deptno order by sal desc) as sal_order
from scott.emp) where sal_order <2;

执行结果:

DEPTNO ENAME SAL
———- ——————– ———-
10 KING 5000
20 SCOTT 3000
30 BLAKE 2850

已选择3行。

语句四:

select deptno,sal,rank() over (partition by deptno order by sal) as rank_order from scott.emp order by deptno;

执行结果:

DEPTNO SAL RANK_ORDER
———- ———- ———-
10 1300 1
10 2450 2
10 5000 3
20 800 1
20 1100 2
20 2975 3
20 3000 4
20 3000 4
30 950 1
30 1250 2
30 1250 2
30 1500 4
30 1600 5
30 2850 6

已选择14行。

语句五:

select deptno,sal,dense_rank() over(partition by deptno order by sal) as dense_rank_order from scott.emp order by deptn;

执行结果:

DEPTNO SAL DENSE_RANK_ORDER
———- ———- —————-
10 1300 1
10 2450 2
10 5000 3
20 800 1
20 1100 2
20 2975 3
20 3000 4
20 3000 4
30 950 1
30 1250 2
30 1250 2
30 1500 3
30 1600 4
30 2850 5

已选择14行。

语句六:

select deptno,ename,sal,lag(ename,1,null) over(partition by deptno order by ename) as lag_ from scott.emp order by deptno;

执行结果:

DEPTNO ENAME SAL LAG_
———- ——————– ———- ——————–
10 CLARK 2450
10 KING 5000 CLARK
10 MILLER 1300 KING
20 ADAMS 1100
20 FORD 3000 ADAMS
20 JONES 2975 FORD
20 SCOTT 3000 JONES
20 SMITH 800 SCOTT
30 ALLEN 1600
30 BLAKE 2850 ALLEN
30 JAMES 950 BLAKE
30 MARTIN 1250 JAMES
30 TURNER 1500 MARTIN
30 WARD 1250 TURNER

以上用例和详细介绍来自《http://www.blogjava.net/kxbin/articles/360195.html》

打算

又有段时间没有写自己的博客了,最近一段时间总是忙的天昏地暗,加班加到要吐。连春节放假回家都不怎么想开电脑。

我发现,让一个人讨厌他自己自以为喜欢的事物比较不错的方法,就是让这件事变成他的工作。当一件自以为有意思的事情变成了枯燥乏味而又不得不不停重复的工作的时候,我嘞个去  多么难以忍受!

刚来公司的时候我就跟面试我的人说过,适当的加班可以接受。啥工作还没有个紧急情况,偶尔工作量大的时候呢对吧,咱可以理解。然而这种毫无节制的加班,并且习以为常,就难以接受了。加班加到几乎没有了自己的正常生活,每天每天都是工作,那么工作的意义就不再存在,还工作下去有设么么意思呢。

我从来认为,工作是为了生活。当工作把生活的时间破坏甚至完全占据,那么这份工作就是十分不值得的。所以我决定离开。

一直有些犹豫自己到底想要进入什么样的公司。就我本身而言,我想进入一个比较追寻潮流,做互联网弄潮儿的企业,因为这样的企业里可以较多的接触到最新的概念,最新的技术,这对我比较有好处,同时这样的企业也有益于我以后创业的打算。毕竟更新的东西,才更容易是第一个吃螃蟹的人,也许会更容易掘金。

同时也有些倾向于做一些固定业务的公司,这样在这个行业中精通后,可以比较稳定。

另外我还想去澳洲,基于某些原因。所以这一切都还在思考中。

呵呵

今天情绪确实不好。准确说,是从昨晚那个呵呵开始,我情绪一直都不高。又加上各种加班和工作难题,让我不爽。但是日子总是要过的,忍着点呗。

心里已经几次三番的在考虑这样做到底合适不合适,但是自己也没能给自己一个准确的答案。如果能给个承诺,哪怕一个信号,我也能忍,能守,能坚持,哪怕最后得到的是坏的结果。但是对方显然不是这么想的,我们思路并不一样。这个倔强而又钻牛角尖的娃娃。

到现在为止也只是聊天而已,竟然搞的跟网恋似的,唉,情何以堪那。

其实我心里明白,自己只是动了念头,跟我所任何事一样,一旦动了念头,就想有坏的结果,但同时,会决定如果是坏的结果,一定会让这个结果坏到极致。现在我仍然做不到要去实现最坏的结果,就意味这在我心里仍然有那么一丝丝希望和期盼。

晚上看到一直在线,想跟聊聊,缓解一点情绪。毕竟解铃还须系铃人么,也许可以说我太2,但是有时候真的是对方的几句高兴而又没有防备的话就能让我情绪好起来。然而虽然对方感受到了我情绪不好,却好像完全没有意识到我情绪不好的原因是因为她。呵呵,“呵呵”这个我在聊天中最最讨厌见到的拟声词,再次的出现。正像平常的一些事情一样,有希望就会有失望。既然劝我不想说话就别说了。好呗,那就不说了。道了晚安,虽然我知道不会安,甚至可能睡不好觉,但是又有神马关系呢,除了自己不舒服还会有谁关心呢。

就这样吧。好,下了,给Ubuntu更新下软件。

坑爹的失眠

原本想,今天挺不容易早点回来还有点累,不如先好好睡一觉。很累啊,很久没能好好休息了。

我擦,刚才打休息竟然直接不过脑子的打成了修改。我这一天都在打了什么字啊。

睡之前看了会书,现在这种比较疲惫的状态下,看书是最好的催眠药;但是,我多希望那会儿直接就看着看着睡着算了,也不至于后来又睡不着了。当自己感觉极其累的时候,最希望的就是能一头倒下睡去不醒,然而事实总是事与愿违。在我如此困的时候躺下,脑子里又跟前几天一样各种乱七八糟的事情跑了出来。

这下倒好,最近别的没学会到学会了失眠。恶心呐。

也是因为近来感情上确实有些不那么顺利。当一件事情不能稳定下来,让自己比较有些安全感的时候,总是出现一些莫名其妙的担心。虽然现在只是以朋友的身份联系着。

一个外表看似强大,内心强悍的女孩,其实也真的是挺强悍。但是,终究是个女孩,她想有个人理解,有个人陪,有个人守护。有个人能带给她她想要的那种感觉,嗯,feel。这个词在我们的聊天中不知不觉被提及了很多遍。她其实很清楚,她最近的话语中不停的提及自己不想妥协,不想凑合,她越这么说,说明她内心正在逐渐的摇晃。

我并不知道这样好不好。因为感情的事让我纠结已经很久没有了。如果她放开了内心,决定试试看能不能凑合的来,那么我唯一的担忧就是这孩子在国外的时候凑合了一个。一个纯洁印象的女孩子自此从我的脑海里消失,取而代之的是一个有过了 经历 的人。有些精神洁癖的我,非常不喜欢这种变化。如果有变化,那么这个人也应该是我。

终究脑子里有各种乱七八糟的事没个尽头。

她的想法有些地方很好,比如并不去考虑比较久远的事情,认为那是比较空洞的东西。最要紧的是把当下做好,将来总是要到来的。我很赞成,但是自己似乎有些做不到,或者自己还没适应。穷人家的孩子么,总是想的更远一点。也许有时候真是不如不想,做好当下。

彼此还没见面,终于在我的软磨硬泡下换了个头像,知道了最近换了发型是个神马样子。然而终究会见面。因为我觉得她不错,我想试试。但自己又真的有些枉然和害怕,以自己的性子,如果后来真不成,做朋友的可能基本没有。好吧,其实还是想的多了些。

也许,下次我会问问她,喜欢,是个什么感觉。希望能有点答案或者想法。