HashMap和 HashTable 的区别
HashTable比较老,是基于Dictionary 类实现的,HashTable 则是基于 Map接口实现的,hashmap去掉了hashtable的contain()方法,但是加上了containvalue和containkey()方法。
HashTable 是线程安全的, HashMap 则是线程不安全的
HashMap可以让你将空值作为一个表的条目的key或value
tips:在内存优化阶段,使用Arraymap可以更加节约内存。Arraymap是二分法的查找方法,当删除和添加数据时,会对空间重新调整,使用大量数据时,效率比HashMap低,相当于”牺牲时间换空间”。
GC内存泄漏的原因
1. 数据库的游标没有及时关闭
2. 构造adapter时,没有使用contentview。也就是说listview的优化没有做好
3. bitmap不使用时没有及时的recycle释放
4. activity中的对象的生命周期大于activity的生命周期
TCP/IP中的协议
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由以太网设备驱动程序发来的数据包,并把该数据包发送到更高层—TCP或UDP层。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,大量数据传输时用TCP,但传输数据较于UDP慢。UDP与TCP位于同一层,但对于数据包的顺序错误或重发。是一种面向非连接的,不可靠的,无连接的协议。效率快与TCP。
TCP建立一个连接的三次握手:客户端连接请求SYN+服务器端同意请求SYN +ACK+客户端收到服务器端确认的ACK。
终止一个连接的四次挥手:应用发送一个FIN分节+接收到这个FIN的对端执行 “被动关闭”ACK分节+一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN分节+接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN确认ACK分节。
Override和Overload的含义与区别
Overload顾名思义是重新加载,它可以表现类的多态性,可以是函数里面可以有相同的函数名但是参数名、返回值、类型不能相同;或者说可以改变参数、类型、返回值但是函数名字依然不变。(继承)
就是ride(重写)的意思,在子类继承父类的时候子类中可以定义某方法与其父类有相同的名称和参数,当子类在调用这一函数时自动调用子类的方法,而父类相当于被覆盖(重写)了。(接口)
Http和Https的区别
Http是超文本传输协议,信息是明文传输,Https 则是具有安全性的ssl(Secure Socket Layer)加密传输协议. Http和Https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443.一般需要安全加密,身份认证的都是https.