java小细节_为什么我喜欢Java的细节

java小细节

他们说,Java太冗长了。 您可以找到Hello World程序的比较,这些程序在ruby中使用2行,在Java中使用10行,而要读取文件,您需要使用Java 20行和php中1行。

尽管示例经常被夸大(例如,计算导入次数),但确实Java程序需要更多的代码行。 但这根本不是一件坏事。

相反,这是我真正喜欢的东西。 实际上,这与语言的冗长无关–除了匿名类-而不是闭包之外,没有什么其他语言过于冗长。 它是关于核心库的。 所以–我喜欢以冗长的方式编写核心库的方式。 两个例子:

  • 拿java.io。 包。 读取和写入文件,流等。这有点难掌握,一开始,您需要复制粘贴很长的代码片段以仅读取文件。 但这迫使您了解流和读者的抽象。 其他语言则很简单: var contents = readFile("path")很酷,但是您永远不会被迫了解I / O管理的工作原理。 如果读取失败会怎样? 对文件进行部分读取就足够了吗? 您可以讨价还价吗? 您应该关闭资源还是将其自动关闭? 您无需为打招呼世界程序回答这些问题,但很快就需要了解它们。 不太冗长的语言对您隐藏了它们,并推迟了这种“抽象启示”。
  • Servlet API。 乍一看,它看起来有些毛茸茸的类和接口。 但是很快,您就会意识到整个过程是如何工作的–不仅在Java中,而且在http请求的一般生命周期中。 因为您需要一个Servlet对象,请求和响应对象以及要写入的输出流,所以您了解了整个请求-响应周期。 我这里有一个个人例子。 我已经在学校写PHP一年了。 然后一个月的Java和servlet使我完全明白了整个过程。 PHP非常易于使用– $_GET['foo'], session_start()以及之间的一堆HTML。 因此,我不必理会底层的机制。 Java迫使我这么做。

您可能会说–很好,它迫使您学习这些重要的概念和抽象,但是它也应该为您提供一种轻松完成事情的方法。 但是,如果核心库本身具有这些选项,则所有教程都将显示这些选项,而较低级的API将会被遗忘。

因此,解决方案是–第三方库。 Apache和Google给您这些。 有了番石榴和apache commons,您便拥有了所有这些单线。 Joiner.on(",").join(array) FileUtils.readLines(..)Joiner.on(",").join(array)等等。但是,您不是从这些库开始的,而是学习了如何在较低的层次上工作–仍然需要知道。

参考资料: 为什么我喜欢我们的JCG合作伙伴 Bozhidar Bozhanov在Bozho的技术博客上看到的 Java的详尽程度

相关文章 :

  • 讨厌Java吗? 您正在打错仗。
  • 选择一种新的编程语言来学习
  • 编写不烂的代码
  • 如果我有更多的时间,我会写更少的代码

翻译自: https://www.javacodegeeks.com/2012/01/why-i-like-verbosity-of-java.html

java小细节

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 的 AccessController.doPrivileged使用

AccessController.doPrivileged意思是这个是特别的,不用做权限检查. 在什么地方会用到呢:加入1.jar中有类可以读取一个文件,现在我们要使用1.jar去做这个事情.但是我们的类本生是没有权限去读取那个文件的,一般情况下就是眼睁睁的看着了. 但是jiava提供了doPrivileged.在1.ja…

cordova 实现网页缓存_如何解决ionic,cordova混合开发的app缓存大的问题

如何解决ionic,cordova混合开发的app缓存大的问题关注:143 答案:2 mip版解决时间 2021-02-05 06:24提问者旧梦已过期2021-02-04 16:54如何解决ionic,cordova混合开发的app缓存大的问题最佳答案二级知识专家臸釪樶初2021-02-04 17:10可以试试sd卡挂在&a…

当年课设期末大作业,班主任让我们做一个新闻发布管理系统

导读:基于web的新闻发布及管理系统的设计与实现,是动态网页和数据库结合,通过事件来处理新闻。我们对最新信息的更新和发布需要比较及时,而动态交互网页能实现这些功能,新闻发布及管理系统就是一个能够在网上实现新闻的发布及管理,让人们更好的获取更新的新闻资讯。 随着电…

疫情期间,在家使用java的SSH框架实现一个简单的任务调度系统

导读:随着科学技术的飞速发展和各行各业的分工愈发明细化,对于改革传统的人工任务调度方式的呼声越来越大。得益于快速发展的计算机技术,我们看到了改革的方向。本系统是针对企业或者事业单位甚至一个小团队的任务调度而设计的,目的是改变传统的调度方式,通过计算机来计算…

你在乎的--世界在乎的

