码迷,mamicode.com
首页 > 其他好文 > 详细

关于优化

时间:2017-07-18 13:42:25      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:java se   调整   equals   服务   优化   eset   单例模式   获取   嵌套   

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服务器的网页技术
 
中间件优化
         调整内存
         调整线程数
         在运行环境下屏蔽控制台日志的输出

关于优化

标签:java se   调整   equals   服务   优化   eset   单例模式   获取   嵌套   

原文地址:http://www.cnblogs.com/sunyuhuan/p/7199583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!