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小细节

java小细节_为什么我喜欢Java的细节相关推荐

  1. 做Java头发少_这35个Java代码优化细节,你用了吗

    链接:https://www.jianshu.com/p/6e472304b5ac 前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有 ...

  2. 谷歌浏览器如何启用java小脚本_各种浏览器开启JavaScript脚本方法

    随着网站设计技术的发展,为了用户友好体验,大部分网站使用了JavaScript脚本设计,如果您的浏览器禁用或关闭的JavaScript支持,那么可能造成网站体验差或网站部分功能无法使用 下面提供10种 ...

  3. linux小型游戏系统设计,Linux平台下基于JAVA小游戏_设计文档.doc

    Linux课程设计报告 课题名称:<Linux平台下基于java小游戏设计> 专 业:2011级计算机科学与技术 组 长:043佘清泉 组 员:007陈威达 008陈学仁 026赖华标 0 ...

  4. 支持java虚拟主机_为何缺乏支持Java的虚拟主机

    现在很多站长们,都青睐于香港虚拟主机建站.现在常见的是asp和PHP的程序空间很多,但是Java的少之又少,下面小编我给大家聊一聊! 一.香港Java虚拟主机成本高 使用Java程序建站,就必须要用支 ...

  5. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  6. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  7. java笔试题_一道简单的 Java 笔试题,但值得很多人反思

    专注于Java领域优质技术,欢迎关注 作者:匿蟒 前言 面试别人,对我来说是一件新奇事,以前都是别人面试我.我清楚地知道,我在的地域与公司,难以吸引到中国的一流软件人才.所以,我特地调低了期望,很少问 ...

  8. java session使用_使用Neo4j和Java进行大数据分析 第2部分

    本文的第一部分介绍了Neo4j及其Cypher查询语言.如果您已经阅读了第1部分,那么您已经了解了为什么Neo4j和其他图形数据库特别受社交图形或网络中用户之间关系建模的影响.您还在开发环境中安装了N ...

  9. java基础知识点_零基础学习Java语言,各个阶段需要掌握的知识点

    随社会的脚步的不断发展,Java技术在不断的与时俱进,这也是Java一直长盛不衰的原因之一.Java技术的学习,永远没有早晚之分,技不压身,对于21世纪的我们80后,90后,甚至00后,尤其适用! 那 ...

最新文章

  1. node.js实现国标GB28181流媒体点播(即实时预览)服务解决方案
  2. linux netty udp服务端,Netty实现简单UDP服务器(示例代码)
  3. URI概念的简单介绍
  4. js中的鼠标右键点击事件
  5. STM32F0使用LL库实现DMA方式AD采集
  6. php curlopt_postfields,PHP的CURLOPT_POSTFIELDS参数使用数组和字符串的区别 - CSDN博客
  7. java面试 设计模式_Java面试中常问到的设计模式
  8. 20165236 2017-2018-2 《Java程序设计》结对编程练习_四则运算
  9. 数学建模竞赛代码及论文降重方法
  10. 计算机网络数据链路层之MAC协议概述
  11. QT之信号和槽机制详解
  12. 对称、群论与魔术(一)——对称性本质探索
  13. 屏蔽烦人的百度搜索热点
  14. linux云计算工程师百度百科,广州学习linux云计算工程师
  15. matlab与单片机联合开发【一】
  16. 佛系老年学量化——从实现指标开始(DKX)
  17. 【STM32】stm32驱动TB6600控制42/57步进电机的案例(TIM中断和PWM实验)
  18. GPT3类自动补全助手,个体+超级团队成为可能 | 技术趋势
  19. Java-POI读取excel(null的cell也读取输出)
  20. Java使用POI实现Word合同打印下载功能

热门文章

  1. SSH(Spring+Struts2+Hibernate)框架搭建步骤(含配置文件以及运行结果)
  2. jdk的安装与环境变量的配置
  3. 所有的软弱,都是昂贵的
  4. SpringCloud Config 分布式配置
  5. java集合——集合与数组间的转换+算法
  6. orelse_可选的orElse vs orElseGet
  7. poj doubles_余数运算符在Java中用于Doubles
  8. netty java_Netty Java快速指南
  9. 内联脚本被视为是有害的_数据类被认为有害
  10. sql 注射_只能在测试中注射吗?