惊闻苍老师在某地做活动,距离公司不远,便蠢蠢欲动,招呼几个小伙伴一同前往。老师果然是全民偶像,人生导师,人气火爆,现场是人山人海,根本没有立足之地,后来听说,由于人太…

css3优惠卷上方锯齿_css3怎么实现锯齿边框?

白板的微信你这样的最好还是切图做用css3也达不到一毛一样的效果,如果你很想要尝试一下的话可以试试,不过边缘不是顺滑的感觉

改善Hibernate应用程序性能的7种方法

Hibernate是将Java Web应用程序与SQL数据库集成的好工具,但是当应用程序的响应时间开始显着增加时,我们应该怎么做? 当我们怀疑应用程序是否会随着客户群的增长而扩展时,我们该怎么办? 在花大价钱托管或重写代码之前&…

java网络爬虫技术也可以代替Python实现网络新闻分析系统

导读:自从大数据的概念被提出后,互联网数据成为了越来越多的科研单位进行数据挖掘的对象。网络新闻数据占据了互联网数据的半壁江山,相比传统媒体,其具有传播迅速、曝光时间短、含有网民舆论等相关特征,其蕴含的价值也愈来愈大。 利用相关网络爬虫技术与算法,实现网络媒体…

centos 服务器装与python34源码安装

http://www.111cn.net/sys/CentOS/63645.htm 1、CentOS安装Python的依赖包(不安装依赖包,会导致python安装不完整) yum groupinstall "Development tools"yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-…

CSDN:2020博客之星年度总评选大赛,趣味总结!

导读:从2020年正式写博客,第一次参加活动,竟然落选了,在此记录一下这个过程吧,方便找帖子链接,毕竟靠着本人的影响力还是能捞点饭票的,哈哈。 2020博客之星年度总评选活动地址:https…

Java 日期格式

转载于:https://www.cnblogs.com/bylion/p/5141022.html

java获取默认用户目录_Java获取当前路径

1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径2、使用File提供的函数获取当前路径:File directory new File("");//设定为当前文件夹try{System.o…

zk框架_ZK Web框架思想

zk框架我曾多次被要求提出一些有关ZK的意见。 因此,根据我4年作为ZK用户的经验,有一些想法: 总体开发人员经验,社区和文档 “就是这样” ZK提供的大多数东西都能很好地工作,并且如果您以前开发过任何桌面Java应用程序…

一文教你用java实现出租车计价器设计(附下载源码)

导读:在我国,出租车行业是八十年代初兴起的一项新兴行业,随着出租车的产生,计价器也就应运而生。但当时在全国没有一家企业能够生产,因而那个时期的计价器是由台湾引进。台湾是计价器的主要生产场地,目前全…

写论文的思考

以下引自知乎的回答 需要的能力 1.资料检索的能力 2.资料筛选的能力 3.期刊论文的阅读能力,期刊论文和大学部的课本截然不同。大学部的课本是寻次渐进地从最基本的知识背景逐步交代出整套有系统的知识,中间没有任何的跳跃,只要你逐页读下去…

java mongo subtract_春数据MongoDB的聚合框架,例外

组访问计算值,我有旅行的集合,每行有一个的startDateTime和completionDateTime财产。春数据MongoDB的聚合框架,例外我试图使用聚合框架来找到用户的出行的平均持续时间。我的聚集看起来非常简单,但和它抛出一个异常。有以下3个步骤…

一键转发抢红包源码及搭建教程

导读:一键转发抢红包搭建教程如下:源码请在资源模块下载。 搭建教程 第一步注册bmob建立一个项目 项目包括这些表单(file表可以不建立) (应用ID在后台项目设置里面) 表DaSha这样建立 表Sha这样建立 找zi()方法第一步

Java性能教程– Java 8流有多快?

在此JAX Magazine的预览预览中,JAX伦敦发言人Angelika Langer为使用Java流的任何人回答了最重要的问题:它们真的更快吗? Java 8是JDK收集框架的主要新增功能,即流API。 与集合相似,流表示元素序列。 集合支持对单个元…

android 开发

初学者学习 Android 开发,有什么好网站推荐? 前段日子一直在看安卓巴士这个网站,但网站突然进行改版,很多内容都找不到了,一下子怅然若失起来1 条评论 分享按投票排序按时间排序50 个回答 yava,半瓶水fei …

java迭代器删除重复元素_Java中的List删除重复元素

List接口做为Java集合框架中的一员,对数据的操作和处理比数组方便许多。在数组中插入一个元素要从数组的最后一个元素到当前插入的位置依次向后移动一位,然后为插入的位置进行赋值。在数组删除一个元素要从删除元素的下一个元素位置到数组最后一个元素依…