「java代码复杂度」编程复杂度

博主:adminadmin 2022-11-28 03:23:05 64

今天给各位分享java代码复杂度的知识,其中也会对编程复杂度进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java代码为什么那么繁琐

1. Java语言是不是繁琐呢?手头有一本《Thinking in Java》中文第四版,数了一下正文共22章856页。随手翻一下,示例代码和讲解正文大概比例在1.5 : 1这样。没有真正用Java干过项目的人肯定会大为惊叹:我勒个去,这么多知识点!此为“繁”;

2. 绝大部分搞编程的人,事实上,都是在使用一门语言的某个子集。该子集的形成由项目主导者发起、开发活动参与者共同决定,且相对长期稳定。每一个即将参与该项目的人肯定会先把语言学个大概(其难度参考前一条),然后再根据项目学习该语言子集,最后固化下来。不断使用该子集固然能提升开发效率,但代价不菲,极容易就变成了项目中的一颗镙丝钉(“专家”);

3. 一门语言的设计肯定不会一蹴而就,一步步改良。没记错的话,Java诞生于1995年左右,到今天已经快满20年。在当时那种IT环境和条件下设计出来的语言,必然存在许多妥协、限制与错误,既不能随便将之抹除(可能还有很多工程依赖着),也不能随便更正,只能通过添加新语法、新类库来打补丁,导致语言更“繁”。举个例子,非内建容器类库是一个典型硬伤,再举个例子,时间日期类没见有多好用,也没见有更新过,连替代品都没见过(恕我不写Java,的确没见过);

4. 类库(框架)丰富是好事还是坏事,要看针对同一个任务能找到多少替代品。如果有三到四个,那么肯定是好事,既不会造成单点故障,也不至于造成理解和记忆上的负担。但是类库太多,选择太多,人的幸福感反而会下降,高效率也就无从谈起;

5. 框架真的可以保证快速开发吗?熟悉的话是可以的,专家编程嘛!但是

熟悉之前要花非常多时间学习使用吃闷亏。

框架只能免除掉一部分开发工作量。

框架跟业务总是存在“不合缝”的差异。

只不过将复杂度从开发转移到了部署运维。

依赖性极强。

6. IDE可以提高开发效率吗?仅仅一部分罢了。IDE本身就是个非常复杂的东西,将之调校到符合个人开发步调的进程可能会持续很久,事实上大部分人也只是用一些常用功能罢了。而且

基于图形界面意味着自动化不容易(需要编写额外插件)。

出了问题查找原因不易。

依赖性极强。

7. Java本身是面向系统(机器)的,不是面向开发人员的。这种强设计保证有助于提升目标系统的可靠性,却牺牲了开发人员的幸福感。既然设计得如此严谨规范,为什么不能自动生成Java程序,

java 时间复杂度问题

第一个:包括两个for循环,问题规模是O(n*(n/2));后面的那个是O(n),两者加起来O(n*(n/2))+O(n)≈O(n*(n/2))≈O(N^2);

第二个:是个while循环,表面看起来也应该是O(n),但由于变量j每次增加一倍,问题规模缩小为原来的一半,知道二分查找么?对,这根那个是一样的效率,都是O(logN)。

如果第一个循环中是这样的:

for (int i = 1; i = n; i++) {

for (int j = 1; j = i; j *= 2) { //这里改为*2;即每次规模是原来的一半

sum += 4;

}

}

那么问题规模就是O(n*(logN))+O(n)≈O(n*(logN))≈O(NlogN);

软件测试java类圈复杂度是什么意思

圈复杂度(Cyclomatic Complexity)是一种代码复杂度的衡量标准。它可以用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,也可理解为覆盖所有的可能情况最少使用的测试用例数。圈复杂度大说明程序代码的判断逻辑复杂,可能质量低且难于测试和维护。程序的可能错误和高的圈复杂度有着很大关系。

两个方法是指类里面有两个函数对吧?!

是的

是要有4个elseif语句么?

不是的,但是如果你写成嵌套的四个else if,那么圈复杂度肯定超过4,圈复杂度的计算用很多工具可以辅助完成,比如eclipse metrics, java ncss等。

人工计算圈复杂度比较复杂,限于篇幅无法详细介绍,网上相关介绍很多,可以直接baidu检索

关于java代码复杂度和编程复杂度的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。