一. 问题描述
原文:

翻译:
给定一个数组和一个数,原地删除所有与该数相同的元素,并返回删除后新数组的长度。
二. 分析
双指针同向从左到右遍历,交换到最后即可。
Accept代码
方法一
思路:略
java-代码:
1 |
|
三. 总结
- 官网难度: easy
- 从属类型: 数组
- 正确率: 34.7%
- 相似题目推荐:无
- 个人感觉:简单
给定一个数组和一个数,原地删除所有与该数相同的元素,并返回删除后新数组的长度。
双指针同向从左到右遍历,交换到最后即可。
1 |
|
android activity的生命周期是必须深入理解和掌握的,才能更好的开发出性能优良的app。
回调函数 | 适合处理的任务 |
---|---|
onCreate() | 初始化UI,及其他组件 |
onStart() | 很快调用完进入Resume状态 |
onResume() | Activity完全可见,可交互,有焦点 |
onPause() | Activity被遮挡但可视,不可交互 |
onStop() | 完全不可见,失去焦点,如进入别的Activity或APP |
onDestroy() | 资源回收,一般不用重写,大部分清理工作应该在onPause() & onStop()中完成 |
onRestart() | 从Pause –> restart –> start –> resume |
finish() | 自己结束 |
将安卓各个生命周期理解为爬金字塔,可以很形象的记忆并理解。
其中三个回调函数可以长时间停留,与用户产生交互
当一个Activity被部分遮挡,如弹出对话框,此时则会进入Pause状态。
如果被完全遮挡,则进入stop状态。
onPause()状态通常需要处理如下任务:
注意: 在onPause()中不要进行耗时任务,如数据库操作,这样会影响UI组件的显示效果。在onStop中处理耗时任务较为合适
用户打开最近使用的APP,选择使用其他APP,此时便进入stop状态。
从当前Activity跳转到另外一个Activity,则前一个进入stop状态,如果用户按back键返回,则重新restart。
Start / ReStart Activity
当Activity从后台stop变为前台可见时,系统回调onRestart(),onStart()方法。
注意:由于系统会保留处于Stop截断的Activity实例各种状态,一般的APP没太多必要重写 onRestart
当系统因为内存过低等其他因素销毁了Activity(非正常销毁),尽管Activity Instance实例被回收,但是其状态被系统保存下来,以备恢复之需。
注意:旋转屏幕也会销毁与重建Activity,因为可能需要加载不同的适配资源。
Instance State存在一个key-value键值对集合中,即 Bundle对象。
注意:所有拥有Id的 View都会自动保存用户的输入,如edittext等。所以不必为此担心。
如果要存储Acivity的额外信息数据到bundle中,则需要重写onSaveInstanceState() 回调函数。
当Activity销毁时系统会自动传入一个bundle对象负责存储数据,当你需要用到之前的状态来重建Activity时,系统会传入刚才保存的bunlde对象到onCreate() & onRestoreInstanceState() 方法中。
概述:JDBC就是java定义的通用的数据库API。通过不同数据库驱动可以方便连接不同的数据库如mysql,oracle,sql server等。
需要导入相应的开发包,如使用MySql则导入mysql-connector-java-5.1.39.zip
有几种方式不同连接到数据库
可以采用将相应信息如数据库url ,数据库名,密码等信息写入property配置文件。
配置文件在项目开发中十分常见通用,可以更好的解耦,如当你更换url,数据库,或者使用其他厂商数据库时,只需要改配置文件即可。
注意清理数据库相关资源也是不可或缺的。
代码片段:
1 |
|
CRUD-增删改查是数据库也是软件开发的常见任务。
关键还是 编写 SQL语句的功力。
而作为开发工程师(非DBA,架构师等)最重要的数据库能力就是各种select语句的编写(join关联多表等)。
JDBC操作数据库用到的几个关键对象:
具体的使用方法查看文档即可。
当需要更好的封装JDBC进行单纯地数据库操作(而非ORM等高级对象映射),可以自己简单封装一下,不过效率肯定不能恭维(练习一下造轮子功力&封装能力即可)。
真正通用的方案是选择Apache开源库:
apache jdbc dbutils 官网给出了具体的使用示范。
轻量小乔,方便快捷。可以将resaultset转化为JavaBean,list ,map 等各种数据类型。简化了不少工作。
加强xml文档的编写规范,更加清晰,严谨,可读性增强,避免不必要的错误。
能看懂了解即可,需要用时查询。
熟练XML的增删查改
现代浏览器都支持js,并会自动生成HTML DOM对象(符合xml),所以可以直接用js处理。
有两种方式: