- 浏览: 235628 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
Navee:
抄来抄去,还是没有实质解决问题
Ext 树.叶子查找与非叶子查找 -
haizhiguang:
我按照你的代码自己写了一个试试,没看出我的代码跟你的有什么区别 ...
JAVA 鼠标画直线举行椭圆 -
WHW1984:
整个工程目录结构是咋样的 兄弟
Jetty -- 安全认证 -- 三种配置方法 -
shixianwei:
...
Jetty Oracle DataSource Config(Jetty Oracle 数据源配置) -
cpusoft:
http://cuiyingfeng.blog.ccidnet ...
JNI(java 调用 本地接口)Tomcat的JNI库加载问题解决办法
今天看sun的HttpMessages.java文件,虽然文件很小,但是对我的启发很大。
前面定义了大量的HTTP常量:
Java代码
也可以趁机从这里查看HTTP返回值的意义^_^。然后定义了一个java.util.concurrent.ConcurrentHashMap的变量httpStatusCodeMappings,再往里面添加刚才定义的常量(这个操作放在了一个静态块里),如:
Java代码
最重要的就是这个方法了,先看代码:
Java代码
这段代码的用途很简单,就是要返回状态码对应的Message,而这些这些消息都已经存放在httpStatusCodeMappings变量里了,为了提高访问常用的几个返回码的Message,它直接用了一个静态块,而不去lookup那个map了,这就是高手!
sw1982 写道
...lookup 一下hashmap真的那么低效吗? 建议复习下数据结构哦,你这些总结是没错,可是很表面
典型的没有写过高并发程序的思维方式,明明可以节约的地方,仅仅几行代码就可以优化,偏偏不做。
hashmap再快,也比case 一个 整型满上1w倍。
性能,是一点一点挤牙膏挤出来的,哪能到处浪费啊。
前面定义了大量的HTTP常量:
Java代码
... ... private static final String STATUS_305 = "Use Proxy"; private static final String STATUS_307 = "Temporary Redirect"; private static final String STATUS_400 = "Bad Request"; private static final String STATUS_401 = "Unauthorized"; private static final String STATUS_402 = "Payment Required"; private static final String STATUS_403 = "Forbidden"; private static final String STATUS_404 = "Not Found"; private static final String STATUS_405 = "Method Not Allowed"; private static final String STATUS_406 = "Not Acceptable"; private static final String STATUS_407 = "Proxy Authentication Required"; private static final String STATUS_408 = "Request Timeout"; ... ...
... ... private static final String STATUS_305 = "Use Proxy"; private static final String STATUS_307 = "Temporary Redirect"; private static final String STATUS_400 = "Bad Request"; private static final String STATUS_401 = "Unauthorized"; private static final String STATUS_402 = "Payment Required"; private static final String STATUS_403 = "Forbidden"; private static final String STATUS_404 = "Not Found"; private static final String STATUS_405 = "Method Not Allowed"; private static final String STATUS_406 = "Not Acceptable"; private static final String STATUS_407 = "Proxy Authentication Required"; private static final String STATUS_408 = "Request Timeout"; ... ...
也可以趁机从这里查看HTTP返回值的意义^_^。然后定义了一个java.util.concurrent.ConcurrentHashMap的变量httpStatusCodeMappings,再往里面添加刚才定义的常量(这个操作放在了一个静态块里),如:
Java代码
static { httpStatusCodeMappings.put("sc.100", STATUS_100); httpStatusCodeMappings.put("sc.101", STATUS_101); httpStatusCodeMappings.put("sc.200", STATUS_200); httpStatusCodeMappings.put("sc.201", STATUS_201); httpStatusCodeMappings.put("sc.202", STATUS_202); httpStatusCodeMappings.put("sc.203", STATUS_203); ... ... static { httpStatusCodeMappings.put("sc.100", STATUS_100); httpStatusCodeMappings.put("sc.101", STATUS_101); httpStatusCodeMappings.put("sc.200", STATUS_200); httpStatusCodeMappings.put("sc.201", STATUS_201); httpStatusCodeMappings.put("sc.202", STATUS_202); httpStatusCodeMappings.put("sc.203", STATUS_203); ... ...
最重要的就是这个方法了,先看代码:
Java代码
public static String getMessage(int status) { // Return the status message for the most frequently used status // codes directly, without any lookup switch (status) { case 200: return STATUS_200; case 302: return STATUS_302; case 400: return STATUS_400; case 404: return STATUS_404; } return httpStatusCodeMappings.get("sc."+ status); } public static String getMessage(int status) { // Return the status message for the most frequently used status // codes directly, without any lookup switch (status) { case 200: return STATUS_200; case 302: return STATUS_302; case 400: return STATUS_400; case 404: return STATUS_404; } return httpStatusCodeMappings.get("sc."+ status); }
这段代码的用途很简单,就是要返回状态码对应的Message,而这些这些消息都已经存放在httpStatusCodeMappings变量里了,为了提高访问常用的几个返回码的Message,它直接用了一个静态块,而不去lookup那个map了,这就是高手!
sw1982 写道
...lookup 一下hashmap真的那么低效吗? 建议复习下数据结构哦,你这些总结是没错,可是很表面
典型的没有写过高并发程序的思维方式,明明可以节约的地方,仅仅几行代码就可以优化,偏偏不做。
hashmap再快,也比case 一个 整型满上1w倍。
性能,是一点一点挤牙膏挤出来的,哪能到处浪费啊。
发表评论
-
Java对Json的工具类 JsonUtil 绿色版
2011-04-19 10:48 2466绿色版,无污染,无需下载第三方包.转自某某博客. packa ... -
模型是是搜索
2011-03-17 00:37 1139#!/usr/bin/env python # -*- co ... -
Java 调用浏览器访问指定URL. 多平台
2011-02-16 13:46 2906/////////////////////////////// ... -
Java Web 项目读取配置文件
2010-10-28 18:18 2853在开发过程中,我们经常会遇到读取配置文件的情况,对于配置文件的 ... -
j=j++与j=++j的区别
2010-09-21 16:28 1764jvm里面有两个存储区,一个是暂存区(是一个堆栈),另一个是变 ... -
JSON与JAVA数据的转换
2010-09-15 14:29 1011JSON与JAVA数据的转换 关键字: json java ... -
对web.xml 的几点配置心得。包括mime-mapping
2010-08-31 23:09 19521.指定了自己的javaEncoding (参考 http:/ ... -
JasperReports学习笔记
2010-08-30 13:03 1359reference: http://www.javaworl ... -
JFreeChart 教程二
2010-08-25 16:22 1155JFreeChart是一组功能强大、灵活易用的Java绘图AP ... -
JFreeChart 教程一
2010-08-25 16:20 1010以下是需要画一个折线图查到的资料(放到这里备用): 原文地址 ... -
我和iText的第一次亲密接触
2010-08-19 22:58 1394要生成pdf文件,在网上查了下资料,首选iText,跟着大家走 ... -
引入多个Jar~
2010-08-19 13:49 577Zhe画 13:55:50 java命令引入jar时可以- ... -
Jetty7 Continuation 学习(一)
2010-08-19 08:44 1902Jetty7发布了,Jetty7支持servlet 2.5,且 ... -
jetty快速入门
2010-08-17 15:13 2831(0) Jetty 是一个开源的ser ... -
JNI(java 调用 本地接口)Tomcat的JNI库加载问题解决办法
2010-08-15 10:17 6722Tomcat的Release Notes 里有这么一段话: = ... -
Java入门--认识理解Java中native方法
2010-08-15 09:38 954Java不是完美的,Jav ... -
用digester简化xml文档处理
2010-08-15 00:21 1023用digester简化xml文档处理java 2010-05- ... -
关于URL特殊符号的问题~
2010-08-14 15:20 1065HTML 格式编码的实用工具类。该类包含了将 String 转 ... -
InheritableThreadLocal 线程变量
2010-07-29 11:40 2293ThreadLocal有个缺陷,在子线程里无法访问父线程的变量 ... -
java基础补疑
2010-07-28 11:53 814java语言的关键字,变量修饰符,如果用transient声明 ...
相关推荐
《阿里巴巴P9百亿级高并发系统设计手册》是一本深入探讨大规模并发系统设计的专业书籍,旨在为读者提供在阿里巴巴这样大型互联网公司中处理高并发场景的实践经验与理论知识。本书内容丰富,涵盖三百多页,全彩印刷,...
高并发复用数据库链接技术详解之数据库连接池 类加载器的高级特性(自定义类加器实现加密解密) iBATIS开源主流框架(实现半自动化hibernate) 企业实用技能之详解(眼睛横纹模式验证码防止恶意登陆) 动态页面的静态化...
【Java技术资料】-(机构内训资料)Java并发体系学习思维笔记 在Java编程领域,并发编程是一项至...通过深入学习,开发者可以提升自己在Java并发编程领域的专业水平,从而更好地设计和实现高并发、高性能的Java应用。
5. **并发设计模式** - **生产者消费者模式**:通过BlockingQueue实现线程间的异步通信,生产者将数据放入队列,消费者从队列中取出数据。 - **双端队列(Bounded Buffer)**:基于ArrayBlockingQueue,实现两个...
总之,千万级规模的高性能、高并发网络架构设计涉及到多个层面,包括性能优化、服务拆分、数据处理和安全防护。架构师需要具备强大的抽象思维、分类能力和性能调优技能,以应对互联网业务的快速增长和复杂需求。通过...
本课由360架构师亲授,以360真实秒杀系统为切入点, 从秒杀的功能入手,分层递进讲解,逐步让大家掌握系统的设计、架构以及优化,从容应对百万级、过亿级的秒杀活动及其它海量访问的互联网系统。1. Linux / Nginx / ...
本书由张开涛撰写,旨在分享高可用、高并发系统的设计理念和实践经验。 首先,亿级流量网站的架构设计需要考虑以下几个核心要素: 1. **负载均衡**:通过负载均衡技术,如Nginx或HAProxy,可以将海量请求分散到多...
《C++设计新思维》是一本深入探讨C++编程技巧和设计模式的书籍,它将泛型编程与设计模式的概念巧妙地结合在一起,为程序员提供了一种全新的思考方式。在C++的世界里,理解并掌握这些知识对于提升编程效率和写出高...
本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做...
- **并发控制**:InnoDB通过MVCC(多版本并发控制)和行级锁定实现高并发,减少锁竞争。 - **锁定策略**:表锁、行锁、页锁,根据场景选择合适的锁定粒度,平衡并发性和锁定开销。 以上是基于"MySQL高级_思维导图...
《C++设计新思维:泛型编程与设计模式之应用》这本书深入探讨了C++语言在泛型编程和设计模式中的应用,对于理解和提升C++编程能力有着重要的指导价值。以下将围绕这些主题展开详细讨论。 一、泛型编程 泛型编程是...
- InnoDB:默认引擎,支持事务处理、外键约束和行级锁定,适合高并发场景。 - MyISAM:非事务性引擎,读取速度快,但不支持事务,适合读多写少的应用。 3. **事务处理**: - 事务的ACID特性:原子性(Atomicity...
### 系统架构设计师思维导图1 #### 知识点详析 ##### 一、计算机基础知识 **冯诺依曼系统:** - **特点:** 存储程序原理,程序和数据统一存储在内存中。 - **组成部分:** 输入设备、输出设备、运算器、控制器、...
数据库技术是软件开发中的必备技能,咱们从数据库基本操作到掌握数据库设计的能力,层层深入学习数据库设计思想,一个软件项目的底层逻辑中,数据的存储结构是重中之重,因此,数据库技术也是面试中常被面试官拿来...
在专业培训中,学员可以通过模拟实际项目,学习如何将理论知识应用于具体场景,比如如何在不同的业务场景下选择最适合的架构,如何进行架构评估来确保设计方案的合理性,以及如何设计数据架构以满足高并发和大数据...
《选修课报名抢座小程序 开题报告...综上所述,"选修课报名抢座小程序"是一个结合实际需求、技术挑战与创新思维的毕业设计课题,对于学习微信小程序开发、了解前后端交互、提升软件工程实践能力等方面都有重要的价值。
总之,《C程序设计新思维(第2版)》是一本全面且深入的C语言教程,不仅适合初学者,也对经验丰富的开发者有很高的参考价值。通过学习,读者不仅可以掌握C语言的高级特性,还能了解到开发环境的配置、调试技巧、项目...
Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、健壮性和安全性。在“Java高效学习 从基础到高级 30+7思维导图 视频资源.rar”这个压缩包中,包含了丰富的学习资料,旨在帮助初学者快速...