荟聚奇文、博采众长、见贤思齐
当前位置:公文素材库 > 计划总结 > 工作总结 > 本科毕业参加工作总结(java开发)

本科毕业参加工作总结(java开发)

网站:公文素材库 | 时间:2019-05-28 14:32:02 | 移动端:本科毕业参加工作总结(java开发)

本科毕业参加工作总结(java开发)

从7月1号入职以后的工作回顾如下:主要分成两个阶段:

完全的学习阶段:

时间:201*.07.01~201*.09.22

学习内容与收获1.webx2.spring3.ibatissqlmap4.springMVC5.数据挖掘

6.weka

7.参加逐浪堂,百计8.hsf,notify,tfs,tair

学习1-4是进入公司后师兄给的最基本的任务,在经过大约一个月的学习之后可以完成前台应用的开发了。对web应用的设计模式基本掌握。

数据挖掘这一块主要学习了它的基本概念,预处理以及详细学习了分类算法,为后来接手rulerun模型日常打下基础。

参加逐浪堂主要是对公司文化有了进一步的了解以及培养了团队意识。参加百计让我对公司的整体结构以及淘宝的所有技术有了最基本的了解。

参加完百计后趁热打铁,进一步学习了公司的几大基础设施hsf,notify,tfs,tair。主要是对其原理有进一步的了解,以及如何使用。

项目和日常阶段

时间:201*.09.22-201*.11.25百计回来后就开始真正干活了:1.namelist剥离kfc

花了大概一周多的时间,给namelist搭建了一个webx3的框架,把相关的页面和相关的系统迁移到了新的框架中。

收获:对maven,svn,日志系统有了进一步了解。对工程的搭建能力有了一定的提高。不足:没有将迁移完全进行完成。其中有一些定时任务的程序没有迁过来,这是后面在看kfc代码的时候发现的。

2.kfc3.0

kfc3.0算是接触的第一个真正的项目,从需求分析,uc编写,编码都一应俱全。我的主要任务就是前台应用:

kfc3.0相对2.0添加了一个标签系统,去除掉来源和类型管理系统。而我的工作主要包括:1.uc编写

2.标签查询以及其关键词查询中涉及到标签的查询3.标签自动完成控件4.通用词库管理

5.关键词新增,编辑和删选器管理添加对标签的处理,去除来源和类型。6.关键词统计相关页面的开发

收获:对web开发有了更进一步的学习,对项目的开发有了更进一步的了解。

不足:由于开发日程紧张,导致一个新feature出来后没怎么检查就提交测试了,结果出现了很多低级bug。

3.日常:

穿插在kfc3.0开发期间的日常需求:

1.spambayes炒信模型

我的工作:将算法过程转换成java代码写入到ctu二方包中,对算法本身的测试,积极参与到算法结果阈值的评估中。并部署到rulerun系统中。跟进模型的运行效果,并对阈值进行调整,现在模型已经能很好的服务于淘帮派的炒信类帖子的抓取了。收获:对rulerun业务有了更进一步的掌握,对代码的质量有了更多的认识(健壮性和效率);不足:当时有个操作失误,以为svn提交了就可以发布了,但实际情况是作为二方包需要先deploy到maven库中才可以,结果导致rulerun需要重发。

2.svm模型

svm模型是一个非常强大的模型,可以根据模型文件的不同来进行不同类型的分类与预测。我的工作:将svm算法引入到rulerun系统,在bi那边建议能随时添加新模型,于是实现了一个简单的模型文件加载方法能够在不重启rulerun的情况下引入新的模型。

目前该模型正在配置实施中...

扩展阅读:JAVA开发总结

上海汉升软件有限公司

Java开发总结

201*年01月01日

文档信息

文档名称电子文档密级文件状态编写人校对人审核人批准人总经理总经理上海汉升软件Net开发总结参考Net组公共文件□A□B■C□D□草稿■正式发布□正在修改日期日期日期日期201*年01月01日××××年××月××日201*年02月01日201*年02月01日

