关于优化

collection接口包括 list接口  set接口
lis接口t包括ArrayList类  LinkedList类 Vector类
set接口包括HashSet类 SortedSet接口
                                     SortedSe接口包括TreeSet类
                    HashSet类包括HashMap
                                                                   TreeSet类包括TreeMap(底层是可排序的二叉树)
Map接口包括HashMap类  HashTable类  SortedMap接口
                                                                 SortedMap接口包括TreeMap类
                                          HashTable类 包括Properties类
                       HashMap类 底层是散列表或者哈希表
ArrayList底层实现的是数组
优点:查询效率高因为数组是用来存放相同数据类型的数据结构,在内存空间中,数组中元素的地址是连续的每一个元素都对应着一个下标,根据下标可以快速定位数组中元素的位置缺点:增删效率低
 
LinkedList底层实现是双向链表
优点:增删效率高因为链表中的元素
缺点:查询效率低。因为是不连续的,如果要查询链表中的某一个元素,只能做全链表扫描
 
list集合特点有序可以重复
set集合特点无序不可重复
Map集合特点:以键值对的方式存放数据其中key无序不可重复
 
散列表不是一个纯数组也不是一个纯链表,是数组和链表的结合体
Entry是链表上的一个节点
Map  map=new HashMap();当执行map.put(key,value)操作的时候的原理
首先调用key部分的hahcode方法,获取key的hash值,这个hash值会根据hash算法,将hash值转换
为对应的数组元素的下标
如果当前数组下表的我只还没有单项链表,那么直接将key和value封装为一个enry对象这就完成了存储
如果当前数组下表的位置已经存在单项链表,并且单项链表上已经存在了许多节点,就调用key的equals方法个单项链表上的节点依次进行比较
    如果返回的是false,那么直接将key和value封装为一个enry对象这就完成了存储
   如果比较结果有返回的true,放弃添加该元素,新元素devalue会将就元素value替换掉
 
 
没有重写hashcode会出现什么情况?
如果没有重写hahscode,那么默认调用的Object类中提供的hashcode方法这个方法的返回值是根据对象的内存地址演变的
 
Java优化
写缓存用到单例模式(懒汉模式  饿汉模式)
1.首先构造现初始化对象
2.提供一个公开的静态的方法
3.提供一个变量(方法区)
数据库优化:
              数据库设计三范式(必须有主键 不能传递依赖  不能产生部分依赖)
使用批量删除
尽量减少嵌套查询
尽量减少group和having子句的应用
 
js优化 jQuery
确保代码尽量简洁
压缩代码
异步装入跟踪代码
 
js和jsp区别和联系
     javaScript是js的简称 ,是一种脚本语言,嵌套在网页中实现各种功能
jsp是  Java server page(JAVA SERVER PAGE)基于Java服务器的网页技术
 
中间件优化
         调整内存
         调整线程数
         在运行环境下屏蔽控制台日志的输出
posted @ 2017-07-18 11:31  超重语言  阅读(166)  评论(0编辑  收藏  举报