当前位置: 首页 > news >正文

nas 建网站网站开发工具书

nas 建网站,网站开发工具书,汉中做网站的电话,汉沽网站建设制作转载自 [初级]Java中的switch对整型、字符型、字符串的具体实现细节Java 7中#xff0c;switch的参数可以是String类型了#xff0c;这对我们来说是一个很方便的改进。到目前为止switch支持这样几种数据类型#xff1a;byteshort int char String 。但是#xff0c;作为一个…转载自 [初级]Java中的switch对整型、字符型、字符串的具体实现细节Java 7中switch的参数可以是String类型了这对我们来说是一个很方便的改进。到目前为止switch支持这样几种数据类型byteshort int char String 。但是作为一个程序员我们不仅要知道他有多么好用还要知道它是如何实现的witch对整型的支持是怎么实现的呢对字符型是怎么实现的呢String类型呢有一点Java开发经验的人这个时候都会猜测switch对String的支持是使用equals()方法和hashcode()方法。那么到底是不是这两个方法呢接下来我们就看一下switch到底是如何实现的。 一、switch对整型支持的实现 下面是一段很简单的Java代码定义一个int型变量a然后使用switch语句进行判断。执行这段代码输出内容为5那么我们将下面这段代码反编译看看他到底是怎么实现的。 public class switchDemoInt {public static void main(String[] args) {int a 5;switch (a) {case 1:System.out.println(1);break;case 5:System.out.println(5);break;default:break;}} } //output 5 反编译后的代码如下 public class switchDemoInt {public switchDemoInt(){}public static void main(String args[]){int a 5;switch(a){case 1: // \001System.out.println(1);break;case 5: // \005System.out.println(5);break;}} } 我们发现反编译后的代码和之前的代码比较除了多了两行注释以外没有任何区别那么我们就知道switch对int的判断是直接比较整数的值。 二、switch对字符型支持的实现 直接上代码 public class switchDemoInt {public static void main(String[] args) {char a b;switch (a) {case a:System.out.println(a);break;case b:System.out.println(b);break;default:break;}} } 编译后的代码如下 public class switchDemoChar public class switchDemoChar {public switchDemoChar(){}public static void main(String args[]){char a b;switch(a){case 97: // aSystem.out.println(a);break;case 98: // bSystem.out.println(b);break;}} } 通过以上的代码作比较我们发现对char类型进行比较的时候实际上比较的是ascii码编译器会把char型变量转换成对应的int型变量 三、switch对字符串支持的实现 还是先上代码 public class switchDemoString {public static void main(String[] args) {String str world;switch (str) {case hello:System.out.println(hello);break;case world:System.out.println(world);break;default:break;}} } 对代码进行反编译 public class switchDemoString {public switchDemoString(){}public static void main(String args[]){String str world;String s;switch((s str).hashCode()){default:break;case 99162322:if(s.equals(hello))System.out.println(hello);break;case 113318802:if(s.equals(world))System.out.println(world);break;}} } 看到这个代码你知道原来字符串的switch是通过equals()和hashCode()方法来实现的。记住switch中只能使用整型比如byte。shortchar(ackii码是整型)以及int。还好hashCode()方法返回的是int而不是long。通过这个很容易记住hashCode返回的是int这个事实。仔细看下可以发现进行switch的实际是哈希值然后通过使用equals方法比较进行安全检查这个检查是必要的因为哈希可能会发生碰撞。因此它的性能是不如使用枚举进行switch或者使用纯整数常量但这也不是很差。因为Java编译器只增加了一个equals方法如果你比较的是字符串字面量的话会非常快比如”abc” ”abc”。如果你把hashCode()方法的调用也考虑进来了那么还会再多一次的调用开销因为字符串一旦创建了它就会把哈希值缓存起来。因此如果这个siwtch语句是用在一个循环里的比如逐项处理某个值或者游戏引擎循环地渲染屏幕这里hashCode()方法的调用开销其实不会很大。 好以上就是关于switch对整型、字符型、和字符串型的支持的实现方式总结一下我们可以发现其实swich只支持一种数据类型那就是整型其他数据类型都是转换成整型之后在使用switch的。
http://wiki.neutronadmin.com/news/162469/

相关文章:

  • 如今流行的网站建设万网制作淘宝客网站
  • 南京比较大的外贸公司有哪些南昌网站页面优化
  • 网站简历导出网站建设比较好的律所
  • 东莞市做阀门的网站公众号绑定网站
  • 做论坛和做网站有什么区别如何用ps做网站
  • 网站图片做伪静态品牌推广的意义
  • 纪检网站建设动态主题南京建设交易中心网站
  • 建立企业网站的目的如何在阿里云云服务器上搭建网站
  • 住建局网站信息化建设云浮罗定哪有做网站的
  • 驻马店360网站建设无锡大型互联网公司
  • 外贸网站建设要求Erphpdown wordpress
  • 建设银行网站电子支付在哪里重庆社区官网
  • 如何防止网站被攻击知识管理软件排名
  • 弄一个网站大连网站建设-网龙科技
  • 深圳html5网站建设微信软文
  • 简述网站开发的基本原则自己怎么做个网站
  • 普洱茶网站建设舞蹈培训机构网站模板
  • 金华网站制作价格wordpress 好的相册
  • 社交营销可以用于网站制作行业吗wordpress 文档 插件
  • 某网站注册需要邮箱是怎么弄以美食为主的网站栏目怎么做
  • changer网站建设站长工具seo综合查询是什么
  • 西安市住房和城乡建设局官方网站手机网站关键
  • 绍兴兴住房和城乡建设局网站工程模板多少钱一张
  • wordpress如何导航网站模板雅虎网站提交入口
  • 自己做网站需要哪些流程成都网络营销策划
  • 公司开发网站建设北京新增死亡病例详情
  • 郑州做网站服务器应遵循哪些原则
  • 高端电商网站开发跨境电商登录入口
  • 网站建设怎么说服客户英文网站建设设计
  • 建设网站方案 ppt微信小程序怎么做购物网站