变更记录

变更序号1变更原因变更变更前版页码本号变更后更改人批准人版本号Java组生效日期201*年1月1日备注目录

1.开发环境...................................................................................................................................4

1.1.工具安装.......................................................................................................................41.2.工具使用.......................................................................................................................42.数据库使用...............................................................................................................................4

2.1.sql语句总结.................................................................................................................42.2.数据转移总结...............................................................................................................53.代码详细总结...........................................................................................................................6

3.1.web界面层...................................................................................................................6

3.1.1.webForm页面展示..........................................................................................63.1.2.webForm页面逻辑..........................................................................................73.2.手机界面层...................................................................................................................7

3.2.1.选项卡的实现...................................................................................................73.2.2.选项卡的高级实现.........................................................................................103.2.3.类卡片效果的实现.........................................................................................133.2.4.导航栏的实现.................................................................................................173.2.5.九宫格效果的实现.........................................................................................193.2.6.工作线程与UI线程的交互...........................................................................233.2.7.页面的友好提示的实现.................................................................................283.2.8.保存数据的路径要求.....................................................................................293.2.9.资源文件的使用.............................................................................................293.3.业务逻辑层.................................................................................................................32

3.3.1.字符处理.........................................................................................................323.3.2.文件类用.........................................................................................................323.3.3.XML操作.........................................................................................................323.3.4.JSON操作.......................................................................................................323.3.5.线程使用.........................................................................................................333.3.6.其它组件.........................................................................................................333.4.数据逻辑层.................................................................................................................33

3.4.1.特殊查询.........................................................................................................333.4.2.多数据使用.....................................................................................................33

4.部署和测试.............................................................................................................................335.文档总结.................................................................................................................................

1.开发环境

1.1.工具安装

所有的软件,都按照《项目环境搭建手册》安装,主要包括MyEclipse,SQLServer201*以及版本控制软件SVN客户端等,如果开发手机客户端需要安装模拟器。

MyEclipse安装:略。

SQLServer201*安装:在安装前删除以前所有版本。

SVN客户端:现在使用Tortoisesvn1.4.8版本、中文补丁以及插件,插件安装时注意补丁处理。

手机模拟器安装,具体要参考模拟器版本。

1.2.工具使用

MyEclipse安装:学会各种项目建立,各种类建立,代码书写和调试。

QLServer201*:学会建立的种表各种处理,熟悉sql语句,熟悉数据导入导出和备份等。

SVN客户端:各种异常情况的处理,合并处理等;一般是先更新,再提交,如果有冲突,利用合并等方法解决;如果解决不了,可以将本底拷贝出来,下载后覆盖上传自动生成代码处理

2.数据库使用

2.1.sql语句总结

常用增删改查等,请自行总结

数据定义:CREATETABLE--创建一个数据库表等数据操作:SELECT,INSERT,DELETE,UPDATE数据控制:GRANT,DENY等事务控制:COMMIT等

程序化SQL:为查询设定游标等

局部变量:declare@idchar(10);SQLserver201*涉及到sql语句

内容替换:update表set字段=replace(字段,"?","")数据库日志压缩

dumptransactionAPMwithno_loggo

backuplogAPMwithno_loggo

dbccshrinkdatabase(APM)

前几条数据

selecttop(n)*fromtablename双表查询:where连接,in连接。

其它sql语句

2.2.数据转移总结

数据导入导出

数据备份还原:生产bak文件还原就可以

数据分离操作:分离后mdf和log文件附加就可以。

3.代码详细总结

3.1.web界面层3.1.1.webForm页面展示

页面表格布局

常用布局样式,一行两列

布局代码

我项目跟进

长用CSS引用

引用:使用:,等常用JS调用

引用:如时间控件,

和src="../../../js/My97DatePicker/WdatePicker.js"

