java

#java#

已有407人关注此标签

内容分类

小哀女王

探讨三种方式哪种效率高、可读性、可维护性好: if-else、switch、和另外一种

我们现在有一个参数 type,需要根据 type 进行相应的代码处理( type 大概有 20+ 种情况),用题目中的三种方式如下 if-else 方式 if (type == 'type1') { // todo something } else if (type == 'type2') { // todo something } ... else if (type == 'typeN') { // todo something } else { // otherwise } switch 方式 swtich(type) { case 'type1': /* todo something */ break; case 'type2': /* todo something */ break; ... case 'typeN': /* todo something */ break; default: /* otherwise */ break; } 另外一种(我不知道这叫什么方式) static { // 这里的 put 可以通过别的方式装载,可以一次性写好了之后,需要扩展时主动添加到 map 里面(也可以用注解注入等方式) map.put('type1', new Type1Process()) map.put('type2', new Type2Process()) ... map.put('typeN', new TypeNProcess()) map.put('default', new DefaultProcess()) } proc = map.containsKey(type) ? map.get(type) : map.get('default') proc.exec() 从执行效率、可读性、可维护性等多个方面来看,哪种方式综合评分更高? 上面代码可能颜色不清楚,可以看下面这个图

游客etgnpquw234j4

云虚拟主机操作系统选择

如何选择虚拟主机操作系统,网站使用java开发

游客etgnpquw234j4

云虚拟主机操作系统选择

如何选择虚拟主机操作系统,网站使用java开发

Unyielding

java FileOutputStream write 方法是否写入到磁盘中,而不是系统缓存?

如题,FileOutputStream类 write 不关闭在断电时是否会丢数据,请大佬解答

游客pob6ywjcpv27s

阿里云物联网MQTT用户端能否使用C-SDK实现对设备的访问和控制

抱歉,我是个萌新,这几天在研究阿里云物联网平台提供的MQTT。首先说一下我之前使用过模式mosquitto和paho库封装的mqtt,在设备端获取设备温度,并发布topic:temper到broker,服务器上跑broker,并设置用户名密码登录,其他用户只要使用用户名密码登录并访问此broker上的temper主题,就可以获取到设备温度。 抱歉我是学C的对JAVA等不太了解,在阿里云上创建了产品和其设备,以及创建了温度功能和topic:/sys/..././..,设备使用C-SDK和三元组登录并发布温度到平台,请问我如何在用户端订阅此设备的topic并获取温度信息。在文档里好像不能用C-SDK实现其他用户订阅此设备的功能。我想问问能否使用阿里提供的C-SDK去让用户获取设备的温度。

王老三

defaultMQProducer send order exception

在执行“SendResult sendResult = producer.send(mq, shardingKey);”时偶尔会抛出如下异常:com.aliyun.openservices.ons.api.exception.ONSClientException: defaultMQProducer send order exception at com.aliyun.openservices.ons.api.impl.rocketmq.OrderProducerImpl.send(OrderProducerImpl.java:118) ~[ons-client-1.7.7.Final.jar:1.7.7.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [netty-all-4.0.33.Final.jar:4.0.33.Final] at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [netty-all-4.0.33.Final.jar:4.0.33.Final] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]

游客m6ycp2ewjh4du

(学生机)轻量服务器跟esc服务器:平时喜欢用myeclipse写代码

在网上找过一些资料说两者的区别,最让我心动的是轻量的5M峰值,但是网上有说它的缺点不能长时间运行CPU、内存等,想了想小白的我平时需要使用myeclipse来编写一些学校布置的作业和小项目。这样肯定是要花蛮长时间,但是我们学习服务器与网页的交互这些是不是又得要带宽高?? 小白不太懂,挺纠结,希望可以解答下,感谢!

迷茫君

1001403026849704

java项目服务器选择?

java项目应该选择什么样的服务器比较好呢?

游客qs634qrhlc7iy

关于Java虚拟机参数设置的问题,当我设置Xms和Xmx相同的时候,系统报错

初学Java虚拟机,碰到了一个问题,当我-Xms20M-Xmx20M这样设置参数的时候,系统报错Invalid initial heap size,而当我换成-Xms20M-Xmx30M的时候报了同样的错误,后来我又对Xms和Xmx参数进行了不同数值设置,通通报错,脑子不够用了,网上搜索的答案都不太相关,希望各位大牛能帮我解答一番,不胜感激。

游客iea6t7zobcq5q

阿里云实例账单api

使用JavaSDK访问QueryInstanceBill返回的数据和在费用中心下载的数据不符

nejmi

阿里云点播Android 播放器sdk 接不上!

阿里云点播Android 播放器sdk 接不上! 怎么回事 跟帮助文档一模一样 操作的 可是 不出现。。求帮我!

游客gei7blqw7keio

rocketmq_namesrv

rocketmq_namesrv作为注册中心可以正常启动rocketmq-all-4.5.1-bin-release部署一台,在启动时报错 org.apache.rocketmq.client.exception.MQBrokerException: CODE: 1 DESC: java.lang.ArrayIndexOutOfBoundsException: 315, com.alibaba.rocketmq.common.MQVersion.value2Version(MQVersion.java:38)For more information, please visit the url, http://rocketmq.apache.org/docs/faq/ at org.apache.rocketmq.broker.out.BrokerOuterAPI.registerBroker(BrokerOuterAPI.java:212) ~[rocketmq-broker-4.5.1.jar:4.5.1] at org.apache.rocketmq.broker.out.BrokerOuterAPI.access$000(BrokerOuterAPI.java:61) ~[rocketmq-broker-4.5.1.jar:4.5.1] at org.apache.rocketmq.broker.out.BrokerOuterAPI$1.run(BrokerOuterAPI.java:150) ~[rocketmq-broker-4.5.1.jar:4.5.1] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]

李博 bluemind

请教一下各位前辈 实体在增删改前怎么可以更加高效的记录属性的变化日志 比如一个字段age 做了保存10->12 要记录 old value 10 new value 操作 update ,目前只是在操作前把原来的查出来比较后记录一下,但是效率感觉不行

项目是ssm框架 这方面可以怎么优化吗?本问题来自云栖社区【阿里Java技术进阶2群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

李博 bluemind

请教下,Java 获取本机ip 怎么将虚拟网卡排除掉啊,有什么方式吗?

本问题来自云栖社区【阿里Java技术进阶2群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

李博 bluemind

Kafka 为什么快?

本问题来自云栖社区【阿里Java技术进阶2群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

李博 bluemind

有没有大神知道oracle多个用户指定同一表空间情况下,怎么导出单一用户dmp文件?

本问题来自云栖社区【阿里Java技术进阶2群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

李博 bluemind

com.taobao.diamond.client.impl.DiamondEnvRepo 初始化失败,这个问题有人遇到过吗是如何解决的?

本问题来自云栖社区【阿里Java技术进阶2群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

ggzed

rocketMQ整合项目Tomcat启动报错

在集成此mq的时候,使用Tomcat启动会直接报错,java.lang.ClassNotFoundException: com.aliyun.openservices.shade.org.apache.commons.logging.LogFactory。请问有遇到过吗?万分感谢!!!

防腐基

手机APP如何访问已经上传到阿里云oss上面并且设置了防盗链的图片

目前是本地调试阶段 描述: 手机APP首页的许多图片已经上传到阿里云oss中,bucket是私有,图片都是公开,但设置了防盗链,referer不允许为空,且白名单按照规则配置的是手机内网ip、外网ip、访问接口ip等等。 问题: PC浏览器打开后可以访问到图片;手机浏览器打开后可以访问到图片;打包成APP后,手机点开无法访问到图片; 初步判断: 由于我把不允许referer为空这一项改变为允许为空之后,APP就可以访问到图片了,所以我猜测是因为手机APP没有referer这个参数,所以设置为不允许referer为空时,APP就访问不到oss上的图片。 求助: 手机APP访问阿里云oss图片的时候,为了防盗链,肯定要选择不允许referer为空的,否则可能被越过referer访问图片,导致自己的流量和费用受损。1)、请问有大佬遇到过类似的问题吗,怎么处理的?2)、请问大佬们处理类似这种APP访问阿里云oss图片的时候,一般都是用的什么方案? 谢谢各位大佬,抱拳。