- 168.00 KB
- 2022-07-30 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
Android复习1.主流手机操作系统Symbian(中文名:塞班)支持厂商:诺基亚(索尼爱立信、三星已宣布退出塞班阵营)Android(中文名:安卓)支持厂商:摩托罗拉、HTC、三星、LG、索尼爱立信,联想、华为、中兴等。WindowsPhone支持厂商:HTC、三星、LG、索尼爱立信,诺基亚与2011年初正式宣布与微软合作,将采用WP7操作系统iOS是(又称iPhoneOS)支持厂商:苹果公司2.Android操作系统的内存回收机制Android中的进程是托管的,当系统进程空间紧张的时候,会依照优先级自动进行进程的回收Android将进程分为6个等级,它们按优先级顺序由高到低依次是:1.前台进程(FOREGROUND_APP)2.可视进程(VISIBLE_APP)3.次要服务进程(SECONDARY_SERVER)4.后台进程(HIDDEN_APP)5.内容供应节点(CONTENT_PROVIDER)6.空进程(EMPTY_APP)3.Android生命周期ü启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。ü当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。ü当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。ü当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。ü用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。ü当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。\nü用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。1.Activity的状态a)Active:可见获得焦点,在栈顶b)Paused:可见失去焦点,在栈顶c)Stopped:不可见,不在栈顶d)Inactive:不可见,进程被杀,不在栈中2.Activity的启动模式Activity的启动模式可以通过AndroidManifest.xml文件中的元素的属性来指定,一共有4中模式: a)Standard:默认,来了intent,每次都创建新的实例b)singleTop:来了intent,每次都创建新的实例,仅一个例外:当栈顶的activity为当前时不创建。c)singleTask:来了intent后,检查栈中是否存在该activity的实例,如果存在就把intent发送给它,否则就创建一个新的该activity的实例,放入一个新的task栈的栈底。d)singleInstance:肯定位于一个task的栈底,并且是该栈唯一的activity。3.启动Activity的方法a)startActivity(Intent)用来运行一个新的Activity,并且放置在Activity栈的顶层。b)startActivityForResult(Intentintent,intrequestCode)启动一个Activity当它结束的时候你需要一个结果。c)startActivityFromChild(Activitychild,Intentintent,intrequestCode)4.退出Activitya)使用killProcess(intpid)可以杀死指定PID的进程b)使用System.exit(0);可以达到和killProcess同样的效果c)使用finish()可以杀死当前的activity,进程没有被杀死5.DDMS中Log信息级别a)Verbose,啰嗦模式,最低级别的信息b)Debug,调试模式c)Info,信息模式d)Warn,警告模式e)Error,错误模式6.意图(Intent)的作用Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent(意图),Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、服务和广播接收器。通过startActivity()orstartActivityForResult()启动一个Activity;通过startService()启动一个服务,或者通过bindService()和后台服务交互;通过广播方法(比如sendBroadcast(),sendOrderedBroadcast(),sendStickyBroadcast())发给broadcastreceivers7.Intent传递复杂数据在android中,intent原生直接提供了一些简单数据类型的数据的传递,使用起来也很方便,比如intboolean和string等,当然还可能传递这些类型的数组形式已经list形式。但在我们的使用往往希望可以传递一些自定义的类对象,目前通过intent可以通过两种形式,Serializable或者Parcelable8.菜单分类a)选项菜单:当用户单击设备上的菜单按钮(Menu),触发事件弹出的菜单就是选项菜单。b)上下文菜单:当用户长按Activity页面时,弹出的菜单我们称为上下文菜单。c)弹出菜单:子菜单就是将相同功能的分组进行多级显示的一种菜单。实现菜单需要重写activity中的onCreateOptionsMenu和onOptionsItemSelected这两个方法9.Android布局a)五大布局1)LinearLayout,线性布局方式orientation:水平方向(horizontal)和垂直方向(vertical)\n1)RelativeLayout,相对布局2)AbsoluteLayout,绝对位置布局3)FrameLayout,帧布局4)TableLayout,表格布局android:stretchColumns:设置指定的列为可伸展的列,以填满剩下的多余空白空间android:shrinkColumns:设置指定的列为可收缩的列。当可收缩的列太宽(内容过多)不会被挤出屏幕。b)layout_*( layout_width, layout_height)属性值1)fill_parent:表示填充满父控件也就是所处于的布局控件的整个宽/高2)wrap_content表示包裹内容即内容有多少则该控件就有多宽/高3)match_parent表示适应父控件中剩余宽/高,即除去布局控件下的其他控件的宽/高后剩下的宽/高就是该控件的宽/高c)高级布局1)列表视图(ListView)onItemclickListener点击事件onItemLongClickListener长点击事件2)网格视图(GridView)3)标签布局(TabLayout)4)滚动视图(ScrollView)d)常用适配器1)BaseAdapter是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性2)ArrayAdapter支持泛型操作,最为简单,只能展示一行字。3)SimpleAdapter有最好的扩充性,可以自定义出各种效果。4)SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。2.基本控件a)EditText常用的属性1)android:gravity设置文本位置2)android:textColor设置文本的颜色3)android:text显示文本4)android:inputType显示文本的类型5)android:hint为空时显示的文字提示信息b)RadioButton单选按钮1)单选按钮由两部分组成,RadioButton和RadioGroup2)RadioGroup是单选组合框,用于将RadioButton框起来3.常用高级控件a)SpinnerTextView下拉列表框组件b)AutoCompleteTextView自动完成文本框c)SeekBar拖动条4.AlertDialog对话框a)setTitle:为对话框设置标题b)setIcon:为对话框设置图标c)setMessage:为对话框设置内容d)setNeutralButton:普通按钮e)setPositiveButton:给对话框添加"Yes"按钮f)setNegativeButton:对话框添加"No"按钮g)create:创建对话框h)show:显示对话框5.Android服务a)启动服务:startServiceb)停止服务:stopService\na)绑定服务:bindServiceb)解除绑定:unbindService2.BroadcastReceive广播接收器两种注册方式a)静态注册就是在AndroidManifest.xml文件中定义,注册的广播接收器必须继承BroadReceiverb)动态注册就是在程序中使用Context.registerReceiver注册3.文件存储a)外部存储b)内部存储1)openFileInput(Stringname)读文件2)openFileOutput(Stringname,intmode)写文件c)资源存储1)android中用XmlPullParser解析XML文件,相对于dom和sax的解析,具有不用事先调入整个文档,占用资源少,API相对简单等优点4.数据存储(sqlite)a)获取SQLiteDatabase对象的方法1)getWritableDatabase()2)getReadableDatabase()Linux复习1.安装linux的要求a)Linux系统安装前需要进行硬盘中数据的备份b)主机硬盘中应为Linux系统预留空间和分区c)Linux系统需要至少一个根分区和一个交换分区d)根分区文件系统默认采用EXT3格式e)可以使用光盘或USB设备引导安装程序f)安装程序可以从光盘、硬盘和网络服务器读取软件安装包2.Linux常用的命令a)cd命令:切换当前目录b)ls命令:查看文件与目录的命令c)cp命令:用于复制文件d)mv命令:用于移动文件、目录或更名e)rm命令:用于删除文件或目录f)su命令:用于切换当前用户g)chmod命令:改变文件的权限h)pwd命令:显示出确实的路径3.linux文件权限-rwxrwx---1rootplugdeva)Linux文件权限一共10位长度,分成四段b)第一段:区分文件和目录c)第二段:所有者权限d)第三段:用户的权限e)第四段:其他用户的权限4.vi编辑器中的命令a)插入模式1)按「i」切换进入插入模式「insertmode」,按“i”进入插入模式后是从光标当前位置开始输入文件;2)按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;3)按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。b)插入模式切换为命令行模式1)按「ESC」键c)删除文字\n1)「x」:每按一次,删除光标所在位置的“后面”一个字符。2)「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。3)「dd」:删除光标所在行。b)退出vi及保存文件1):wfilename(输入「wfilename」将文章以指定的文件名filename保存)2):wq(输入「wq」,存盘并退出vi)3):q!(输入q!,不存盘强制退出vi)2.linux中的批处理linux中的批处理后缀名为.sh,比如我们要启动tomcat服务,只要运行startup.sh即可Oracle复习1.PLSQL块中,分三部分:声明部分、可执行部分、异常处理部分。其中可执行部分是必须的,且不能使用DDL与DCL语句.2、使用FOR循环迭代游标时,FORvar_nameLOOP┉中的var_name不需要在声明部分预先定义,使用FOR循环游标时不需要先使用OPEN命令把游标打开,也不需要使用CLOSE命令把游标关闭,也不需要在循环内使用FETCH命令提取游标指针所指向的数据。3、Oracle中,同义词分为公有与私有,要创建公有同义词,用户必须拥有CREATEPUBLICSYNONYM权限,所有者属于PUBLIC。优点:简化SQL、隐藏所有者与名称、提供对对象的公共访问、在分布式数据库中提供透明访问。4、Oracle的索引包括:唯一、位图、函数、反向键、非唯一(标准)等,其中在创建主键时会会自动创建唯一索引。位图索引适合在列的取值重复率比较高的列上。反射键索引适合在列反过来相差较大的列上。5、在数据库的查询中,比较查询某字段的值为空的条件语句是:wherefield_nameisnull;6、Oracle中,伪列ROWID与ROWNUM的区别。ROWID是存储数据行的物理地址;如果在oracle中获取前100条,可使用rownum.7、Oracle物理组件包括:数据文件(datafile)、控制文件(controlfile)、日志文件(redologfile)、密码文件(passwordfile)、初始化参数文件(spfile或pfile);逻辑组件包括:表空间(tablespae)、段(segment)、区(extend)、块(block)。8、Oracle数据安全可以通过权限来控制,权限分为系统权限与对象权限。如果想把表对象的所权限(增加、删除、修改、查询)都授予给某用户,可以使用grantallontable_nametouser_name或grantinsertorupdateordeleteorselectontable_nametouser_name9、游标分为:动态(REF)与静态,静态游标又分为:隐式游标与显式游标,隐式游标用于处理单行查询结果的游标;显式游标先定义游标并指向一条SQL语句,一般用于处理得到多行查询结果的游标。10、exp与imp导入导出中常用的参数,导入导出的四种模式是什么?(整个数据库模式:full=Y、用户方式:owner=user_name、表方式:tables=(table_name1,table_name2…)、表空间方式:tablespaces=tablespace_name11、触发器包括:数据库、模式、表。表级触发器又包括语句级与行级。行级触发器允许触发操作中的语句访问行的列值。数据库的触发器包括三部分,分别为:触发器语句、触发器主体和触发器限制。12、程序包包括:包的规范(或包的声明)与包的主体。公有的子程序和常量在包的规范(包的声明)中声明。13、在select语句中orderby、groupby、havingby、where的作用分别是什么14、分析函数通常用来计算累计排名、移动平均数和报表聚合等。分组函数用于同一组数据进行求和、最大、最小、记录数、平均数等。15、Oracle中,普通用户默认表空间是users,临时表空间为temp,回滚表空间是undotbs16、锁包括行锁与表锁。共享锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。排他锁是最强的锁,只允许其他用户查询表中的行,不允许其它用户对表有任何的锁。17、四种分区:散列分区、范围分区、列表分区、复合分区。列表分区允许用户明确地控制行到分区的映射。范围分区允许用户明确地控制某一区间的值到分区的映射。复合分区包括范围-列表与范围-散列两种。散列分区在指定分区数目时,一般指定为2的n次方个分区为宜。18、大对象数据类型包括BLOB、CLOB、BFILE,其中BFILE数据类型的数据总不是存储在数据库内的,存在操作系统里面。20、NVL函数将Null值转换为实际值;NVL2函数将Null值转换为一个实际值,不为空的值转为另一个实际值;NULLIF函数如果为NULL值则转为指定值。(选择三项)21、关于对使用游标变量的限制:22、程序包的优点:A、信息隐藏B、更轻松的应用程序设计C、性能更佳D、模块化23、有关子程序:子程序可以嵌套,还可以传递参数,函数的参数模式包括IN,而过程则可以in,out,inout三种都可以;\n子程序的参数不能指定数据类型的宽度,子程序的声明部分、可执行部分、异常处理部分,其中可执行部分是必须的。24、oracle包括数据库与实例。实例包括内存与后台进程;内存包括SGA与PGA。SGA包括:日志缓冲区、数据缓冲区、共享区等。数据库包括物理组件与逻辑组件。25、SYS模式存储数据库中数据字典的表和视图。26Oracle命令用于设置每页输出的行数:setpagesize,设置行宽:setlinesize,打开自动提交功能:SETAUTOCOMMITON。27SQL全称为结构化查询语言,用于数据库中的标准数据查询及维护,包含了DML,DDL,DCL.其中DML语言的主要职责是数据操作,包含insert,update,delete,merge28和selectconcat(‘a’,’b’)fromdual;有同样效果的语句是select‘a’||’b’fromdual29selectinstr(‘helloworld’,’or’)fromdual的结果是830员工表为emp,其中员工姓名字段是ename,找出员工中姓名不带有R字母的员工信息:select*fromempwhereenamenotlike'%R%'31分组子句groupby的描述是:出现在SELECT列表中的字段或者出现在orderby后面的字段,如果不是包含在分组函数中,那么该字段必须同时在GROUPBY子句中出现;32假如员工emp表有10条记录,而部门表dept有6条记录,那么select*fromemp,dept得到的结果集记录数有0条数据33SQL的集合操作中,可以得到所有的内容,并且包含重复内容数据记录的是UNIONALL34删除表student的年龄字段age,使用Altertablestudentdropcolumnage35员工表emp中有一个字段sal描述工资,现在使用触发器来确保员工的工资修改后不能低于原有工资:a)Createorreplacetriggertr_emp_salb)beforeupdateofsalonempc)foreachrowd)begine)if:newed.sal<:olded.salthenf)raise_application_error(-20010,'工资不能低于原有水平');g)endif;h)end;第e行有错误36锁定一个存在的用户test,使用GRANTUNLOCKTOtest;SSH复习1.Struts2是一个MVC模式的Web应用程序框架,它由3大组件构成,分别为控制器组件,模型组件和视图组件,可以与Spring以插件的方式进行整合。2.Struts2的控制器主要有核心控制器FilterDispatcher,业务控制器Action构成,模型组件需要用户提供,视图组件包括常规jsp,也可以有freemarker,velocity等3.Struts2中默认的配置文件主要struts.xml,struts-default.xml,struts-plugin.xml,除此之外系统还提供了默认资源文件default.properties,如果用户需要修改也可以自定义一个资源文件struts.properties用来设置系统参数。4.Struts2提供的Action接口中定义了5个常量字符串,分别为Success,none,login,error,input,在struts.xml声明action时,默认的result名称是success,类型是dispatcher,如果需要重转向可以使用redirect,redirectAction,如果要配置全局结果集,可以使用global-results标签。5.在struts2中创建一个Action有2种方法,一种是直接构建一个类,另一种是构建一个ActionSupport的子类。其中execute是默认执行方法,用户也可以自定义其他处理方法。当Action构建完毕,使用时我们需要对Action进行声明,声明Action也有2种办法,方法一在struts.xml声明,方法二:可以使用注解6.Struts2与Struts1的一点显著区别是剥离了与Servlet的直接依赖,但是在struts中如果要使用ServletAPI.我们有3种方法方法一:Struts2中提供了一个ActionContext类(当前Action的上下文对象),通过这个类可以访问ServletAPI,其中ActionContext实例的put方法可以将数据存放到request中,getSession()获取封装了HttpSession的Map对象\n方法二:实现ServletContextAware,ServletRequestAwareServletResponseAware接口方法三:使用ServletActionContext,其静态方法有:getPageContext()、getRequest()、getResponse()、getServletContext()。1.Struts2中实现自定义拦截器,方法有3中,分别是:a)实现Interceptor接口b)继承AbstractInterceptor类,此类实现了Interceptor接口c)继承MethodFilterInterceptor,可实现方法过滤拦截2.Struts2标签iterator中,value属性用于设定需要遍历的集合,标签用来输出国际化信息,和用来输出错误消息------------------------------------------------------------------------------------------------------------------------3.Hibernate是一款主流的持久层框架,是一个优秀的ORM实现。ORM(对象-关系映射机制),即我们在编写程序时候,以面向对象方式处理数据,而保存数据的时候,却以关系型数据库方式存储。ORM通过将OO中类映射成关系型数据库中表,对象映射为记录,属性映射为字段从而实现直接以OO方式实现数据持久化操作。4.Hibernate的映射文件后缀为*.hbm.xml,在映射文件中,Id标签用来描述主键信息,常用的主键策略有native,assigned,identity,sequence,imcrement,uuid.hex等,其中native表示由底层数据库自行决定主键生成,assigned则需要用户设定。5.Hibernate通过关联映射来实现类与类之间的关联,常见的映射关系有:一对一,一对多,多对一,双向一对多,多对多。6.Hibernate对象的状态有3中,分别为瞬时状态,持久状态,游离状态,他们之间可以进行转换,当实例化一个对象时,该对象既不和Session实例关联,数据库也没有相应记录,此时处于瞬时状态,而持久状态的对象有关联Session实例,在数据库有相应记录并持有一个唯一持久化标示,当执行get,load,save,update,saveOrUpdate时,对象转为持久状态,当session关闭,此时与session关联的对象由持久状态转换为游离状态。7.Hibernate可以通过get和load根据id来加载对象,区别在于load执行懒加载,只有当真正使用对象中数据时才真正执行查询,get无论是否使用,立即执行查询。8.Hibernate支持3种方式执行查询,分别为:HQL,Criteria,原生SQL,HQL类似SQL,都包含select,insert,update,delete语句,也可以使用聚合函数max,min,sum,count,avg,也可以使用内连接,外连接,子查询等,区别在于HQL面向对象,SQL则用于操作关系型数据库,在HQL中如果想预先抓取查询所使用的关键字fetch。Criteria是一种面向对象查询,即使不懂SQL也可以执行查询,它通过Restractions来设置查询条件。----------------------------------------------------------------------------------------------------------------------9.Spring是一款轻量级的非侵入式基于依赖注入和AOP实现的框架容器。它建议以松耦合的方式组织程序,提倡面向接口编程和组件的实现隔离,Spring主要提供对现有技术的封装,实现了其他Java框架如struts,hibernate等的无缝集成。10.Spring依赖注入主要通过3种方式实现,分别是set方法注入,构造方法的注入和接口注入。11.Spring的核心配置文件默认为applicationContext.xml,用户可以添加多个配置文件,用户可以通过ClassPathXmlApplicaionContext,FileSystemApplicationContext,XmlWebApplicationContext获取ApplicationContext对象,然后通过getBean(beanName)方法获取Spring容器实例化的对象。12.在Spring中,两个类打印机Printer和墨盒ColorInk存在下列的关系,可以通过如下代码进行配置publicclassPrinter{privateColorInkcolorink;//getter,setter方法省略…} 13.Aop中,AO代表的是面向切面思想,它是对OO思想的一种补充,针对程序中横向出现的大量相同业务,主张将这些业务从程序中抽象出来,集中解决,然后再在程序中构建横截面,织入功能。\n1.Spring中的通知类型主要有前置通知,后置通知,异常通知,环绕通知,最终通知,分别可以用注解@before,@afterReturning,@afterThrowing,@around,@after标注。2.SpringAOP提供了声明式事务管理,简化了繁琐的事务处理代码,在日常应用中,事务管理应该设置在业务层。3.Spring其核心是一个IOC容器,负责管理对象的生命周期,以及建立对象的依赖关系,它完全实现了面向对象的依赖倒置原则,优势之一在于非侵入,客户程序无需依赖它的API.4.spring同时支持私有属性,setter方法和构造方法的依赖注入.5.spring对bean的管理默认是单例的,但是可以通过设置bean标签的scope=”prototype”来设置为原型.6.spring的IOC容器支持对象继承管理,子类bean中可以通过parent属性指定父类bean的引用,前提是父类bean也受同一个容器管理,如果父类是抽象类,那么需要在bean中设定属性abstract=true7.spring支持对象集合属性映射,包括Map集合使用