使用:class="Wdate"onclick="WdatePicker();"

常用js:Alert(‘你好’);确认,OnClientClick="returnconfirm("确定要修改吗?");",关闭:onclick="javascript:window.close();";弹出页面

onclick="openwindow("../../gygl/user_info.action?Control_ID=_ctl0_ContentPlaceHolder1_Tb_followed_man","",500,350)"

常用正则表达式

3.1.2.webForm页面逻辑

字符串处理字符分割字符截取弹出提示

JSobj=newJS();

obj.Alert("添加数据成功!",this);

获取当前时间

DateTimetime=System.DateTime.Now;

stringtimestr=time.ToString("yyyy-MM-ddHH:mm:ss");stringyear=time.ToString("yyyy");//年

Session使用

3.2.手机界面层3.2.1.选项卡的实现

界面效果如下:

//全部

实现过程:

创建xml视图文件

android:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="fill_parent">android:id="@+id/textview2"android:layout_width="fill_parent"android:layout_height="fill_parent"android:text="thisisanothertab"/>

Activity的编写,activity需要继承TabActivity

publicclassYdbgIndexActivityextendsTabActivity{privatevoidinitPage(){context=this;mTabHost=getTabHost();//取得TabHost对象tabWidget=mTabHost.getTabWidget();//新建一个newTabSpec(newTabSpec)//设置其标签和图标(setIndicator)//设置内容(setContent)mTabHost.addTab(mTabHost.newTabSpec("海事人员名单privatevoidsetEvent(){}mTabHost.setOnTabChangedListener(newOnTabChangeListener(){@OverridepublicvoidonTabChanged(StringtabId){}privateTabHostmTabHost;//声明TabHost对象privateContextcontext;privateTabWidgettabWidget;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){}super.onCreate(savedInstanceState);setContentView(R.layout.ydbg_index);initPage();setEvent();});").setIndicator("海事人员名单",getResources().getDrawable(R.drawable.hsrymd)).setContent(R.id.textview1));.setIndicator("海事人员查询",mTabHost.addTab(mTabHost.newTabSpec("海事人员查询")getResources().getDrawable(R.drawable.hsrycx)).setContent(R.id.textview2));mTabHost.setCurrentTab(0);//设置当前显示哪一个标签}

3.2.2.选项卡的高级实现

有时需要制定较复杂的选项卡,如需要更改选项卡皮肤、将选项卡显示在界面的底部,效果如下:

实现过程如下:

皮肤的定制,在drawable增加res_main_tab.xml

xml布局文件的实现

将其放置在底部Activity的实现

publicclassTabActivity1extendsTabActivity{mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("搜索",(mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("附近",mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("优惠",mTabHost.addTab(mTabHost.newTabSpec("tab_test4").setIndicator("发掘",(mTabHost.addTab(mTabHost.newTabSpec("tab_test5").setIndicator("活动",TabWidgettabWidget=mTabHost.getTabWidget();getResources().getDrawable(R.drawable.activity_icon)).setContent(R.id.textview5));mTabHost.setCurrentTab(0);R.id.textview4));getResources().getDrawable(R.drawable.search_icon)).setContentgetResources().getDrawable(R.drawable.discount_icon)).setContent(R.id.textview3));getResources().getDrawable(R.drawable.near_iocn)).setContent(R.id.textview2));R.id.textview1));getResources().getDrawable(R.drawable.search_icon)).setContentprivateTabHostmTabHost;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main_tab);mTabHost=getTabHost();}}//去掉系统默认的白色的底部线条try{}//指定选项卡的高度for(inti=0;i

3.2.3.类卡片效果的实现

做查询操作时通常会做两个显示视图和两个Activity,还需要将查询结果传递到显示结果的Activity中,这种情况下就适合用类卡片布局简化操作。界面效果如下:点击查到转到查询结果页面

点击返回转到查询页面

实现过程如下:xml文件的编写

android:layout_gravity="center"android:layout_height="50dip"android:layout_marginTop="120dip">

Activity的编写

publicclassFlipperActivityextendsActivity{}}ButtonbuttonNext2=(Button)buttonNext2.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewview){}mViewFlipper.showNext();findViewById(R.id.Button_next2);@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.flipper);mViewFlipper=(ViewFlipper)findViewById(R.id.flipper);buttonNext1.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewview){}mViewFlipper.showNext();privateViewFlippermViewFlipper;ButtonbuttonNext1=(Button)findViewById(R.id.Button_next1);屏幕的切换});});屏幕的切换

3.2.4.导航栏的实现

效果如下:

实现过程:XML文件的编写

/>

Button样式的编写

@drawable/i_btn16dip16dip8dip8dipcentercenter16dipbold#eee#4442

3.2.5.九宫格效果的实现

因为手机的屏幕分竖屏和横屏,因此横竖显示的个数应该是动态的效果如下:

实现过程如下:xml布局文件的编写设置列为自适应

Activty代码的编写

publicclassIndexActivityextendsActivity{privatevoidsetEvent(){//单击选项时触发的事件gridview.setOnItemClickListener(newOnItemClickListener(){}initPage();setEvent();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);privateGridViewgridview;privateContextcontext;}@OverridepublicvoidonItemClick(AdapterViewparent,Viewview,}intposition,longid){Intentintent=newIntent();switch(position){case0:}startActivity(intent);intent.setClass(context,break;intent.setClass(context,TitleActivity.class);break;intent.setClass(context,PagerActivity.class);break;intent.setClass(context,FlipperActivity.class);break;YdbgIndexActivity.class);case1:case2:case3:});privatevoidinitPage(){context=this;//准备要添加的数据条目Listitems=newArrayList();}}item=newHashMap();item.put("imageItem",R.drawable.zhdd);item.put("textItem","指挥调度");items.add(item);//实例化一个适配器SimpleAdapteradapter=newSimpleAdapter(this,items,R.layout.main_grid_item,newString[]{"imageItem","textItem"},newint[]{R.id.image_item,R.id.text_item});//获得GridView实例gridview=(GridView)findViewById(R.id.mygridview);//将GridView和数据适配器关联gridview.setAdapter(adapter);

3.2.6.工作线程与UI线程的交互

使用Handler与Message进行交互

示例代码

第一步:工作线程的创建://声明一个登录的工作线程,用于验证用户是否存在privateclassLoginThreadimplementsRunnable{@Overridepublicvoidrun(){Mapparams=newHashMap();"login.action";HttpUrlConnUtil.accessMedhodReturnObject(params,if(null!=user){saveUserMsg(user);flag=1;}}}catch(Exceptione){e.printStackTrace();}finally{消息的发//消息的发送尽量放在finally中,如果有异常的话送方式message.sendToTarget();}Messagemessage=Message.obtain(mHandler,flag);第二步:工作线程的调用:newThread(newLoginThread()).start();第三步:对消息的处理:privateHandlermHandler=newHandler(){if(null!=progressDialog&&progressDialog.isShowing()){};}}if(msg.what==1){startActivity(newprogressDialog.dismiss();@OverridepublicvoidhandleMessage(Messagemsg){Intent(LoginActivity.this,MainActivity.class));}elseif(msg.what==0){showDialog("用户名称或者密码错误,请重新输入!");}发送消息的方式

发送消息时数据的传递方式Messagemsg=newMessage();msg.arg1={int类型的数据}msg.arg2={int类型的数据}msg.what={int类型的数据}msg.obj={Object类型的数据}msg.setData(Bundle类型的数据)mHandler.sendMessage(msg);intarg1=msg.arg1;intarg2=msg.arg2;intarg3=msg.what;获得传递的消息数据Objectobject=msg.obj;Bundlebundle=msg.getData();在工作线程中使用消息机制

finalclassSaveThreadextendsThread{//创建一个Handler对象,用于控制线程publicHandlermHandler;@Overridepublicvoidrun(){//为本线程创建消息队列Looper.prepare();//对消息进行处理mHandler=newHandler(){@OverridepublicvoidhandleMessage(Messagemessage){switch(message.what){caseR.id.save:save((byte[])message.obj,message.arg1,message.arg2);break;caseR.id.quit://得到当前线程的Looper对象,并退出消息循环Looper.myLooper().quit();break;}}};//进入消息循环Looper.loop();//这样你的线程就具有了消息处理机制了,在Handler中进行消息处理。}使用AsyncTask提高效率

AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦。从AsyncTask的源码可知,AsyncTask是使用java.util.concurrent框架来管理线程以及任务的执行的,因此AsyncTask的设计很好的解决了匿名线程存在的问题。AsyncTask定义了三种泛型类型Params,Progress和Result。Params启动任务执行的输入参数,比如HTTP请求的URL。Progress后台任务执行的百分比。

Result后台执行任务最终返回的结果,比如String。

子类必须实现抽象方法doInBackground(Params…p),在此方法中实现任务的执行工作,比如连接网络获取数据等。通常还应该实现onPostExecute(Resultr)方法,因为应用程序关心的结果在此方法中返回。需要注意的是AsyncTask一定要在主线程中创建实例。AsyncTask的执行分为四个步骤,每一步都对应一个回调方法,需要注意的是这些方法不应该由应用程序调用,开发者需要做的就是实现这些方法。在任务的执行过程中,这些方法被自动调用,onPreExecute()当任务执行之前开始调用此方法,可以在这里显示进度对话框。

doInBackground(Params…)此方法在后台线程执行,完成任务的主要工作,通常需要较长的时间。在执行过程中可以调用publicProgress(Progress…)来更新任务的进度。

onProgressUpdate(Progress…)此方法在主线程执行,用于显示任务执行的进度。

onPostExecute(Result)此方法在主线程执行,任务执行的结果作为此方法的参数返回示例代码以用户登录为例privateclassLoginTaskextendsAsyncTask{//声明进度条对话框privateProgressDialogprogressDialog;//此方法在UI线程中执行//任务被执行之后,立刻调用UI线程。这步通常被用于设置任务,例如在用户界面显示一个进度条@OverrideprotectedvoidonPreExecute(){//创建ProgressDialog对象progressDialog=newProgressDialog(LoginActivity.this);//设置进度条风格,风格为圆形,旋转的progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);}//设置ProgressDialog标题progressDialog.setTitle("提示");//设置ProgressDialog提示信息progressDialog.setMessage("正在提交数据,请稍后。。。");//设置ProgressDialog标题图标progressDialog.setIcon(R.drawable.wait);//设置ProgressDialog的进度条是否不明确progressDialog.setIndeterminate(false);progressDialog.show();//此方法在后台线程中执行//onPreExecute()完成执行,立刻调用后台线程,这步被用于执行较长时间的后台//异步任务的参数也被传到这步。计算的结果必须在这步返回,将传回到上一步。@OverrideprotectedBooleandoInBackground(String...params){Mapparam=newHashMap();param.put("account",params[0]);param.put("password",params[1]);StringurlString=HttpUrlConnUtil.BASE_URL+"login.action";try{Useruser=(User)urlString);计算。HttpUrlConnUtil.accessMedhodReturnObject(param,if(null!=user){saveUserMsg(user);returntrue;}}}}e.printStackTrace();returnfalse;}catch(Exceptione){returnfalse;//此方法在UI线程中执行//当后台计算结束时,调用UI线程。后台计算结果作为一个参数传递到这步@OverrideprotectedvoidonPostExecute(Booleanresult){}if(null!=progressDialog&&progressDialog.isShowing()){}if(result){startActivity(newprogressDialog.dismiss();Intent(LoginActivity.this,MainActivity.class));}else{showDialog("用户名称或者密码错误,请重新输入!");}

3.2.7.页面的友好提示的实现

对于初始化时间较长的页面,需要进行友好的提示,如:正在加载数据,请稍等示例代码:

第一步:ProgressDialog的创建//声明进度条对话框privateProgressDialogprogressDialog;privatevoidinitLoading(){//创建ProgressDialog对象progressDialog=newProgressDialog(this);//设置进度条风格,风格为圆形,旋转的progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);}//设置ProgressDialog标题progressDialog.setTitle("提示");//设置ProgressDialog提示信息progressDialog.setMessage("正在提交数据,请稍后。。。");//设置ProgressDialog标题图标progressDialog.setIcon(R.drawable.wait);//设置ProgressDialog的进度条是否不明确progressDialog.setIndeterminate(false);progressDialog.show();第二步:调用initLoading,应该放在UI线程中initLoading();第三步:对进度条的关闭if(null!=progressDialog&&progressDialog.isShowing()){}progressDialog.dismiss();

3.2.8.保存数据的路径要求

对于路径都不能写死在程序中如:

获得SDCard的路径//获取SDCard目录FilesdCardDir=Environment.getExternalStorageDirectory();//StringSDCardRoot=Environment.getExternalStorageDirectory().getAbsolutePath()获得database的默认存储路径StringDATABASE_PATH="data/data/"+this.getApplication().getPackageName()+"/databases/";

3.2.9.资源文件的使用

在values目录下分类保存资源文件,而不是写死在代码中,这样方便修改与维护arrays:保存数组资源

如,对省的下拉框数据的提供全部江浙沪珠三角港澳台海外北京天津河北省山西省内蒙古自治区辽宁省吉林省黑龙江省上海江苏省浙江省安徽省福建省江西省山东省河南省湖北省湖南省广东省广西壮族自治区海南省重庆四川省贵州省云南省西藏自治区陕西省甘肃省青海省宁夏回族自治区新疆维吾尔自治区台湾省香港特别行政区澳门特别行政区colors:对所有颜色的声明如需要修改字体颜色,颜色声明应该写在此配置文件中#00000000#50000000#ffffffff#ffec651a#60000000#b0000000#ff000000#ffff0000#c0ffff00#ffffffff#c000ff00#4c000000#ff111111#ff333333#ff3366ccdrawables:声明图片#ff808080#ffffffff#ff000000#ffcbcbcb#fff14144#ffffb000#ffb5b6b5ids:声明需要用到的一些整形变量falsefalsestrings:声明字符串信息我的收藏夹点击登录浏览历史styles:声明样式信息@null22.0sp@drawable/blackcenter

3.3.业务逻辑层3.3.1.字符处理

详细请参考util下SysUtil类使用

3.3.2.文件类用

详细请参考util下FileUtil类使用

3.3.3.XML操作

详细请参考util下的JdomUtil类和PullUtil类使用

3.3.4.JSON操作

详细请参考util下的JsonUtil类使用3.3.5.线程使用

详细请参考AsyncTask类使用

3.3.6.其它组件

详细请参考util下Pager,PageSplitUtil类使用

3.4.数据逻辑层3.4.1.数据映射3.4.2.特殊查询3.4.3.多数据使用

4.部署和测试

5.文档总结

需求分析:参考实施方案

数据库设计文档:参考数据库设计文档详细设计文档:参考设计文档测试文档:测试计划,测试报告

友情提示:本文中关于《本科毕业参加工作总结(java开发)》给出的范例仅供您参考拓展思维使用,本科毕业参加工作总结(java开发):该篇文章建议您自主创作。

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


本科毕业参加工作总结(java开发)》由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
链接地址:http://www.bsmz.net/gongwen/585501.html